$npx skillfedfor your agent

async-modbus

Async ModBus python library

With conditionsPyPI NetworkingReleased Oct 202582.5K downloads / moGNU General Public License v3Pure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — async_modbus-0.2.3-py3-none-any.whl
v0.2.3 · released 2025-10-22 · Python >=3.6 · 2 runtime deps: connio, umodbus

Yes, with conditions. The package fills a genuine gap for async ModBus clients and has low install friction. However, it is marked Pre-Alpha, has not been released in 296 days, and carries an unclear GPLv3 license declaration. Use it for non-critical applications or internal tools; verify license compatibility and test thoroughly before production deployment.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.6 or later.
  • The modbus_for_url() helper depends on connio, which relies on the asyncio event loop; other async frameworks require manual StreamReader/StreamWriter wrapping.
  • Low install friction; pure Python wheel.

License · maintenance · safety

GNU General Public License v3 (unclear) — License treatment is unclear; the package declares GNU General Public License v3 but lacks SPDX confirmation. Verify compatibility with your project's licensing requirements before use.

last release 2025-10-22 (296 days) · last repo commit 2025-10-22 · 12 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 82,521 downloads/mo, #14,159 on PyPI

Verify before relying

import asyncio
from async_modbus import modbus_for_url

async def main():
    client = modbus_for_url("tcp://localhost:15020")
    reply = await client.write_coils(slave_id=1, starting_address=1, values=[1, 0, 1, 1])
    print(reply)

asyncio.run(main())
  • Whether the GPLv3 license is correctly declared and compatible with your use case
  • Current stability and production readiness given Pre-Alpha development status
Same gist for agents: .md · .json

What it is and what it does

Async ModBus is a thin wrapper around umodbus that adds async/await support for ModBus client communication. It provides two main classes—AsyncTCPClient and AsyncRTUClient—plus a convenience modbus_for_url() function that accepts connection strings (tcp://, serial://, rfc2217://) and returns a ready-to-use client. The library is async-framework agnostic, working with asyncio, curio, trio, or anyio as long as you provide compatible StreamReader and StreamWriter objects.

The package depends on connio and umodbus. It optionally uses numpy arrays for efficient data handling when available. It supports reading and writing ModBus coils, discrete inputs, holding registers, and input registers across TCP and RTU transports, including remote serial connections via RFC2217.

Use it for

  • Read and write ModBus coils and registers over TCP from an asyncio application using a URL-based connection string.
  • Communicate with industrial devices over serial RTU using async/await without blocking the event loop.
  • Bridge ModBus RTU over remote RFC2217 serial servers in an async context.
  • Integrate ModBus communication into curio, trio, or anyio applications by wrapping raw socket streams.
  • Efficiently handle bulk register reads/writes using numpy arrays for reduced memory and faster data manipulation.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, with conditions.

The package fills a genuine gap for async ModBus clients and has low install friction. However, it is marked Pre-Alpha, has not been released in 296 days, and carries an unclear GPLv3 license declaration. Use it for non-critical applications or internal tools; verify license compatibility and test thoroughly before production deployment.

Install

async-modbus on PyPI

Before you install

Low install friction; pure Python wheel. Maintenance status is aging—last release 296 days ago with modest repository activity (12 stars), though the repository remains active and not archived.

Requires Python 3.6 or later. The modbus_for_url() helper depends on connio, which relies on the asyncio event loop; other async frameworks require manual StreamReader/StreamWriter wrapping.

License in practice

License treatment is unclear; the package declares GNU General Public License v3 but lacks SPDX confirmation. Verify compatibility with your project's licensing requirements before use.

Quickstart

import asyncio
from async_modbus import modbus_for_url

async def main():
    client = modbus_for_url("tcp://localhost:15020")
    reply = await client.write_coils(slave_id=1, starting_address=1, values=[1, 0, 1, 1])
    print(reply)

asyncio.run(main())

Verify before relying

  • Whether the GPLv3 license is correctly declared and compatible with your use case
  • Current stability and production readiness given Pre-Alpha development status

Package facts

LicenseGNU General Public License v3 unclear
Python supportSupports the current Python release >=3.6
Install frictionLow. Pure-Python wheel
Runtime dependencies
2 packages
connioumodbus
MaintenanceAging 296 days since the last release
Last repo commit
First released
Downloads82,521 / month, #14,159 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 2 - Pre-AlphaIntended Audience :: DevelopersNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPython

Evidence: async_modbus-0.2.3-py3-none-any.whl

Tags

Capabilities
async modbus clientmodbus tcp rtu asyncasyncio modbus librarymodbus serial communicationindustrial protocol async
Topics
modbus-clientindustrial-protocolasync-io
PyPI keywords
modbustcprtuasync_modbusasyncio

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 › “async modbus client”

  • async-modbusAsync ModBus provides an asynchronous Python client for ModBus…
  • nibeNibe provides async communication with Nibe heatpumps via RS485…
  • uModbusuModbus is a pure Python implementation of the Modbus protocol that…

Give your agent the search over MCP, or paste the wish link into any chat.

More Networking packages

h11 With conditions
PyPI · WWW/HTTP · released Apr 2025

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.

MITpure Python · 3.8+aging
894.9Mdownloads / mo
psutil Worth it
PyPI · Libraries · released Jan 2026

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.

permissive licensecompiled wheel · 3.6+
387.6Mdownloads / mo
pyOpenSSL With conditions
PyPI · Python Modules · released Aug 2026

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.

Apache-2.0pure Python · 3.9+
294.2Mdownloads / mo
uvloop With conditions
PyPI · Networking · released Oct 2025

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.

Apache-2.0compiled wheel · 3.8.1+
257.9Mdownloads / mo
execnet With conditions
PyPI · Libraries · released Nov 2025

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…

MITpure Python · 3.8+aging
172.1Mdownloads / mo
pyzmq Worth it
PyPI · Networking · released Sep 2025

PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.

BSD-3-Clausecompiled wheel · 3.8+
109.5Mdownloads / mo

See also nibe · uModbus · velbus-aio · pymodbus · minimalmodbus · pyModbusTCP · serialx · pyserial-asyncio-fast · huawei-solar · bacpypes3