pyserial-asyncio-fast
Python Serial Port Extension - Asynchronous I/O support
What it is and what it does
pyserial-asyncio-fast is an asyncio wrapper for pySerial that enables non-blocking serial port I/O in async Python applications. It implements eager writes—a technique that reduces overhead by avoiding frequent addition and removal of the asyncio writer. This makes it suitable for applications that need to communicate with serial devices without blocking the event loop.
The package targets Python 3.9 and later on POSIX systems (Linux, BSD, macOS). It is a thin layer over pySerial, so you still depend on that library's serial port handling; the main value is the async integration. Development status is marked Production/Stable, though the last release was 505 days ago, suggesting the package may be feature-complete rather than actively developed.
Use it for:
- Reading sensor data from a microcontroller over USB serial while handling other async tasks in the same event loop.
- Building a home automation daemon that communicates with multiple serial devices concurrently without blocking.
- Implementing a command-line tool that sends commands to a serial device and processes responses asynchronously.
- Logging or monitoring serial port data streams in real-time alongside other async I/O operations.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides async I/O support for serial port communication in Python, wrapping pySerial with asyncio-compatible read and write operations optimized for reduced overhead.
Yes, if you need async serial port I/O in Python 3.9+. The package is stable, permissively licensed, has low install friction, and solves a real problem. The aging maintenance status is not a blocker—the code appears complete and unarchived—but verify that the release gap does not mask unresolved issues for your use case.
Install
pyserial-asyncio-fast on PyPI
pip
pip install pyserial-asyncio-fastuv
uv add pyserial-asyncio-fastpoetry
poetry add pyserial-asyncio-fastInstalling pyserial-asyncio-fast
Before you install
Low install friction with a single pure-Python dependency (pyserial). Maintenance status is aging—last commit was 2025-03-27 and no release for 505 days—but the repository remains active and unarchived, suggesting continued use rather than abandonment.
License in practice
BSD-3-Clause is permissive; you may use, modify, and distribute this package with minimal restrictions, provided you retain the license notice.
Quickstart
pip install pyserial-asyncio-fast
import asyncio
from pyserial_asyncio_fast import open_serial_connection
async def main():
reader, writer = await open_serial_connection(url='/dev/ttyUSB0')
data = await reader.read()
writer.close()
asyncio.run(main())
Requires Python 3.9 or later and a working serial port device.
Verify before relying
- Whether the eager writes optimization measurably improves latency or throughput for typical use cases.
- Current compatibility with Python 3.13 beyond the classifier claim.
- Whether the 505-day release gap indicates the package is feature-complete or under-maintained.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pyserial |
| Maintenance | aging — 505 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 173,141/month — #10,316 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyserial_asyncio_fast-0.16-py3-none-any.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
PyLinkPyLink provides a unified file-like interface…
permissive · top 15,000 on PyPI
pyserial-asyncioAdds async/await support to pyserial for…
permissive · top 15,000 on PyPI
aioserialProvides async/await serial port I/O using…
copyleft · top 15,000 on PyPI
pexpect-serialExtends pexpect to work with serial ports by…
permissive · top 15,000 on PyPI
serialxSerialx provides synchronous and native…
permissive · top 15,000 on PyPI
async-modbusAsync ModBus provides an asynchronous Python…
unclear · top 15,000 on PyPI
aiochannelProvides asyncio-compatible channels (closable…
permissive · top 15,000 on PyPI
aiosmtplibaiosmtplib is an asynchronous SMTP client that…
permissive · top 5,000 on PyPI
types-pyserialProvides type hints for the pyserial library,…
permissive · top 5,000 on PyPI