atproto-bench #
Correctness and performance evaluation for AT Protocol primitives. Shared fixtures compare work across Zig, Go, Rust, Python, and Elixir. Jetstream client conformance and end-to-end measurements now live in the SDK repository, where CI builds the actual checkout under test.
design #
- correctness before speed — compare events, errors, cursors, and work counts before interpreting throughput differences.
- shared inputs — use deterministic local fixtures for conformance and the same captured corpus for comparable performance workloads.
- explicit boundaries — separate SDK primitives, client behavior, and service performance; a decoder timing does not establish end-to-end throughput.
- reproducible comparisons — pin references, record toolchains, alternate measured runs, and keep setup and compilation outside timing.
develop #
Install just and the toolchains for the lanes you run: Zig 0.16, Go, Rust,
Python/uv, or Elixir. Dependency downloads require internet.
just --list # available workloads and fixture capture commands
just bench-jetstream-compression # paired local decode timings
just bench-mst # synthetic Merkle-tree comparison
Other workloads need captured fixtures; run their corresponding capture-*
recipe first. Capture, trust-chain verification, and stress commands access
live services. Set ZIG=/path/to/zig to choose a compiler.
docs #
See docs/ for workload contracts, historical results, methodology, and historical Jetstream comparisons. Measurements retain their original versions and context rather than serving as a current universal ranking.