Skip to main content

Documentation Index

Fetch the complete documentation index at: https://abxbus.archivebox.io/llms.txt

Use this file to discover all available pages before exploring further.

The parity performance suites use the same scenario layout across Python, TypeScript, Rust, and Go:
uv run tests/performance_runtime.py --no-json
pnpm --dir abxbus-ts run perf:node
cargo test --manifest-path abxbus-rust/Cargo.toml --release --test test_eventbus_performance -- --nocapture
(cd abxbus-go && go test ./tests -run TestPerformance -count=1 -timeout=180s -v)
Measured locally on the same development machine used for the parity runs:
Runtime1 bus x 50k events x 1 handler500 buses x 100 events x 1 handler1 bus x 1 event x 50k parallel handlers1 bus x 50k events x 50k one-off handlersWorst case (N buses x N events x N handlers)
Python0.366ms/event, 0.188kb/event0.408ms/event, 0.153kb/event0.093ms/handler, 10.197kb/handler0.633ms/event, 0.145kb/event0.504ms/event, 4.171kb/event
Rust0.067ms/event0.070ms/event0.062ms/handler0.077ms/event0.227ms/event
Go0.016ms/event0.011ms/event0.085ms/handler0.011ms/event0.041ms/event
TypeScript (Node)0.065ms/event, 4.145kb/event0.078ms/event, 1.562kb/event0.065ms/handler, 11.631kb/handler0.123ms/event, 2.182kb/event0.344ms/event, 12.619kb/event
Notes:
  • Python and TypeScript memory numbers are peak RSS deltas from their runtime harnesses.
  • Rust and Go performance tests currently assert the 0.300ms per event/handler budget for the measured scenarios but do not report per-event memory in the README matrix.
  • Rust’s 50k parallel handler budget is measured with cargo test --release; the debug build still runs the other Rust performance scenarios and ignores only that release-sensitive stress case.
  • The current local Python row and TypeScript worst-case row are above the target budget in some scenarios and should be treated as performance follow-up items rather than baseline targets.