5 ms·
For those wondering, the README states it's a lot faster than JQ, which may be the selling point.
by BiteCode_dev 3y ago
For those wondering, the README states it's a lot faster than JQ, which may be the selling point.
- rektide 3y agoPresumably the memory footprint is often far less too.
- nigeltao 3y agojj is faster than jq. However, jsonptr is even faster and also runs in a self-imposed SECCOMP_MODE_STRICT sandbox (very secure; also implies no dynamically allocated memory). $ time cat citylots.json | jq -cM .features[10000].properties.LOT_NUM "091" real 0m4.844s $ time cat citylots.json | jj -r features.10000.properties.LOT_NUM "091" real 0m0.210s $ time cat citylots.json | jsonptr -q=/features/10000/properties/LOT_NUM "091" real 0m0.040s jsonptr's query format is RFC 6901 (JSON Pointer). More details are at https://nigeltao.github.io/blog/2020/jsonptr.html https://nigeltao.github.io/blog/2020/jsonptr.html
- zokier 3y agoLooks neat. One suggestion: add better build instructions on wuffs readme/getting started guide. I jumped in and tried to build it using the "build-all.sh" script that seemed convenient, but gave up (for now) after nth build failure due yet another missing dependency. It's extra painful because the build-all.sh is slow, so maybe also consider some proper build automation tool (seeing this is goog project, maybe bazel?)?
- nigeltao 3y agoThanks for the feedback. I'll add better build instructions. If you just want the jsonptr program, instead of everything in the repo (the Wuffs compiler (written in Go), the Wuffs standard library (written in Wuffs), tests and benchmarks (written in C/C++), etc) then you can use "build-example.sh" instead of "build-all.sh". ./build-example.sh example/jsonptr For example/jsonptr, that should work "out of the box", with no dependencies required (other than a C++ compiler). For e.g. example/sdl-imageviewer, you'll also need the SDL library. Alternatively, you could just invoke g++ directly, as described at the very top of the "More details are at [link]" page in the grand-parent comment. $ git clone https://github.com/google/wuffs.git $ g++ -O3 -Wall wuffs/example/jsonptr/jsonptr.cc -o my-jsonptr