A cross-platform Modbus master simulator rebuilt with Tauri 2 and React. This project is inspired by the original GitHubDragonFly/ModbusMaster Windows/Mono application, but rewritten as a modern, lightweight desktop app using Rust for the backend and a web-based UI.
- Protocols: TCP, UDP, and RTU (ASCII variants and RTU-over-TCP/UDP can be added in future releases).
- Slave ID: configurable Unit ID (1–247) and basic slave scanning.
- Function codes: read/write Coils, Discrete Inputs, Input Registers, and Holding Registers.
- Data types: UInt16, Int16, UInt32, Int32, Float32, Float64, and String with selectable byte order.
- Connection management: connect/disconnect, real-time status, and request logs.
- Virtual serial ports: serial port field can be typed manually to work with
com0comortty0ttypairs. - Multiple instances: run multiple app instances side-by-side with different ports or serial ports.
01Read Coils02Read Discrete Inputs03Read Holding Registers04Read Input Registers05Write Single Coil06Write Single Register15Write Multiple Coils16Write Multiple Registers
- Backend: Rust + Tauri 2 + Tokio
- Modbus library: tokio-modbus
- Serial: tokio-serial
- Frontend: React 19 + TypeScript + Tailwind CSS + Vite
# Ensure cargo is on your PATH (Windows PowerShell example)
$env:PATH = "$env:USERPROFILE\.cargo\bin;$env:PATH"
npm install
npm run tauri dev$env:PATH = "$env:USERPROFILE\.cargo\bin;$env:PATH"
npm run tauri buildBuild artifacts will be placed in src-tauri/target/release/bundle/.
Pre-built installers are available on the Releases page.
This project is licensed under the MIT License, matching the license of the original nModbus-based simulator.
Original project: GitHubDragonFly/ModbusMaster
- Modbus Slave Simulation (Tauri) — the counterpart Modbus slave simulator.
