aiosignal
aiosignal: a list of registered asynchronous callbacks
Decision gist · record as of 2026-08-14
Yes. aiosignal is a stable, actively maintained library with low install friction, no security vulnerabilities, and a permissive license. It solves a specific and common problem in asyncio applications—managing callback lists with a clean API—and is used by established frameworks. Install it if your asyncio project needs structured callback management.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later and an asyncio-compatible environment.
- Low friction installation with only two lightweight runtime dependencies (frozenlist and typing-extensions).
- Active maintenance with recent releases; last commit was 2026-08-12.
License · maintenance · safety
Apache 2.0 (permissive) — Apache 2.0 permissive license allows broad use, modification, and distribution with minimal restrictions—suitable for most commercial and open-source projects.
last release 2025-07-03 (407 days) · last repo commit 2026-08-12 · 165 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 537,226,203 downloads/mo, #75 on PyPI
Alternatives
Verify before relying
pip install aiosignal
import asyncio
from aiosignal import Signal
async def callback(data):
print(f"Received: {data}")
sig = Signal()
sig.append(callback)
sig.freeze()
await sig.send("hello")- Whether the package is actively used by aiohttp or other major asyncio frameworks beyond documentation references.
- Performance characteristics when managing large numbers of callbacks or high-frequency signal sends.
What it is and what it does
aiosignal is a lightweight library for managing asynchronous callbacks in asyncio applications. It provides a Signal class that acts as a list of registered async callbacks with a two-stage lifecycle: an open phase where callbacks can be added or removed using standard list operations, and a frozen phase after calling freeze() where the callback list is locked and only sending signals is permitted. Callbacks are invoked concurrently using await sig.send(data), making it useful for event-driven asyncio architectures.
The package is designed to integrate with asyncio-based frameworks and applications that need a clean, structured way to manage event callbacks. It depends on frozenlist for efficient immutable list handling and typing-extensions for type hints, both minimal dependencies. With production-stable status, active maintenance, and no known vulnerabilities, it is a straightforward choice for asyncio projects requiring callback management.
Use it for
- Implement event hooks in asyncio web frameworks or servers that need to notify multiple listeners when specific events occur.
- Build plugin systems where callbacks are registered early and then locked to prevent accidental modifications during runtime.
- Create async event dispatchers for real-time applications that require broadcasting data to multiple concurrent handlers.
- Manage lifecycle callbacks (startup, shutdown, request processing) in asyncio application frameworks.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
aiosignal is a stable, actively maintained library with low install friction, no security vulnerabilities, and a permissive license. It solves a specific and common problem in asyncio applications—managing callback lists with a clean API—and is used by established frameworks. Install it if your asyncio project needs structured callback management.
Install
aiosignal on PyPI
Before you install
Low friction installation with only two lightweight runtime dependencies (frozenlist and typing-extensions). Active maintenance with recent releases; last commit was 2026-08-12.
Requires Python 3.9 or later and an asyncio-compatible environment.
License in practice
Apache 2.0 permissive license allows broad use, modification, and distribution with minimal restrictions—suitable for most commercial and open-source projects.
Quickstart
pip install aiosignal
import asyncio
from aiosignal import Signal
async def callback(data):
print(f"Received: {data}")
sig = Signal()
sig.append(callback)
sig.freeze()
await sig.send("hello")
Verify before relying
- Whether the package is actively used by aiohttp or other major asyncio frameworks beyond documentation references.
- Performance characteristics when managing large numbers of callbacks or high-frequency signal sends.
Package facts
| License | Apache 2.0 permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesfrozenlisttyping-extensions |
| Maintenance | Actively maintained 407 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 537,226,203 / month, #75 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/StableFramework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: Only |
Evidence: aiosignal-1.4.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 › “asyncio callback management”
- aiosignalProvides a Signal class for managing lists of asynchronous callbacks…
- asyncio-atexitRegisters cleanup functions to run when an asyncio event loop closes,…
- aiodhcpwatcherWatches for DHCP packets on the network using asyncio, allowing you…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
Adds a concurrent monitor and interactive Python REPL to asyncio applications, accessible via telnet or a built-in CLI client, allowing inspection and control of running tasks without blocking the event loop.
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.
aiogram is an asynchronous Python framework for building Telegram bots using asyncio and aiohttp, with type hints, routing, state machines, and middleware support.
PyPyDispatcher implements a multi-producer-multi-consumer signal dispatching mechanism, allowing decoupled components to communicate through named signals and receiver registration.
Python client library for the Signal Cli REST API, enabling programmatic sending and receiving of Signal messages through an HTTP interface.
However, be aware that many endpoints are marked untested or in-progress; test thoroughly before relying on group management or contact sync in production.
See also aiocop · onvif-zeep-async · rel · aiodebug