Skip to content
SPECIFICTION
Get listed

jaq

github.com

Free plan Open source WebWindowsmacOSLinuxAPISelf-hosted
Visit github.com
Spec score 8.9 #1 of 29 in JSON Tools

What it is

jaq is a free jq clone for querying and transforming data, available as both a command-line replacement and a Rust library for compiling and running jq programs. Alongside JSON, it handles YAML, CBOR, TOML, XML, CSV, and TSV, and can convert between those formats while applying a jq filter. Its jaq-core library supports multithreaded use and data types beyond JSON. jaq also accepts arbitrary values as object keys and can process strings containing arbitrary bytes, including invalid UTF-8. The project publishes benchmarks comparing jaq with jq and gojq, and reports faster results on many benchmarks. It states that jaq is memory-safe and prevents input data or filters from initiating I/O, although filters may read files before execution. The project also warns that it does not guard against resource exhaustion, so processing may use unlimited time, memory, or stack space. Binary downloads and installation instructions are provided for Linux, macOS, and Windows, and an online playground is available. jaq is MIT-licensed.

Spec sheet

What it does
jaq is a Rust implementation of jq for querying and transforming structured data from the command line.Read 15 Oct 2026 · github.com
Purpose
jaq is a jq clone focused on correctness, speed, and simplicity.Read 4 Oct 2026 · github.com
Security
The project says jaq is memory-safe and does not let input data or filters initiate I/O, except that filters may read files before execution.Read 4 Oct 2026 · github.com
License
The project repository identifies jaq as MIT-licensed.Read 4 Oct 2026 · github.com
Maker
The GitHub account identifies the maintainer as Michael Färber, a computer-science PhD focused on logic and automated reasoning.Read 15 Oct 2026 · github.com
API halt handling
Version 3.1 lets callers handle halt from filters through the jaq API instead of forcibly terminating the process.Read 15 Oct 2026 · github.com
Arch distribution
Arch Linux packages jaq 3.1.1-1 for x86_64 in its Extra repository.Read 15 Oct 2026 · archlinux.org
CLI and library
jaq is both a command-line jq replacement and a Rust library for compiling and running jq programs.Read 4 Oct 2026 · github.com
Conversions
It can convert data between supported formats while transforming it with a jq filter.Read 4 Oct 2026 · github.com
CSV and TSV
Version 3.0 added CSV and TSV format support.Read 15 Oct 2026 · github.com
Custom data types
jaq-core can process data types beyond JSON and supports embedding application-defined values through its ValT trait.Read 15 Oct 2026 · docs.rs
Distribution conflict
Homebrew warns that jaq conflicts with json2tsv because both install binaries named jaq.Read 15 Oct 2026 · formulae.brew.sh
Downloads
The project provides binary downloads for Linux, Mac, and Windows, and documents installation via Homebrew and Cargo.Read 4 Oct 2026 · github.com
Extra value support
jaq supports arbitrary values as object keys and can process strings containing arbitrary bytes, including invalid UTF-8.Read 4 Oct 2026 · github.com
Filters
The project adds filters including path-related operations, format conversion functions, tobytes, toboolean, @htmld and halt/1.Read 15 Oct 2026 · github.com
Formats
It supports JSON, YAML, CBOR, TOML, XML, CSV, and TSV data formats.Read 4 Oct 2026 · github.com
Funding
The project acknowledges NLnet grants funded through NGI0 Entrust and NGI0 Commons, with additional support from the Swiss State Secretariat for Education, Research and Innovation.Read 15 Oct 2026 · github.com
Homebrew distribution
Homebrew provides jaq 3.1.1 bottles for Apple Silicon and Intel macOS plus ARM64 and x86_64 Linux.Read 15 Oct 2026 · formulae.brew.sh
Independent ecosystem scale
Market.dev lists jaq as an active MIT-licensed Rust project with about 2.6 million downloads and 3.7 thousand stars.Read 15 Oct 2026 · explore.market.dev
Independent performance research
A peer-reviewed research paper reports jaq faster than jq on ten of thirteen benchmarks.Read 15 Oct 2026 · arxiv.org
Installation
Prebuilt binaries are offered for Linux, macOS and Windows, and source installation uses Cargo with a Rust toolchain.Read 15 Oct 2026 · github.com
JSON compatibility
The project is intended as a drop-in jq replacement and aims to preserve jq compatibility in most cases.Read 15 Oct 2026 · docs.rs
Latest documented release
Docs.rs lists jaq 3.1.1 as released on 5 August 2026.Read 15 Oct 2026 · docs.rs
Library safety
The jaq-core library can be used in multithreaded environments and supports data types beyond JSON.Read 4 Oct 2026 · github.com
Licence
The GitHub repository and package distributors identify jaq as MIT-licensed.Read 15 Oct 2026 · github.com
Maker location
Michael Färber's GitHub profile lists Innsbruck as his location.Read 15 Oct 2026 · github.com
Manual
jaq provides its own reference manual with nearly 500 automatically tested examples and a man page.Read 15 Oct 2026 · github.com
Native filters
The API allows arbitrary Rust data to be passed to native filters at runtime.Read 15 Oct 2026 · github.com
Performance
The project publishes benchmarks comparing jaq with jq and gojq, and reports jaq as faster on many benchmarks.Read 4 Oct 2026 · github.com
Performance benchmark
In the project's benchmark table, jaq 3.0 was fastest in 20 tested cases, compared with five for jq and six for gojq.Read 15 Oct 2026 · github.com
Playground
A browser playground is available for trying jaq interactively.Read 15 Oct 2026 · gedenkt.at
Praise: embedding
A Rust-community release discussion highlights that jaq can be embedded as a scripting language and adapted to custom data types.Read 15 Oct 2026 · reddit.com
Praise: jq compatibility
A Rust-community discussion praises jaq's close jq syntax and compatibility while contrasting it with yq's different query language.Read 15 Oct 2026 · reddit.com
Project creation
Market.dev records the project as created in December 2020.Read 15 Oct 2026 · explore.market.dev
Rust API
The jaq-core crate compiles and runs jq programs inside Rust applications.Read 15 Oct 2026 · docs.rs
Security audits
The core was audited twice by Radically Open Security through NLnet grants; reported moderate- and low-severity issues were addressed and fuzzing targets were added.Read 15 Oct 2026 · docs.rs
Security design
jaq states that it aims to avoid panics, memory corruption and I/O initiated by input data or filters, apart from permitted file reads before execution.Read 15 Oct 2026 · docs.rs
Security limitation
jaq does not impose defenses against resource exhaustion, so inputs or recursive filters can consume unlimited time, memory or stack space.Read 15 Oct 2026 · docs.rs
Security limits
jaq does not guard against resource exhaustion, so processing may consume unlimited time, memory, or stack space.Read 4 Oct 2026 · github.com
Supported formats
Besides JSON, jaq supports YAML, CBOR, TOML and XML input and output.Read 15 Oct 2026 · github.com
System requirement
The project says jaq should work on any platform supported by Rust.Read 15 Oct 2026 · github.com
Testing
The project reports a test suite containing more than 500 tests.Read 15 Oct 2026 · docs.rs
Thread safety
Compared with jq's API, jaq-core is designed for multithreaded use, and jaq-json can provide Send and Sync values with its sync feature.Read 15 Oct 2026 · github.com
Try it
The project links to an online playground where users can try jaq.Read 4 Oct 2026 · github.com
XJON values
jaq's extended JSON representation supports arbitrary-size integers, byte strings, invalid UTF-8, non-string object keys, comments, Infinity and NaN.Read 15 Oct 2026 · github.com

Plans and prices

jaq Free MIT-licensed open-source command-line program and Rust library Read 4 Oct 2026 · github.com
jaq open-source release Free MIT licence · command-line binary and Rust crates · Linux, macOS and Windows binaries Read 15 Oct 2026 · github.com

Every jaq plan and price →

Strong points and limits

Strong points

  • Supports JSON, YAML, CBOR, TOML, XML, CSV, and TSV.
  • Can convert formats while applying jq filters.
  • Rust library supports multithreaded environments.
  • Free and MIT-licensed.

Limits

  • Does not guard against resource exhaustion.
  • Filters may read files before execution.

Who it suits

jaq suits developers who want a jq-compatible command-line tool or a Rust library for data processing. Its format support may be useful when working with data beyond JSON.

Verdict

jaq extends jq-style querying to several data formats and is available as both a CLI tool and a Rust library. Its unrestricted resource use is an important consideration when processing untrusted or costly inputs.

Where Specifiction places it

Alternatives to jaqAll alternatives →