jq
is a lightweight and flexible command-line JSON processor akin to sed
,awk
,grep
, and friends for JSON data. It's written in portable C and has zero runtime dependencies, allowing you to easily slice, filter, map, and transform structured data.
THIS FORK is a simple hack to add:
- a string function 'md5'
- a function 'rand' returning float64
where the underlying functions are written in Zig.
I'm pretty much a n00b with Makefiles, let alone Zig. But the latter is truly awesome.
- Makefile.am -- is there a better way to do this? Let me know via pull request thingy.
- src/builtin.c -- add the extern C-ABI functions f_md5, f_rand and register jq keywords 'md5', 'rand'.
- README.md -- this.
- src/f_misc.zig -- see this file for a few notes on how it was done (TL;DR: really easily. Did I mention Zig is awesome?)
$ ./jq -n 'rand,rand'
0.9407224365467721
0.4601556075983295
$ ./jq -n '""|md5'
"d41d8cd98f00b204e9800998ecf8427e"
compare (Mac md5, same as Linux md5sum):
$ echo -n | md5
d41d8cd98f00b204e9800998ecf8427e
The rest of this README is unchanged from jqlang/jq. Thanks!
- Official Documentation: jqlang.github.io/jq
- Try jq Online: jqplay.org
Download the latest releases from the GitHub release page.
Pull the jq image to start quickly with Docker.
docker run --rm -i ghcr.io/jqlang/jq:latest < package.json '.version'
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json
- libtool
- make
- automake
- autoconf
git submodule update --init # if building from git to get oniguruma
autoreconf -i # if building from git
./configure --with-oniguruma=builtin
make -j8
make check
sudo make install
Build a statically linked version:
make LDFLAGS=-all-static
If you're not using the latest git version but instead building a released tarball (available on the release page), skip the autoreconf
step, and flex or bison won't be needed.
For details on cross-compilation, check out the GitHub Actions file and the cross-compilation wiki page.
- Questions & Help: Stack Overflow (jq tag)
- Chat & Community: Join us on Discord
- Wiki & Advanced Topics: Explore the Wiki
jq
is released under the MIT License. jq
's documentation is
licensed under the Creative Commons CC BY 3.0.
jq
uses parts of the open source C library "decNumber", which is distributed
under ICU License