Skip to content

Tenzir can now consume from and publish to NATS JetStream subjects with from_nats and to_nats. This release also fixes crashes in static musl builds when evaluating deeply nested generated TQL expressions.

Apr 17, 2026 · @mavam, @codex

Tenzir can now consume from and publish to NATS JetStream subjects with from_nats and to_nats.

Use from_nats to receive one event per message. The raw payload appears in the message blob field, and metadata_field attaches NATS metadata:

from_nats "alerts", metadata_field=nats
parsed = string(message).parse_json()

Use to_nats to publish one message per event. By default, the operator serializes the whole event with this.print_ndjson():

from {severity: "high", alert_type: "suspicious-login"}
to_nats "alerts"

Both operators support configurable connection settings, authentication, and the standard Tenzir tls record.

Static musl builds no longer crash on deep TQL expressions

Section titled “Static musl builds no longer crash on deep TQL expressions”

Apr 27, 2026 · @tobim, @codex · #6082

Static musl builds of tenzir no longer crash on deeply nested generated TQL expressions.

This affected generated pipelines with deeply nested expressions, for example rules or transformations that expand into long left-associated operator chains.

The tenzir binary now links with a larger default thread stack size on musl, which brings its behavior in line with non-static builds for these pipelines.