this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: bump zat to v0.2.2, remove correctness asymmetry caveat

zat now enforces the same size limits as indigo (2MB blocks, 10k max
blocks). there are no remaining correctness differences between the
two decode paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

zzstoatzz 4f1db9b2 9e2b9749

+7 -6
+5 -4
README.md
··· 83 83 - SHA-256 hash each block and compare against CID digest 84 84 - decode every block as DAG-CBOR 85 85 86 + **what both do that isn't obvious:** 87 + - enforce size limits (2MB max on blocks field, max block count) — zat matches indigo's limits as of v0.2.2 88 + 86 89 **what neither side does:** 87 90 - DAG-CBOR deterministic encoding validation (sorted keys, minimal integers) — indigo's refmt doesn't check this either 88 91 - signature verification — separate from decode, not measured here 89 92 - MST validation — separate from decode, not measured here 90 93 91 - **the only asymmetry:** indigo enforces size limits on CBOR map lengths and a 2MB cap on the blocks field. these are integer comparisons — effectively free. 92 - 93 - the ~20x gap between zat and indigo (both with CID verification) is entirely implementation cost, not correctness differences. 94 + there are no correctness differences between the two decode paths. the ~20x gap is entirely implementation cost. 94 95 95 96 ## where the ~20x comes from 96 97 ··· 145 146 146 147 | lang | SDK | version | CBOR engine | CAR engine | 147 148 |------|-----|---------|-------------|------------| 148 - | zig | [zat](https://tangled.sh/@zzstoatzz.io/zat) | 0.2.1 | hand-rolled | hand-rolled (+ SHA-256 CID verify) | 149 + | zig | [zat](https://tangled.sh/@zzstoatzz.io/zat) | 0.2.2 | hand-rolled | hand-rolled (+ SHA-256 CID verify, size limits) | 149 150 | rust | raw (minicbor + bumpalo) | — | [minicbor](https://crates.io/crates/minicbor) (zero-copy) | hand-rolled (sync) | 150 151 | rust | [jacquard](https://github.com/rsform/jacquard) | 0.9 | [ciborium](https://crates.io/crates/ciborium) (header) + [serde_ipld_dagcbor](https://crates.io/crates/serde_ipld_dagcbor) (body) | [iroh-car](https://crates.io/crates/iroh-car) (async) | 151 152 | go | raw (fxamacker/cbor) | — | [fxamacker/cbor](https://github.com/fxamacker/cbor) | hand-rolled (sync, no CID verify) |
+2 -2
zig/build.zig.zon
··· 5 5 .minimum_zig_version = "0.15.0", 6 6 .dependencies = .{ 7 7 .zat = .{ 8 - .url = "https://tangled.sh/zat.dev/zat/archive/v0.2.1", 9 - .hash = "zat-0.2.0-5PuC7igtBAC6Pl01Kyqn0c-1iBFuwYAlxj9Nvf3515Su", 8 + .url = "https://tangled.sh/zat.dev/zat/archive/v0.2.2", 9 + .hash = "zat-0.2.0-5PuC7mAuBADmN7OZkGvymjk9jq4akxdl-IlHSo8r25pr", 10 10 }, 11 11 }, 12 12 .paths = .{