github 01mf02/jaq v2.0.0-alpha
2.0 alpha

latest releases: v3.0.0-alpha, v2.3.0, v2.2.0...
pre-release14 months ago

This release brings many new features to jaq:

  • Module & data import: You can now include and import modules like in jq with include "path"; or import "path" as mod;, as well as import data (JSON) files with import "path" as $data;. Each import/include directive can be followed by (optional) metadata, of which the search attribute is considered.
  • label...break expressions: label $x | f | ., break $x returns at most one output of f.
  • //= operator: thanks to @bb010g #142!
  • Nested definitions: You can now put definitions into any subterm, e.g. 1 + def a: 2; a is now valid.
  • (l // r) |= f can now be executed 2daf986.

Under the hood, the jaq compiler has been completely rewritten to allow for these changes.
Furthermore, the API has seen a complete overhaul, hopefully making it easier to use #188:

  • jaq-core now handles parsing, compilation, and execution.
  • jaq-std now includes all standard library filters, both implemented by definition and as native functions.
  • jaq-json implements JSON support for jaq.

As a result, jaq-core and jaq-std are completely agnostic towards their data format. This makes jaq a good choice also for processing non-JSON data.

In particular, feedback for the new API is solicited.

Full Changelog: v1.6.0...v2.0.0-alpha

Don't miss a new jaq release

NewReleases is sending notifications on new releases.