jaq

What jaq is
jaq is a free, MIT-licensed tool for querying and transforming data with jq filters. It works as a command-line replacement for jq and as a Rust library for compiling and running jq programs. Alongside JSON, it supports YAML, CBOR, TOML, XML, CSV, and TSV, and can convert among these formats while applying a filter. The jaq-core library supports multithreaded use and data types beyond JSON. jaq also accepts arbitrary values as object keys and processes strings containing arbitrary bytes, including invalid UTF-8. The project publishes comparisons with jq and gojq and reports that jaq is faster on many benchmarks. It describes jaq as memory-safe and says input data and filters cannot initiate I/O, though filters may read files before execution. Its core has undergone two security audits, with reported issues addressed. The project warns that processing is not protected against resource exhaustion and may use unlimited time, memory, or stack space. Downloads and installation instructions are available for Linux, macOS, and Windows, and an online playground is available.
Who it suits
jaq suits people who want a command-line jq alternative or a Rust library for working with structured data. It also fits workflows that need formats beyond JSON or conversion between supported formats.
What it does well
- Free, open-source, and MIT-licensed.
- Supports seven data formats.
- Available as a CLI and Rust library.
- Handles arbitrary-byte strings and object keys.
- Offers binaries and an online playground.
What to know first
- Does not guard against resource exhaustion.
- File reads may occur before filter execution.
Limits
jaq does not guard against resource exhaustion. Processing may use unlimited time, memory, or stack space.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| jaq | MIT-licensed open-source command-line program and Rust library | Free |
| jaq open-source release | MIT licence · command-line binary and Rust crates · Linux, macOS and Windows binaries | Free |
As github.com lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Open the jaq GitHub project or its online playground.
- For a local installation, download a binary for Linux, macOS, or Windows.
- Alternatively, follow the project's Homebrew or Cargo installation instructions.
- Use jaq from the command line, or use its Rust library to compile and run jq programs.
jaq is a free data-processing tool for people who want jq-style queries in command-line workflows or Rust applications. It is particularly useful when work spans several structured formats, but workloads involving untrusted input need safeguards outside jaq.
Overview
jaq aims to make jq-style filtering correct, fast, and simple. It combines a command-line replacement for jq with a Rust library that compiles and runs jq programs, making it relevant both to shell users and developers embedding filters in software.
Key features
Beyond JSON, jaq supports YAML, CBOR, TOML, XML, CSV, and TSV. It can convert between those formats while applying a jq filter, reducing the need to split conversion and transformation across separate steps. This breadth is valuable for mixed-format pipelines; users needing only JSON have less reason to choose it over a dedicated viewer or editor.
For Rust applications, jaq-core can run in multithreaded environments and supports data types beyond JSON. jaq also allows arbitrary values as object keys and handles strings containing arbitrary bytes, including invalid UTF-8. These are useful capabilities when data does not fit ordinary JSON assumptions.
The project publishes comparisons with jq and gojq and reports faster results on many benchmarks. That makes jaq worth considering for performance-sensitive work, though it does not establish that every workload will run faster.
Platforms
Binary downloads are provided for Linux, Mac, and Windows, with installation instructions for Homebrew and Cargo. An online playground offers a way to try jaq, while the Rust library suits developers integrating it into their own applications.
Who it's for
jaq is a strong fit for developers and command-line users who already value jq-style filters and need to work across formats. Rust developers can also use it as a library, particularly when multithreaded use or non-JSON data types matter. For untrusted or costly workloads, it is not a safe standalone choice without external resource controls.
Pricing
jaq — free: The MIT-licensed open-source offering includes both the command-line program and Rust library. There is no paid tier or trial to weigh against a free plan; its practical cost is the need to manage resource limits independently where exhaustion would be a concern.
Pros and cons
- Pros: One jq-style workflow covers JSON, YAML, CBOR, TOML, XML, CSV, and TSV, including conversion during filtering.
- Pros: The Rust library supports multithreaded use and data beyond JSON, while arbitrary object keys and byte strings accommodate unusual inputs.
- Pros: The project says jaq is memory-safe, and reports that two NLnet-funded audits of its core by Radically Open Security had their reported issues addressed.
- Cons: It does not limit time, memory, or stack consumption, so an input or filter can exhaust resources unless the surrounding environment imposes limits.
- Cons: Its broad format and library capabilities are less compelling for readers who only need a visual JSON editor or viewer.
Alternatives
JSON Tools is a broader category to explore if jaq's command-line and library focus is not the right fit.
- jq is the direct alternative for users who want a free, MIT-licensed jq tool with standalone binaries for Linux, macOS, and Windows, rather than jaq's stated focus on multiple formats and a Rust library.
- Dadroit JSON Viewer suits readers seeking a viewer with JSON-to-CSV or XML conversion: its free non-commercial plan opens files up to 50 MB, while its Standard plan costs $98 per y.
- BracketView is an option for readers who prefer a web-based workflow with limited free uploads, encrypted snapshots, AI actions, and webhook endpoints.
- jless is a free MIT-licensed command-line tool for macOS and Linux to consider as another terminal-based option.
- jidoujisho is a free option for readers looking for software on Android 7.0 or later.
- JSON Crack is a free, open-source online tool for readers who prefer a web or browser-extension option.
- JSON Editor is a free MIT-licensed JavaScript library for readers building a JSON editor that runs in a modern browser.
- JSON Forms is a free option for readers looking for JSON Forms with community support.
Verdict
Choose jaq if you want jq-style filtering across multiple data formats or need a Rust library for compiling and running jq programs. Its format coverage, flexible data handling, and free MIT-licensed code make a persuasive package for technical workflows. Look elsewhere, or add external limits, when untrusted inputs must be prevented from consuming unbounded time, memory, or stack space.
Verdict
jaq brings jq-style filtering to multiple data formats and also offers a Rust library. Its lack of resource-use limits is worth considering when processing untrusted or costly workloads.
Questions
Is jaq free?
Yes. The listed plan is free, and the project identifies jaq as MIT-licensed open-source software.
Which data formats does jaq support?
It supports JSON, YAML, CBOR, TOML, XML, CSV, and TSV. It can convert between supported formats while applying a jq filter.
Which platforms are available?
The listed platforms are Linux, macOS, Windows, and API. Binary downloads are provided for Linux, Mac, and Windows.
Can I try jaq before installing it?
Yes. The project links to an online playground where users can try jaq.
Does jaq have a Rust library?
Yes. jaq is also a Rust library for compiling and running jq programs; jaq-core supports multithreaded environments and data types beyond JSON.
What resource limits does jaq impose?
It does not guard against resource exhaustion, so processing may consume unlimited time, memory, or stack space.
Facts from jaq's own pages
- API halt handling
- Version 3.1 lets callers handle halt from filters through the jaq API instead of forcibly terminating the process. · github.com, 15 Oct 2026
- Arch distribution
- Arch Linux packages jaq 3.1.1-1 for x86_64 in its Extra repository. · archlinux.org, 15 Oct 2026
- CLI and library
- jaq is both a command-line jq replacement and a Rust library for compiling and running jq programs. · github.com, 4 Oct 2026
- Conversions
- It can convert data between supported formats while transforming it with a jq filter. · github.com, 4 Oct 2026
- CSV and TSV
- Version 3.0 added CSV and TSV format support. · github.com, 15 Oct 2026
- Custom data types
- jaq-core can process data types beyond JSON and supports embedding application-defined values through its ValT trait. · docs.rs, 15 Oct 2026
- Distribution conflict
- Homebrew warns that jaq conflicts with json2tsv because both install binaries named jaq. · formulae.brew.sh, 15 Oct 2026
- Downloads
- The project provides binary downloads for Linux, Mac, and Windows, and documents installation via Homebrew and Cargo. · github.com, 4 Oct 2026
- Extra value support
- jaq supports arbitrary values as object keys and can process strings containing arbitrary bytes, including invalid UTF-8. · github.com, 4 Oct 2026
- Filters
- The project adds filters including path-related operations, format conversion functions, tobytes, toboolean, @htmld and halt/1. · github.com, 15 Oct 2026
- Formats
- It supports JSON, YAML, CBOR, TOML, XML, CSV, and TSV data formats. · github.com, 4 Oct 2026
- 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. · github.com, 15 Oct 2026
- Homebrew distribution
- Homebrew provides jaq 3.1.1 bottles for Apple Silicon and Intel macOS plus ARM64 and x86_64 Linux. · formulae.brew.sh, 15 Oct 2026
- 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. · explore.market.dev, 15 Oct 2026
- Independent performance research
- A peer-reviewed research paper reports jaq faster than jq on ten of thirteen benchmarks. · arxiv.org, 15 Oct 2026
- Installation
- Prebuilt binaries are offered for Linux, macOS and Windows, and source installation uses Cargo with a Rust toolchain. · github.com, 15 Oct 2026
- JSON compatibility
- The project is intended as a drop-in jq replacement and aims to preserve jq compatibility in most cases. · docs.rs, 15 Oct 2026
- Latest documented release
- Docs.rs lists jaq 3.1.1 as released on 5 August 2026. · docs.rs, 15 Oct 2026
- Library safety
- The jaq-core library can be used in multithreaded environments and supports data types beyond JSON. · github.com, 4 Oct 2026
- Licence
- The GitHub repository and package distributors identify jaq as MIT-licensed. · github.com, 15 Oct 2026
- License
- The project repository identifies jaq as MIT-licensed. · github.com, 4 Oct 2026
- Maker
- The GitHub account identifies the maintainer as Michael Färber, a computer-science PhD focused on logic and automated reasoning. · github.com, 15 Oct 2026
- Maker location
- Michael Färber's GitHub profile lists Innsbruck as his location. · github.com, 15 Oct 2026
- Manual
- jaq provides its own reference manual with nearly 500 automatically tested examples and a man page. · github.com, 15 Oct 2026
Where jaq stands on Freedom251
- JSON Tools#1 of 29