STreaming ARchive format: simpler, stricter, smaller than CARs for a subset of use-cases.

Implementation Feedback (2026-10-24) #3

Open bnewbold.net
Open opened by bnewbold.net

I'm doing some go implementation work, and a couple notes on the specs:

  • might be worth noting that the overall meta object can not be empty (zero bytes). this can be inferred by the required $type field and being CBOR, but doesn't hurt to say it separately
  • the meta $type string must exist, but it seems like it can be empty string? should it be required that it is non-empty-string?
  • does it really need to be a "MUST" to verify that the varints are canonical for readers, or could it be "SHOULD"? I think it is nice to use stdlib implementations for basic stuff like this, and at least the golang one does not do this check, so need to re-implement from scratch or find an additional dependency
  • the semantics of a pair with both empty key and empty value are kind of weird, should that be disallowed? I guess that constraint might be unexpected in some situations
Sign up or Sign in to add to the discussion.