Benchmark

Simple (and quite complex) operations are currently ~2x faster in jstr than in similar tools such as jq.node:

hyperfine --warmup 3 \
  "cat tmp/users.json | jqn 'filter(has(\"email\")) | groupBy(flow(get(\"email\"), split(\"@\"), get(1)))'" \
  "cat tmp/users.json | jstr -i \"flow(A.filter(D.get('email')), A.groupBy(flow(D.get('email'), S.split('@'), A.get(1))))\""
Package
Version
Time (mean ± σ)
Range (min … max)
Runs

@jliocsar/jstr

0.3.6

110.8 ms ± 4.5 ms

104.7 ms … 124.8 ms

26

jq.node

3.0.0

217.7 ms ± 9.2 ms

204.3 ms … 237.2 ms

13

Tested on:

  • Node v20.7.0

  • Linux 6.2.0-32-generic x86_64 x86_64

  • 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz

Last updated