{"repo":"browser-use/bubus","free":true,"listed":false,"github":"https://github.com/browser-use/bubus","clone":"git clone https://github.com/browser-use/bubus.git","description":"📢 Production-ready python event bus library with support for async and sync handlers, forwarding betwen busses w/ parent event tracking + loop prevention, FIFO and concurrency options, and WAL persistence. Powers the browser-use library.","language":"Python","stars":117,"topics":["async","asyncio","concurrency","event-driven","event-driven-architecture","event-sourcing","eventbus","events","eventstore","message-broker"],"license":"MIT","category":"self-hosted-apps","readme_excerpt":"bubus : 📢 Production-ready event bus library for Python Bubus is a fully-featured, Pydantic-powered event bus library for async Python. It's designed for quickly building event-driven applications with Python in a way that \"just works\" with async support, proper support for nested events, and real concurrency control. It provides a pydantic-based API for implementing publish-subscribe patterns with type safety, async/sync handler support, and advanced features like event forwarding between buses. ♾️ It's inspired by the simplicity of async and events in JS , we aim to bring a fully type-checked EventTarget -style API to Python. 🔢 Quickstart Install bubus and get started with a simple event-driven application: --- ✨ Features 🔎 Event Pattern Matching Subscribe to events using multiple patterns: 🔀 Async and Sync Handler Support Register both synchronous and asynchronous handlers for maximum flexibility: Handlers can also be defined under classes for easier organization: 🔠 Type-Safe Events with Pydantic Define events as Pydantic models with full type checking and validation: [!TIP] You can also enforce the types of event handler return values. ⏩ Forward Events Between EventBus s You can define separate EventBus instances in different \"microservices\" to separate different areas of concern. EventBus s can be set up to forward events between each other (with automatic loop prevention): 🔱 Event Results Aggregation Collect and aggregate results from multiple handlers: 🚦 FIFO Ev","default_branch":null,"files":null,"tree":[],"storefront":"/r/browser-use","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/browser-use/bubus/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."}