skillfed

pyserial-asyncio

Python Serial Port Extension - Asynchronous I/O support

pyserial-asyncio v0.6 770.7K downloads/30d#5,104 on PyPI281
Permissive license BSD DORMANT released

What it is and what it does

pyserial-asyncio wraps the pyserial library to provide asyncio-compatible serial port access. Instead of blocking I/O calls that halt your entire program, it integrates with Python's event loop so you can read from and write to serial devices concurrently with other async tasks. This is essential for applications like embedded device control, sensor monitoring, or robotics where you need to handle serial communication without stalling other operations.

The package is a thin adapter layer over pyserial, so it inherits pyserial's broad platform support (OSX, Linux, BSD) and serial port handling. It depends only on pyserial and works with Python 3.5 and later. The project has been dormant since late 2023, meaning no active development or bug fixes are being released, though the code remains available and the repository is not archived.

Use it for:

  • Build IoT applications that communicate with microcontrollers over serial while handling other async tasks concurrently.
  • Monitor multiple serial sensors in parallel without blocking your event loop or spawning threads.
  • Implement async serial device drivers or protocol handlers in asyncio-based frameworks.
  • Create interactive serial terminal applications that remain responsive while waiting for device input.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Adds async/await support to pyserial for non-blocking serial port I/O, letting you read and write to serial devices without blocking your event loop.

Yes, if you need asyncio-compatible serial I/O and can tolerate dormant maintenance. The package is stable, has no known vulnerabilities, and solves a real problem for async Python applications. However, if you require active maintenance, security updates, or support for the latest Python versions, evaluate whether the dormancy since late 2023 fits your project's risk tolerance.

Install

pyserial-asyncio on PyPI

pip

pip install pyserial-asyncio

uv

uv add pyserial-asyncio

poetry

poetry add pyserial-asyncio

Installing pyserial-asyncio

Before you install

Low friction to install. Dormant since late 2023 with no recent commits, though the repository remains active and the single runtime dependency (pyserial) is stable. Suitable for projects that don't require ongoing maintenance updates.

License in practice

BSD license is permissive; you can use this package freely in commercial and open-source projects with minimal restrictions.

Quickstart

pip install pyserial-asyncio

import asyncio
import pyserial_asyncio

async def main():
    # Use pyserial-asyncio with asyncio event loop
    pass

asyncio.run(main())

Requires Python 3.5 or later; pyserial must be installed as a runtime dependency.

Verify before relying

  • Whether the package works reliably with Python versions beyond 3.8 (classifiers list only up to 3.8).
  • Current compatibility with modern asyncio patterns and whether breaking changes exist in recent Python releases.
  • Specific API and usage patterns for integrating with pyserial in async contexts.

Package facts

License BSD (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 1 — pyserial
Maintenance dormant — 1,779 days since the last release
Last repo commit
First released
Downloads 770,664/month — #5,104 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyserial_asyncio-0.6-py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: End Users/DesktopLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Topic :: CommunicationsTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Terminals :: Serial

Tags

async serial port communicationpyserial asyncionon-blocking serial I/Oasyncio serial portasync serial device controlevent loop serial communicationpython serial async
asyncioserial-communicationembedded-systems

More Libraries packages