Changelog
All notable changes to Strata are documented in this file.
v0.4.0 — Developer Ergonomics & Integration Reference
Added
Rust Value construction macros
null!,bool!,int!,string!,bytes!,list!,map!Nested macro construction with last-write-wins map semantics
JavaScript Value factory upgrades (additive only)
Primary
Valuefactory (legacyVremains supported)Ergonomic JS helpers for lists, maps, and bytes
Integration Reference documentation section
Canonical API and integration examples for Rust and JavaScript
Explicit strictness and footgun documentation
Additional unit tests enforcing DX behavior
Guarantees
Canonical encoding unchanged
Hashing semantics unchanged (BLAKE3-256 over canonical bytes)
Value model unchanged
Decode behavior unchanged
Cross-language determinism preserved
All v0.3.x vectors remain valid and unchanged
Not Changed
Binary layout and tags
Canonical byte output
Hash output for any existing value
Decode acceptance or rejection rules
Northstar T1, T2, T3 behavior
Notes
This is a DX-only minor release
No canonical truth was modified
No migration required
Same values → same bytes → same hashes
Any future canonical change requires a new MINOR version and a new Northstar
v0.3.0 - Cross-Language Determinism
Added
JavaScript implementation (
strata-js)TypeScript-first, Node 20+ runtime
Full support for the v1 value model
BigInt-backed integer semantics
Canonical encoder and strict decoder
BLAKE3-256 hashing over canonical bytes
Strata Text (
.st) parserCLI with
compile,decode,hash, andfmtcommands
Cross-language golden vector enforcement
JavaScript consumes vectors directly from
/vectorsPositive vectors enforced byte-for-byte
Negative vectors enforced with exact error kind and offset
Northstar T1 – Wire Determinism
Rust → JS envelope transport
Canonical bytes and hashes must match exactly
Northstar T2 – Raw Wire Determinism
Raw
.scbbytes over HTTPNo helpers, no framing, no normalization
Northstar T3 – Framed Streaming Determinism
Streaming transport with explicit framing
Arbitrary chunking without hash instability
CI enforcement for all Northstar tests
Rust CI
JS CI
Northstar T1, T2, T3 block merges on failure
Guarantees
Rust and JavaScript produce identical canonical bytes
Rust and JavaScript produce identical hashes
Decoding behavior matches exactly across languages
All v1 and v2 vectors remain valid and unchanged
Not Changed
Canonical encoding rules
Hashing semantics
Value model
Binary layout and tags
Decode failure conditions
Notes
This release introduces parity and enforcement tooling only
No canonical truth was modified
Any future change to bytes, hashes, or semantics requires a new MINOR version and a new Northstar
Last updated
Was this helpful?