aioserial
An asynchronous serial port library of Python
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
Provides async/await serial port I/O using asyncio, wrapping pyserial to enable non-blocking read and write operations on serial connections.
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
pip
pip install aioserialuv
uv add aioserialpoetry
poetry add aioserialInstalling aioserial
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.
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())
Requires pyserial installed; serial port device must be accessible and properly configured on the system.
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 — pyserial |
| 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) |
Evidence: aioserial-1.3.1.tar.gz
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
pyserial-asyncioAdds async/await support to pyserial for…
permissive · top 15,000 on PyPI
serialxSerialx provides synchronous and native…
permissive · top 15,000 on PyPI
pyserial-asyncio-fastProvides async I/O support for serial port…
permissive · top 15,000 on PyPI
pexpect-serialExtends pexpect to work with serial ports by…
permissive · top 15,000 on PyPI
aiofastnetaiofastnet replaces asyncio's transport and…
unclear · top 15,000 on PyPI
aiofileProvides asynchronous file I/O operations for…
permissive · top 1,000 on PyPI
aiorunProvides a simplified entry point for asyncio…
permissive · top 15,000 on PyPI
aiorwlockProvides read-write locks for asyncio programs,…
permissive · top 5,000 on PyPI
aiochannelProvides asyncio-compatible channels (closable…
permissive · top 15,000 on PyPI