{"repo":"ArchiveBox/abxbus","free":true,"listed":false,"github":"https://github.com/ArchiveBox/abxbus","clone":"git clone https://github.com/ArchiveBox/abxbus.git","description":"📢 Fast multi-language Event Bus library for Python/TS/Golang/Rust with support for advanced concurrency control features, nested event tracking, type enforcement, bridges to other backends, and more...","language":"Rust","stars":11,"topics":["async","celery","event-bus","event-driven","eventbus","events","nats","postgres","pydantic","python"],"license":"MIT","category":"databases-storage","readme_excerpt":"abxbus : 📢 Fast, in-memory, multi-language event bus AbxBus is an in-memory event bus library for async Python, TypeScript (node/browser), Rust, and Go. It's designed for quickly building resilient, predictable, complex event-driven apps. It \"just works\" with an intuitive, but powerful event JSON format + emit API that's consistent across runtimes and scales consistently from one event up to millions ( 0.2ms/event): It's async native, has proper automatic nested event tracking, and powerful concurrency control options. The API is inspired by EventEmitter or emittery in JS, but it takes it a step further: - nice Pydantic / Zod schemas for events that can be exchanged between runtimes - automatic UUIDv7s and monotonic nanosecond timestamps for ordering events globally - built in locking options to force strict global FIFO processing or fully parallel processing --- ♾️ It's inspired by the simplicity of async and events in JS but with baked-in features that allow to eliminate most of the tedious repetitive complexity in event-driven codebases: - correct timeout enforcement across multiple levels of events, including cancellation of awaited/blocking child work when a parent times out - ability to strongly type hint and enforce the return type of event handlers at compile-time - ability to queue events on the bus, or inline await them for immediate execution like a normal function call - handles thousands of events/sec/core; see the runtime matrix below for current measured numbe","default_branch":null,"files":null,"tree":[],"storefront":"/r/ArchiveBox","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ArchiveBox/abxbus/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}