--- id: pyventus version: "0.8.0" license: MIT license_treatment: permissive maintenance: active --- # pyventus — A Python library for event-driven and reactive programming. License: permissive · Maintenance: active · Downloads: 540.7K/mo ## What it is and what it does Pyventus provides a decorator-based framework for event-driven programming in Python, letting you subscribe to named events and emit them from anywhere in your code. It supports both synchronous and asynchronous handlers, and works in both sync and async contexts. The library also includes a reactive programming layer with observable tasks and streaming, allowing you to define data sources that yield values over time and subscribe to them with callbacks. Both paradigms are built on a single runtime dependency (typing-extensions) and rely on the Python standard library, making installation lightweight. The library is designed for developers building asynchronous or event-based applications who want a simple, intuitive API without heavy framework overhead. You can mix sync and async code freely, control how asynchronous work completes (success or error), and organize your codebase around discrete events and their handlers. It's actively maintained, supports Python 3.10 through 3.14, and carries no known security vulnerabilities. Use it for: - Build loosely-coupled microservices or modular applications where components communicate via named events. - Implement reactive data pipelines that yield values over time and notify subscribers of changes. - Create async task orchestration where you emit events to trigger dependent workflows and handle their completion. - Develop real-time applications (dashboards, live feeds) using observable streams and subscriptions. - Refactor callback-heavy code into cleaner event-driven patterns with decorators. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Pyventus is a Python library for building event-driven and reactive applications with support for both synchronous and asynchronous code, using decorators and event emitters to link callbacks to named events or observable streams. Yes. Pyventus is a lightweight, actively maintained library with low install friction, no known vulnerabilities, and a permissive MIT license. It fills a clear niche for event-driven and reactive programming in Python without heavy dependencies. Install it if you need a simple event emitter or observable framework; skip it if your application is already built around a larger framework (Django, FastAPI) that provides its own event handling. ## Install pip install pyventus uv add pyventus poetry add pyventus ## Installing pyventus Before you install: Low friction: pure Python wheel with only typing-extensions as a runtime dependency. Active maintenance with recent commits and a stable release history since late 2023. License in practice: MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package provided you include the license notice. Quickstart: pip install pyventus from pyventus.events import AsyncIOEventEmitter, EventLinker @EventLinker.on("MyEvent") def handle_event(): print("Event fired") emitter = AsyncIOEventEmitter() emitter.emit("MyEvent") Requires Python 3.10 or higher. Verify before relying: - Performance characteristics and benchmarks compared to other event libraries. - Whether optional integrations (Redis Queue, Celery) are production-ready. - Scalability limits for high-volume event streams or large subscriber counts. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 540.7K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags event emitter library python, reactive programming python, event-driven architecture, async event handling, observable streams python, event dispatcher, observer pattern implementation, event-driven, reactive-programming, async-support [View on SkillFed](https://skillfed.io/packages/pyventus) · [View on PyPI](https://pypi.org/project/pyventus/)