atproto utils for zig zat.dev
atproto sdk zig
26
fork

Configure Feed

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

at codex/xrpc-errors-retry 56 lines 2.6 kB view raw view rendered
1# roadmap 2 3zat started as a small set of string primitives for AT Protocol — the types everyone reimplements (`Tid`, `Did`, `Handle`, `Nsid`, `Rkey`, `AtUri`). the scope grew based on real usage. 4 5## current status 6 7**v0.3.0-alpha** — zig 0.16, `std.Io` throughout. 8 9the v0.3.0 migration replaced all networking and concurrency primitives with zig 0.16's [`std.Io`](https://ziglang.org/documentation/master/std/#std.Io) interface. the API change is mechanical: every networking type takes `io: std.Io` as its first parameter. streaming clients moved from `connect()` + `next()` loops to `subscribe(handler)` with automatic reconnection, backoff, and host rotation. 10 11the library is stable and tested. the alpha tag reflects that downstream consumers (zlay, labelz, pollz) are still validating in production. 12 13## history 14 15**what grew from usage:** 16- string primitives with parsing and validation — the initial scope 17- DID/handle resolution — `DidResolver`, `DidDocument`, `HandleResolver` 18- XRPC client and JSON helpers 19- JWT verification for service auth 20- jetstream client — typed JSON event stream with reconnection (v0.1.3) 21- firehose client — raw CBOR event stream, DAG-CBOR codec, CAR codec, CID creation (v0.1.4) 22- MST, ECDSA signing, `did:key` construction, multibase encoding (v0.1.9) 23- full repo verification — end-to-end trust chain from handle to MST root CID match (v0.2.0) 24- CID hash verification in CAR parser (v0.2.1), size limits (v0.2.2) 25- OAuth 2.1 DPoP client (v0.2.14) 26- configurable keep-alive, transport options (v0.2.12–v0.2.18) 27- `std.Io` migration, `subscribe(handler)` streaming API (v0.3.0-alpha) 28 29this pattern — start minimal, expand based on real pain — continues. 30 31## what's next 32 33the library covers the full AT Protocol verification pipeline: identity resolution, repo parsing, signature verification, and MST validation. benchmarked against Go (indigo) and Rust (rsky) in [atproto-bench](https://tangled.org/zzstoatzz.io/atproto-bench). 34 35near-term: 36- promote to v0.3.0-beta once production consumers stabilize 37- cut v0.3.0 when the API surface is confirmed 38 39what's missing will show up when people build things. until then, no speculative features. 40 41## maybe later 42 43these stay out of scope unless real demand emerges: 44 45- lexicon codegen — probably a separate project 46- higher-level clients/frameworks — too opinionated 47- token refresh/session management — app-specific 48- feed generator scaffolding — each feed is unique 49 50## non-goals 51 52zat is not trying to be: 53 54- a "one true SDK" that does everything 55- an opinionated app framework 56- a replacement for understanding the protocol