Many modbus devices support only one or very few clients. This proxy acts as a bridge between the client and the modbus device. It can be seen as a layer 7 reverse proxy. This allows multiple clients to communicate with the same modbus device.
When multiple clients are connected, cross messages are avoided by serializing communication on a first come first served REQ/REP basis.
This project is the Rust version of the Python based modbus-proxy project.
I did it because it fitted my personal goal of exercising with the Rust programming language and it's async based [tokio] library.
The goal was to produce a robust, highly concurrent server with a low memory footprint.
bash
cargo run --release -- -b 0:5020 --modbus plc1.acme.org:502
None yet. Why not be the first?