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.
2016-01-18 10:15:43 +00:00
[](https://coveralls.io/github/stedolan/jq?branch=master),
Unix: [](https://travis-ci.org/stedolan/jq),
Windows: [](https://ci.appveyor.com/project/stedolan/jq)
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-05-28 17:06:31 +01:00
homepage and on the github release page, https://github.com/jqlang/jq/releases
2015-02-15 17:57:53 -06:00
2014-11-11 23:02:31 +00:00
If you're building directly from the latest git, you'll need flex,
2018-11-12 16:00:53 -05:00
bison (3.0 or newer), 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
git submodule as per the instructions below.
(note that jq's tests require regexp support to pass). To build, run:
git submodule update --init # if building from git to get oniguruma
autoreconf -fi # if building from git
./configure --with-oniguruma=builtin
2014-06-04 18:29:30 -05:00
make -j8
make check
2013-05-11 15:15:56 +01:00
2015-02-15 17:57:53 -06:00
To build without bison or flex, add `--disable-maintainer-mode` to the
./configure invocation:
2017-05-03 20:37:21 +02:00
./configure --with-oniguruma=builtin --disable-maintainer-mode
2015-02-15 17:57:53 -06:00
(Developers must not use `--disable-maintainer-mode` , not when making
changes to the jq parser and/or lexer.)
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
2021-05-26 13:47:40 +02:00
Send questions to https://stackoverflow.com/questions/tagged/jq or to the #jq channel (https://web.libera.chat/#jq ) on Libera.Chat (https://libera.chat/).