Repository navigation
Feedback jjq
Sanne-ai-bot edited this page Oct 26, 2026
·
1 revision
jjq is the Java jq port incus-spawn uses for YAML and JSON since #1263, which replaced Jackson on jjq 0.2.2. incus-spawn is on jjq 0.2.3 (#1330), the latest release as of 2026-10-26.
Gaps accepted when the port merged in #1263 on jjq 0.2.2:
- Hyperfoil/jjq#130 Positional spans on JqValue nodes: open. 0.2.3 fixed the root-level case; spans in general are still to come. (#1330)
- Hyperfoil/jjq#131 Invalid UTF-8 input replaced silently or failing without a position: closed, fixed in 0.2.3.
-
Hyperfoil/jjq#132
parseStrictkeeps duplicate JSON object keys: closed, fixed in 0.2.3. -
Hyperfoil/jjq#133 Mapper binds 0 for a word or boolean in integer fields and wraps out-of-range numbers: closed, fixed in 0.2.3.
.inf,-.infand.nanstill read as 0, so incus-spawn keepsIntegerConverter. (#1330) - Hyperfoil/jjq#134 YAML: an empty value inside a sequence item swallows the following keys: closed, fixed in 0.2.3.
Waiting on a release newer than 0.2.3:
- Hyperfoil/jjq#163 YAML emitter writes a string with a C0 control character as a plain scalar: closed upstream, not yet released. Tracked here as #1575 (open).
-
Hyperfoil/jjq#150 YAML: an indented
---line inside a block scalar is treated as a document marker: closed upstream, not yet released. Tracked here as #1492 (open), which waits on a jjq release newer than 0.2.3.
- An empty list item (a bare
-or~) maps to anullelement, which crashed tool definitions and leaked into image definitions; filtered on the incus-spawn side. (#1468, #1474, #1476, #1479) -
.inf,-.infand.nanread as 0 in numeric fields, which fails open for settings like grace periods; pinned byjjqStillReadsInfinityAndNanAsZero. (#1330) - Tree
intValue()wraps out-of-range values, so incus-spawn keeps its exact-integer checks on JSON. (#1330) - Moving to jjq removed about 108 ms of cold Jackson databind from CLI startup, and made several
@RegisterForReflectionentries redundant. (#1263, #1326)