// the find
hirschenberger/modbus-rs
Modbus implementation in pure Rust
Pure Rust Modbus TCP client implementation, covering coil and register read/write operations. Targets embedded and industrial automation developers who need to talk to PLCs, sensors, or other Modbus devices from Rust without a C dependency.
1. Zero C dependencies — pure Rust with no FFI overhead, which matters for cross-compilation to embedded targets. 2. Clean, minimal API surface: the Client trait is straightforward and the TCP transport is usable in a handful of lines. 3. Active maintenance with CI on GitHub Actions and a recent 2026 push, so it's not abandonware. 4. Includes a real integration test server written in C to validate wire-level correctness against an authoritative implementation.
1. TCP only — no RTU or ASCII transport, which rules out RS-485/serial Modbus, the dominant physical layer in actual industrial hardware. 2. Synchronous blocking API with no async support; you're stuck spawning threads if you want to poll multiple devices concurrently. 3. 108 stars in 11 years is a signal the Rust industrial/embedded community hasn't widely adopted it — tokio-modbus exists and has async RTU+TCP, so this crate is solving a narrower problem. 4. Error handling uses unwrap() in the README examples, and the library's own error types are thin — production use will require wrapping everything defensively.