Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

JAQ Reference

Nervix embeds jaq-core 3.1.1. For the complete language and standard-library catalogue, read the human-readable upstream JAQ manual. The exact embedded version corresponds to the JAQ v3.1.1 release. This page only summarizes the Nervix boundary.

Nervix Contract

  • An ingestion transform runs once for every value a parsed native-format or protobuf payload holds, and receives that value as ..
  • Every object an ingestion transform yields becomes one message compatible with the internal schema. It may yield zero, one, or many objects, and one payload unfolds into at most 65,536 messages.
  • An emitting transform receives one record as . and must yield exactly one value accepted by the selected native format or protobuf message.
  • Nervix compiles filters with JAQ’s core, standard-library, JSON, and format functions. Standalone JAQ command-line options and file loading are not part of the codec contract.

See JAQ transformations for directionality, supported formats, exact output rules, and NSPL syntax, and Unfolding Payloads for how one payload becomes several messages.

Common Filters

FilterPurpose
.Preserve the current value
.field, .nested.fieldRead object fields
{field: .source}Construct an object
.items | map(.value)Transform every array element
.items[] | select(.enabled)Select matching elements
tonumber, tostringExplicitly convert JAQ values
//Supply an alternative value