skillfed

pyserial-asyncio-fast

Python Serial Port Extension - Asynchronous I/O support

pyserial-asyncio-fast v0.16 173.1K downloads/30d#10,316 on PyPI26
Permissive license BSD-3-Clause AGING released

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-fast

uv

uv add pyserial-asyncio-fast

poetry

poetry add pyserial-asyncio-fast

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: End Users/DesktopNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: CommunicationsTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Terminals :: Serial

Tags

async serial port communicationpyserial asyncio wrapperserial port async I/Oasyncio serial devicenon-blocking serial read writeasync serial port python
async-ioserial-communication

More Libraries packages