aioserial
An asynchronous serial port library of Python
Decision gist · record as of 2026-08-14
Yes, if you need async serial I/O and can accept an unmaintained package. The core functionality is stable and has no known vulnerabilities, but be aware that no updates or bug fixes will be released. High install friction (source distribution only) and abandoned status since 2022 mean you should verify compatibility with your Python version and OS before committing. Consider it a working snapshot rather than an actively supported library.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires pyserial installed; serial port device must be accessible and properly configured on the system.
- High install friction due to source distribution only.
- Maintenance is abandoned—last release was 2022-07-25 with no commits since then.
License · maintenance · safety
MPL-2.0 (copyleft) — Licensed under MPL-2.0 (copyleft). You must disclose source modifications and distribute under the same license if you modify and redistribute the package; proprietary use of unmodified copies is permitted.
last release 2022-07-25 (1481 days) · last repo commit 2022-07-25 · 145 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 89,457 downloads/mo, #13,659 on PyPI
Alternatives
Verify before relying
import asyncio
import aioserial
async def read_serial():
port = aioserial.AioSerial(port='/dev/ttyUSB0', baudrate=115200)
data = await port.read_async(size=10)
print(data)
port.close()
asyncio.run(read_serial())- Whether the package works reliably with Python 3.10+ despite being abandoned since 2022.
- Current compatibility with modern asyncio event loop implementations and Windows serial port handling.
- Whether high install friction (source-only distribution) reflects build dependencies or is simply a packaging choice.
What it is and what it does
aioserial is an asyncio wrapper around pyserial that lets you perform serial port operations (read, write, readline) as coroutines instead of blocking calls. It inherits from pyserial's Serial class, so it supports all standard pyserial configuration and methods, but adds async variants like read_async(), write_async(), and readline_async() that integrate with Python's asyncio event loop.
The package is designed as a simpler, higher-level alternative to pyserial-asyncio for developers who want straightforward async/await syntax without protocol callbacks. It supports Python 3.6 through 3.10, though the project has been abandoned since July 2022 and receives no active maintenance.
Use it for
- Reading sensor data from a serial device in an asyncio application without blocking the event loop.
- Writing commands to embedded devices asynchronously while handling other concurrent tasks.
- Building a serial port monitoring tool that processes multiple serial streams concurrently.
- Integrating serial communication into an async web service or bot that needs non-blocking I/O.
- Replacing blocking serial loops in legacy code with async/await for better concurrency.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need async serial I/O and can accept an unmaintained package.
The core functionality is stable and has no known vulnerabilities, but be aware that no updates or bug fixes will be released. High install friction (source distribution only) and abandoned status since 2022 mean you should verify compatibility with your Python version and OS before committing. Consider it a working snapshot rather than an actively supported library.
Install
aioserial on PyPI
Before you install
High install friction due to source distribution only. Maintenance is abandoned—last release was 2022-07-25 with no commits since then. The package is not actively maintained, so bug fixes and compatibility updates are unlikely.
Requires pyserial installed; serial port device must be accessible and properly configured on the system.
License in practice
Licensed under MPL-2.0 (copyleft). You must disclose source modifications and distribute under the same license if you modify and redistribute the package; proprietary use of unmodified copies is permitted.
Quickstart
import asyncio
import aioserial
async def read_serial():
port = aioserial.AioSerial(port='/dev/ttyUSB0', baudrate=115200)
data = await port.read_async(size=10)
print(data)
port.close()
asyncio.run(read_serial())
Verify before relying
- Whether the package works reliably with Python 3.10+ despite being abandoned since 2022.
- Current compatibility with modern asyncio event loop implementations and Windows serial port handling.
- Whether high install friction (source-only distribution) reflects build dependencies or is simply a packaging choice.
Package facts
| License | MPL-2.0 copyleft |
| Python support | Supports the current Python release >=3.6,<4.0 |
| Install friction | High. Source build required |
| Runtime dependencies | 1 packagepyserial |
| Maintenance | Abandoned 1,481 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 89,457 / month, #13,659 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI ApprovedProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: aioserial-1.3.1.tar.gz
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 serial port”
- aioserialProvides async/await serial port I/O using asyncio, wrapping pyserial…
- pyserial-asyncio-fastProvides async I/O support for serial port communication in Python,…
- pyserial-asyncioAdds async/await support to pyserial for non-blocking serial port…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also pyserial-asyncio · serialx · pyserial-asyncio-fast · pexpect-serial · aiofastnet · aiofile · aiorun · aiorwlock · aiochannel