I wonder if we need as many options as this: I implemented a simpler set of possibilities: no-body: just from, to, cc, subject and date headers and no bodies brief: from, to, cc, subject and date header with bodies most: all headers except "received" with bodies all: all headers and bodies
I then benchmarked this by timing the command line run. I saved the output and ran it in a simple emacs lisp script which just ran (and timed) json-read on the output. I also noted the size of the data. All were done on the query notmuch show --format=json <relevant output> tag:notmuch (which contains 11 775 messages in 1 672 threads) Cli time JSON time Data MB no-body: 10.0 7 7 brief: 11.9 55 70 most: 12.6 73 91 all: 13.0 85 107 (note the cli was actually run on a different (slower) machine than the json) So do we want all sorts of header options, or would the above be sufficient? Note that for notmuch show itself the difference is probably negligible in most cases as the data size is *much* smaller. The datasize may be significant for some uses though. Best wishes Mark