Skip to content

fix(deps): update jaq group to v3 (major)#428

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/major-jaq
Open

fix(deps): update jaq group to v3 (major)#428
renovate[bot] wants to merge 1 commit intomainfrom
renovate/major-jaq

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Apr 1, 2026

This PR contains the following updates:

Package Type Update Change
jaq-core dependencies major 1.4.03.0.0
jaq-std dependencies major 1.4.03.0.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

01mf02/jaq (jaq-core)

v3.0.0: 3.0

jaq is a jq clone with focus on correctness, speed, and simplicity.

The most outstanding change in jaq 3.0 is its multi-format support, allowing you to read and write several data formats such as YAML, CBOR, TOML, XML, CSV, TSV, and of course JSON. That means that among others, jaq can convert data from one format into another, while transforming data with a jq filter. This effectively makes it into a "Pandoc for structured data".
Achieving this has been the main focus of the NLnet-founded "Polyglot jaq" project, which has been successfully finished. A huge thanks to NLnet for supporting jaq and, more generally, free software!

Other large user-facing changes include:

  • Manual: jaq now has a full jq and jaq reference manual. This was a monumental effort into which I poured a lot of love, and I hope that you enjoy reading it as much as I enjoyed putting easter eggs into it. Bonus: You also get a man page. (For package maintainers: Man page build instructions can be found in docs/README.md.)
  • Byte strings: You can now read strings that contain arbitrary contents, including invalid UTF-8 sequences. (When a string is read from a file, this takes only constant time, thanks to memory mapping.) You can then mark these strings as byte strings via tobytes, allowing you to index/slice them in constant time. This allows you to process arbitrary binary data efficiently with jaq --- as proof of concept, I implemented a little TAR decoder.
  • Arbitrary values as object keys: Where jq supports only strings as object keys, jaq supports arbitrary values as object keys.
  • Compatibility improvements: Although this release adds many new features to jaq that do not exist in jq, this release still increases compatibility with jq. For example, jaq now supports path/1 and many other path-related filters.

API:

  • New jaq-all crate for easier "batteries-included" jaq usage
  • Passing arbitrary data to native filters
  • Optional thread-safe jaq_json::Val when enabling the sync feature, allowing for multithreaded usage of values, e.g. running multiple filters in parallel on the same value

Changes since 3.0-gamma:

See the release notes for alpha, beta, and gamma for more details on all changes since jaq 2.3.

v2.2.0: 2.2

Compare Source

This release brings a few path-related changes:

  • New filters: paths/1, getpath/1 #​280
  • Updates with reduce/foreach on left-hand side #​281:
    This allows writing things like reduce xs as $x (.; .[$x]) |= f, which is currently not possible in jq. The meaning of this is described in my formal jq language specification.

Since last release, jaq's core has been audited by Radically Open Security as part of an NLnet grant --- thanks to both organisations for their support! As part of this audit, jaq's jq parser was fuzzed #​262, which required exposing the Tok type in jaq_core, hence a minor version bump. The audit found one bug (panic on invalid UTF-8 characters), which was fixed. Thanks in particular to @​pcwizz for having contributed the fuzzer and for having performed the audit!

Finally, this release increases output performance when not writing to stdout #​278.

Full Changelog: 01mf02/jaq@v2.1.1...v2.2.0

v2.1.1: 2.1.1

Compare Source

This release corrects a few bugs, in particular in the execution of label ... break #​260 as well as in printing of special Unicode characters in objects keys #​259.

Full Changelog: 01mf02/jaq@v2.1.0...v2.1.1

v2.1.0: 2.1

Compare Source

What's Changed
New Contributors

Full Changelog: 01mf02/jaq@v2.0.1...v2.1.0

v2.0.0: 2.0

Compare Source

jaq is a jq clone focussed on correctness, speed, and simplicity.

Compared to jaq 1.x, jaq 2.0 adds support for many features of the jq programming language.
As a result, jaq can now run jqjq, a jq interpreter written in jq itself, which has a code base of more than 3000 lines of jq code!

The largest single change in jaq 2.0 is support for jq's module system, allowing jaq to import module and data files (alpha).
Furthermore, the libraries underlying jaq are now agnostic towards their data format. This makes jaq a candidate for embedding it as language interpreter into other applications for processing non-JSON data.

Under the hood, jaq's compiler component has been completely rewritten to allow for the changes in jaq 2.0.

New syntax:

  • label...break, //=, nested definitions alpha
  • foreach/3 beta
  • Destructuring gamma

New command-line parameters:

  • --library-path / -L alpha
  • --args delta
  • --sort-keys / -S

I would like to thank all people that have contributed to this release, in particular @​wader for extensively testing jaq, contributing features and adapting jqjq to make it work with jaq. It has been a joy working with you!

My work on jaq since version 1.4 has been sponsored by the NLnet foundation, to whom I would like to express my deep gratitude for letting me live my dream.


Configuration

📅 Schedule: Branch creation - "on the first day of the month" in timezone Europe/Berlin, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the type/major label Apr 1, 2026
@renovate renovate bot requested a review from martinohmann as a code owner April 1, 2026 01:49
@renovate renovate bot added the type/major label Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants