blinker
Fast, simple object-to-object and broadcast signaling
Decision gist · record as of 2026-08-14
Yes. Blinker is a stable, zero-dependency library maintained by a reputable organization (Pallets), with no known vulnerabilities and permissive licensing. It solves a real problem (decoupled event dispatch) with minimal friction. Install it if you need event signaling; skip it only if your application has no use for observer-pattern communication.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Installation is straightforward with no runtime dependencies.
- The package is in Production/Stable status and maintained by the Pallets Community Ecosystem (Flask's organization), with a recent release in November 2024 and active repository.
License · maintenance · safety
permissive license (permissive) — Licensed under MIT (permissive), so you can use, modify, and distribute blinker freely in commercial or private projects with minimal restrictions.
last release 2024-11-08 (644 days) · last repo commit 2025-11-19 · 2,086 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 192,139,559 downloads/mo, #214 on PyPI
Alternatives
Verify before relying
from blinker import signal
started = signal('round-started')
def handler(round):
print(f"Round {round}")
started.connect(handler)
started.send(1)What it is and what it does
Blinker is a fast, simple event-dispatching library that implements the observer pattern for Python. It lets you create named signals that multiple subscribers can listen to, with the ability to filter by sender or receive broadcasts from any sender. The library has no runtime dependencies and is designed for low overhead, making it suitable for embedding in frameworks or applications that need decoupled event communication.
Typical use cases include framework hooks (like Flask's request lifecycle signals), plugin systems where components need to react to application events, and any architecture where you want to decouple event producers from consumers. You define a signal by name, connect handler functions to it, and send events through it—subscribers are notified synchronously in the order they connected.
Use it for
- Implement Flask-style request/response hooks and lifecycle signals in web frameworks or applications.
- Build plugin architectures where components react to application events without direct coupling.
- Create inter-module communication in large applications without tight dependencies between modules.
- Add event notification to object models so other code can react to state changes or actions.
- Implement undo/redo or audit logging by having multiple listeners subscribe to the same signal.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Blinker is a stable, zero-dependency library maintained by a reputable organization (Pallets), with no known vulnerabilities and permissive licensing. It solves a real problem (decoupled event dispatch) with minimal friction. Install it if you need event signaling; skip it only if your application has no use for observer-pattern communication.
Install
blinker on PyPI
Before you install
Installation is straightforward with no runtime dependencies. The package is in Production/Stable status and maintained by the Pallets Community Ecosystem (Flask's organization), with a recent release in November 2024 and active repository.
Requires Python 3.9 or later.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute blinker freely in commercial or private projects with minimal restrictions.
Quickstart
from blinker import signal
started = signal('round-started')
def handler(round):
print(f"Round {round}")
started.connect(handler)
started.send(1)
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 644 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 192,139,559 / month, #214 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonTyping :: Typed |
Evidence: blinker-1.9.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “event dispatching system”
- blinkerBlinker provides a lightweight event dispatching system that lets any…
- PyPyDispatcherPyPyDispatcher implements a multi-producer-multi-consumer signal…
- fastapi-eventsFastapi-events is an event dispatching and handling library for…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
LCM provides publish/subscribe message passing and automatic data marshalling for real-time inter-process communication with low latency and high bandwidth efficiency.
Psygnal implements the observer pattern with a Qt-style signals API, allowing objects to emit events that connected callbacks can listen to, with optional type checking and threading support.
PyDispatcher implements a signal-dispatch system where multiple producers can send signals that multiple consumers listen for and handle via registered callbacks.
Provides a publish-subscribe messaging system for event-driven architecture within a single Python process, where publishers send messages to named topics and subscribers receive them.
PyPyDispatcher implements a multi-producer-multi-consumer signal dispatching mechanism, allowing decoupled components to communicate through named signals and receiver registration.
Provides event-driven communication and task management for Python threads and asyncio, with decorators for signal handling and call batching.
See also zope.event · dumb-init · django-signal-webhooks · watchdog-gevent