2012-09-18 23:40:19 +01:00
|
|
|
jq
|
|
|
|
==
|
|
|
|
|
2015-08-25 08:47:04 -07:00
|
|
|
jq is a lightweight and flexible command-line JSON processor.
|
|
|
|
|
2012-09-18 23:40:19 +01:00
|
|
|
If you want to learn to use jq, read the documentation at
|
2023-05-28 17:06:31 +01:00
|
|
|
[https://jqlang.github.io/jq](https://jqlang.github.io/jq). This
|
2012-09-18 23:40:19 +01:00
|
|
|
documentation is generated from the docs/ folder of this repository.
|
2015-08-15 12:07:00 -07:00
|
|
|
You can also try it online at [jqplay.org](https://jqplay.org).
|
2012-09-18 23:40:19 +01:00
|
|
|
|
|
|
|
If you want to hack on jq, feel free, but be warned that its internals
|
2013-05-11 15:15:56 +01:00
|
|
|
are not well-documented at the moment. Bring a hard hat and a
|
2023-05-28 17:06:31 +01:00
|
|
|
shovel. Also, read the wiki: https://github.com/jqlang/jq/wiki, where
|
2017-01-31 16:13:32 -06:00
|
|
|
you will find cookbooks, discussion of advanced topics, internals,
|
|
|
|
release engineering, and more.
|
2012-09-18 23:40:19 +01:00
|
|
|
|
2015-02-15 17:57:53 -06:00
|
|
|
Source tarball and built executable releases can be found on the
|
2023-07-21 20:42:11 +09:00
|
|
|
homepage and on the github release page, https://github.com/jqlang/jq/releases.
|
|
|
|
Docker image is available at https://github.com/jqlang/jq/pkgs/container/jq.
|
2015-02-15 17:57:53 -06:00
|
|
|
|
2023-07-24 11:34:21 +02:00
|
|
|
If you're building directly from the latest git, you'll need libtool, make, automake,
|
|
|
|
and autoconf installed.
|
2017-05-03 20:37:21 +02:00
|
|
|
To get regexp support you'll also need to install Oniguruma or clone it as a
|
2023-07-18 08:17:21 +09:00
|
|
|
git submodule as per the instructions below. To build, run:
|
2017-05-03 20:37:21 +02:00
|
|
|
|
|
|
|
git submodule update --init # if building from git to get oniguruma
|
2023-07-03 21:05:21 +09:00
|
|
|
autoreconf -i # if building from git
|
2017-05-03 20:37:21 +02:00
|
|
|
./configure --with-oniguruma=builtin
|
2014-06-04 18:29:30 -05:00
|
|
|
make -j8
|
|
|
|
make check
|
2013-05-11 15:15:56 +01:00
|
|
|
|
2023-07-24 11:34:21 +02:00
|
|
|
Developers must `--enable-maintainer-mode` when making changes to the
|
|
|
|
jq parser and lexer which also requires bison and flex to be installed.
|
2015-02-15 17:57:53 -06:00
|
|
|
|
2015-01-01 16:26:55 -06:00
|
|
|
To build a statically linked version of jq, run:
|
|
|
|
|
|
|
|
make LDFLAGS=-all-static
|
|
|
|
|
2015-02-15 18:08:09 -06:00
|
|
|
After make finishes, you'll be able to use `./jq`. You can also
|
2013-06-18 00:28:50 +01:00
|
|
|
install it using:
|
2013-05-11 15:15:56 +01:00
|
|
|
|
2013-06-18 00:28:50 +01:00
|
|
|
sudo make install
|
|
|
|
|
|
|
|
If you're not using the latest git version but instead building a
|
|
|
|
released tarball (available on the website), then you won't need to
|
|
|
|
run `autoreconf` (and shouldn't), and you won't need flex or bison.
|
2014-06-04 18:29:30 -05:00
|
|
|
|
|
|
|
To cross-compile for OS X and Windows, see docs/Rakefile's build task
|
|
|
|
and scripts/crosscompile. You'll need a cross-compilation environment,
|
|
|
|
such as Mingw for cross-compiling for Windows.
|
|
|
|
|
2015-01-01 16:26:55 -06:00
|
|
|
Cross-compilation requires a clean workspace, then:
|
|
|
|
|
|
|
|
# git clean ...
|
|
|
|
autoreconf -i
|
|
|
|
./configure
|
|
|
|
make distclean
|
|
|
|
scripts/crosscompile <name-of-build> <configure-options>
|
|
|
|
|
2018-10-04 22:42:58 -04:00
|
|
|
Use the `--host=` and `--target=` ./configure options to select a
|
2021-05-26 13:47:40 +02:00
|
|
|
cross-compilation environment. See also
|
2023-05-28 17:06:31 +01:00
|
|
|
["Cross compilation"](https://github.com/jqlang/jq/wiki/Cross-compilation) on
|
2018-10-04 22:42:58 -04:00
|
|
|
the wiki.
|
2015-05-02 17:34:52 -05:00
|
|
|
|
2023-07-19 08:04:39 -07:00
|
|
|
To compile jq to WebAssembly, install the [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html), then:
|
|
|
|
|
|
|
|
git submodule update --init # if building from git to get oniguruma
|
|
|
|
autoreconf -i # if building from git
|
2023-07-24 11:34:21 +02:00
|
|
|
emconfigure ./configure --with-oniguruma=builtin
|
2023-07-19 08:04:39 -07:00
|
|
|
emmake make EXEEXT=.js CFLAGS="-O2" LDFLAGS="-s EXPORTED_RUNTIME_METHODS=['callMain']"
|
|
|
|
|
2023-06-01 10:09:39 -07:00
|
|
|
|
|
|
|
# Community
|
|
|
|
|
|
|
|
* Send questions to https://stackoverflow.com/questions/tagged/jq.
|
|
|
|
* Join our [Discord server](https://discord.gg/yg6yjNmgAC).
|