Changelog

All notable changes to Strata are documented in this file.

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?