Skip to content
SPECIFICTION
Get listed

gojq vs jaq

gojq

github.com

jaq

github.com

Side by side

Figuregojqjaq
Price fromFreeFree
Free planYesYes
Free trial——
Open source—Yes
Web—Yes
WindowsYesYes
macOSYesYes
LinuxYesYes
API—Yes
Self-hostedYesYes
Plans published12
Spec score · JSON Tools8.5 (#5)8.9 (#1)
LicenseThe project is released under the MIT License.The project repository identifies jaq as MIT-licensed.
Purposegojq is a pure Go implementation of the jq command-line JSON processor and can also be embedded as a library in Go products.jaq is a jq clone focused on correctness, speed, and simplicity.

Plans

gojq

  • FreeFree

gojq pricing →

jaq

  • jaqFree
  • jaq open-source releaseFree

jaq pricing →

In their own words

gojq

gojq is a free, MIT-licensed Go implementation of the jq command, with a library for embedding queries in Go products. The command-line tool applies jq-style queries to JSON, including filtering, field selection, updates, and multiple input values. It reads YAML and can produce YAML output. Integer arithmetic uses arbitrary precision for addition, subtraction, multiplication, modulo, and divisible division. The project describes gojq as portable and supports Linux, macOS, Windows, and self-hosted use. Documented installation routes include Homebrew, mise, Zero Install, source builds, and Docker images. Go applications can parse and run queries, compile them for reuse, and configure custom functions and iterators. Environment-variable access and module loading are disabled by default for library queries and require configured loaders. gojq does not preserve object key order and lacks some jq extensions, flags, functions, and regular-expression behavior.

Visit github.com

jaq

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.

Visit github.com