rssRSS feed

clock-rotate-leftChangelog

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 Value factory (legacy V remains 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) parser

    • CLI with compile, decode, hash, and fmt commands

  • Cross-language golden vector enforcement

    • JavaScript consumes vectors directly from /vectors

    • Positive 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 .scb bytes over HTTP

    • No 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?