Awesome Industrial Modbus [](https://awesome.re)

May 31, 2026 · View on GitHub

🏭 A curated list of awesome Modbus resources, libraries, tools, and devices for industrial automation, SCADA, and ICS engineers.

Modbus is the most widely deployed industrial communication protocol in the world. Over 50 years after its introduction by Modicon in 1979, it remains the de-facto standard for industrial DC monitoring, battery banks, telecom rectifiers, solar inverters, and millions of legacy and modern industrial devices.

This list focuses on resources that are actively maintained, openly licensed, and genuinely useful for production work — not toy projects, marketing pages, or dead links.

Contents

Specifications & Documentation

Client Libraries

Python

  • pymodbus - The de-facto Modbus implementation for Python. Supports RTU/TCP/ASCII over serial and network transports. Asyncio support. (★ 2400+)
  • umodbus - Pure Python implementation of Modbus TCP, UDP and RTU. Server and client.
  • minimalmodbus - Minimal Python implementation focused on serial RTU/ASCII.
  • pyModbusTCP - Simple Modbus/TCP client and server library for Python.
  • async-pymodbus - Async pymodbus wrapper for high-performance polling.

C/C++

  • libmodbus - The classic Modbus library for Linux/Mac/FreeBSD/QNX/Windows. (★ 2400+)
  • nanoMODBUS - Compact MODBUS RTU/TCP C library for embedded/microcontrollers.
  • FreeMODBUS - Free implementation of the Modbus protocol primarily designed for embedded systems.
  • Mbed Modbus - Modbus library for ARM mbed OS embedded systems.
  • esp-modbus - ESP-IDF Modbus library for ESP32 microcontrollers.

Java

  • jamod - Object-oriented Java implementation of the Modbus protocol.
  • j2mod - Fork of jamod with bug fixes and additional features.

JavaScript/Node.js

  • modbus-serial - Pure JS implementation of Modbus master (client) and slave (server). RTU/TCP/UDP.
  • jsmodbus - Node.js implementation of Modbus master and slave.

Go

  • goburrow/modbus - Fault-tolerant, fail-fast implementation of Modbus protocol in Go.
  • grid-x/modbus - Fork of goburrow/modbus with additional features.

Rust

  • tokio-modbus - Modbus library for the Tokio async runtime.

Slave Simulators

Critical for development and CI — let you test Modbus master code without physical hardware on the bench.

  • aem-modbus-simulator - Open-source Python Modbus RTU/TCP slave simulator with realistic 147-register industrial DC monitor map (17 functional blocks). Six baudrates (4800-115200), TCP and Serial modes, 3 preset scenarios (telecom 48V, solar strings, automotive 24V). MIT license, pymodbus 2.x/3.x compatible.
  • diagslave - Commercial Modbus slave simulator. Free for non-commercial use.
  • ModbusPal - Java-based Modbus slave simulator with GUI.
  • PeakHMI Modbus Slave Simulator - Windows-based Modbus slave simulator.
  • MOD_RSsim - Free Modbus RTU/TCP/ASCII slave simulator for Windows.
  • pymbsim - Python-based Modbus slave simulator.
  • Simply Modbus - Commercial Windows Modbus simulator with manual documentation.

CLI Tools

  • aem-modbus-cli - Open-source Python CLI for Modbus RTU/TCP diagnostics: scan (sweep IDs 1-247), baudrate (auto-detect), read (with retry diagnostics), bench (RTT and error rate measurement). MIT.
  • mbtget - Simple Modbus/TCP client written in Perl.
  • ctmodbus - Multi-purpose Modbus protocol interaction tool.
  • mbusd - Modbus TCP to Modbus RTU gateway daemon (open-source).
  • modpoll - Command-line Modbus master tool (commercial, free for non-commercial).

GUI Tools

Network Analysis

  • Wireshark - Industry-standard packet analyzer with full Modbus TCP dissector support.
  • tcpdump - Command-line packet analyzer (use with port 502 filter for Modbus TCP).
  • Scapy Modbus layer - Python packet manipulation for crafting custom Modbus frames.
  • ICS-pcap Modbus samples - Real-world Modbus traffic captures for testing.

Security & Pentest

SCADA Integration

Educational Resources

Books & Whitepapers

Talks & Videos

Contributing

Contributions welcome — please read CONTRIBUTING.md first.

Quality bar:

  • Project must be actively maintained (commit within last 12 months)
  • License must be clear (open-source preferred but commercial OK if industry-standard)
  • Description must be factual, not promotional (max 1 sentence value claim)
  • New entries go in alphabetical order within sections
  • One PR = one logical addition (don't bundle unrelated entries)

If you maintain a Modbus-related project that fits a section here, feel free to PR with a disclosure of your involvement.

License

CC0 — Public Domain. Use freely.


Maintained by Leandro Roisenberg (LRI Automação Industrial). Disclosure: I maintain aem-modbus-simulator, aem-modbus-cli, and aem-iec62443-checklist which appear in this list. They are listed on technical merit alongside competing tools (commercial diagslave, ModbusPal, Modbus Poll/Slave). Suggestions and competing alternatives are welcomed via PR.