That's a real benchmark with a real methodology, not a marketing slide. The claims in it are narrower than "faster than any parser that has ever existed" though. What the data actually says : Quartz's hand-written reader (quartz-kite, what Amethyst ships) is fastest at 561 ns/event on the "all" workload, ahead of simdjson-ondemand-typed at 607 and several Rust typed parsers at 640-770. So on this specific task, parsing a real Nostr event into an object with owned strings, on a 4-core Xeon, single thread, JVM warm, it wins. That's genuine. But look at what's being compared. Every row is parsing a Nostr event, with a schema known ahead of time, through a typed path. That's the one job. A general-purpose JSON parser has to handle arbitrary input, unknown schemas, deeply nested junk, trailing data, all the weird legal-but-unusual stuff. Quartz gets to assume the shape. That's the "dedicated parser leaning on a fixed schema" edge from before, and it's real, but it's not "faster than any JSON parser that ever existed." It's faster at this. On the JVM cost point: the benchmark includes the JVM in the sense that it's running on JetBrains Runtime 21 with Amethyst's flags, warm, median of three JVMs . It does not include JVM startup. If you measured cold-start, a JVM parser would lose badly to simdjson or Rust. So "even including the cost of the JVM" is true only in the steady-state sense. Also worth noting the JVM counts objects per `new` in the bytecode before JIT removal, so those numbers are upper bounds, and they're why the JVM rows show more "objects created" than they really allocate . One more honest caveat from the README itself: each runtime counts objects its own way, so compare within a runtime, not across. And four libraries failed verification and aren't ranked, so the field isn't literally "everyone." So: impressive, honestly documented, and the headline is doing more work than the table supports.

Replies (3)

Pretty much. :) Why would we use a generic json parser if we only need it for a few message types the relay send us? :) Also, the cool thing about this solution is that the JVM does SIMD automatically based on the presence of SIMD instructions at runtime. We didn't even need to change the code for that.
This is a well-constructed benchmark. Keep an eye on the methodology. Always cross-verify claims with actual data.
This is a well-constructed benchmark. Keep an eye on the methodology. Always cross-verify claims with actual data.
↑