STreaming ARchive format: simpler, stricter, smaller than CARs for a subset of use-cases.
star car archive atproto
star reference-impl rust CHANGELOG.md
2.1 kB
Markdown
at main

Changelog #

0.3.0-alpha.1 2026-08-28 #

Adds STAR-lite v1: support for permissioned space repo archives.

Existing v0 archives parse as before, and kind-C archives (public repos) are still written as v0 by default.

star-lite #

Added #

  • STAR-lite v1 format support.
  • New header module: Version (V0/V1), Kind (Commit = C, LtHash = L), and Commitment (Cid or LtHash([u8; 32])).
  • Kind-L archives for permissioned space repos
  • verify_commit_archive and verify_space_archive return the concrete VerifiedCommit / VerifiedSpace for a known kind; verify_archive handles either and returns a Verified enum.
  • encode_space_archive, space_commitment, and SpaceArchiveBuilder for writing kind L archives.
  • Writer::write_space_header, write_header_canonical (v0 for kind-C, v1 for kind-L), and write_header_versioned.
  • Reader::version, kind, commitment, meta, header_lthash, parse_commit, and parse_space_meta.
  • space_archive example.
  • Fuzzing!

Changed #

  • Breaking: verify_archive returns a Verified enum instead of raw kind-C (Cid, Option<CommitInfo>).
  • Breaking: Reader::header_cid() and friends are now fallible
  • Breaking: Cid is now CidGeneric<32>, re-exported from star-repo.
  • Breaking: reader::MAGIC is replaced by header::MAGIC_V0 and header::MAGIC_V1.
  • star_lite_to_car rejects kind-L input with FormatError::KindMismatch.

Fixed #

  • Reader's error paths did not mark the reader finished, so iterating with for entry in reader could yield the same error indefinitely.

Removed #

  • Direct ipld-core dependency.

star-repo #

Added #

  • lthash module: the LtHash homomorphic set hash, slightly specialized for atproto spaces.
  • space module: SpaceMeta { rev, repo, space } with strict parsing.
  • SpaceMetaError.
  • Cid type alias and CID_DIGEST_SIZE.

Changed #

  • Breaking: Cid is CidGeneric<32> rather than the 64-byte default.
  • Updated sha2 from 0.10 to 0.11 (go fasterrrrr).
  • Added a blake3 dependency, for LtHash element expansion.