// the find
stepfunc/rodbus
Rust implementation of Modbus with idiomatic bindings for C, C++, .NET, and Java
A Rust Modbus implementation by Step Function I/O that covers TCP, RTU, and TLS transports, with idiomatic FFI bindings generated for C, C++, .NET, and Java from a single Rust core. Aimed at SCADA/industrial developers who need a memory-safe Modbus stack they can call from legacy language environments. The async core is built on Tokio.
1. The FFI binding strategy is genuinely well-thought-out: one Rust core, one schema definition (rodbus-schema), and generated bindings per language — so protocol bugs get fixed once and all four language targets benefit. 2. TLS support on top of Modbus TCP is rare in open-source implementations and actually matters for IIoT deployments where you can't trust the network. 3. The integration tests run against real client/server pairs (integration/tests/integration_test.rs), not mocked framing, which is the right way to validate a protocol library. 4. There's a PERFORMANCE_ANALYSIS.md and a dedicated perf example, suggesting they've actually measured throughput rather than just assumed Tokio is fast enough.
1. 107 stars and a commercial backer is a tricky combination — the repo is open-source (Apache/MIT presumably) but the company's business model may mean the interesting features or support end up behind a paywall, and there's no community roadmap visible in the repo. 2. Modbus RTU over serial is notoriously hardware-dependent and the serial implementation is thin — `rodbus/src/serial/` is small and there are no serial integration tests, so RTU reliability on real hardware is unclear. 3. The .NET and Java bindings are FFI wrappers over a native shared library, which means shipping and versioning native binaries per platform — fine for a product but painful for NuGet/Maven consumers who expect pure managed packages. 4. The README at the repo root is essentially a stub that points you to an external docs site, which is a sign that the open-source repo is secondary to the commercial product; if that site goes away, the docs go with it.