A cross-platform graphical serial terminal for embedded systems development and hardware debugging.
Rustcom provides a clean interface for serial communication without cryptic keyboard shortcuts or complex configuration. It runs on Linux, Windows, and macOS.
- Cross-platform GUI built with egui
- Light and dark theme support
- Configurable line endings (LF, CR, CRLF)
- Hex output view
- Command-line configuration support
- Real-time serial data monitoring
- Rust toolchain (1.60 or later)
- just command runner (optional, recommended)
Clone the repository and build:
git clone https://github.com/ullnorse/rustcom.git
cd rustcom
cargo build --releaseThe compiled binary will be in target/release/rustcom.
If you have just installed:
just release # Build release binary
just run # Run in debug mode
just test # Run tests
just ci # Run all checksRun just to see all available commands.
Run without arguments to open the graphical interface:
rustcomConfigure serial settings via command line:
rustcom --device COM1 --baudrate 115200
rustcom --device /dev/ttyUSB0 --baudrate 9600 --parity evenAvailable options:
-d, --device <DEVICE> Serial device name
-b, --baudrate <BAUDRATE> Baud rate [default: 115200]
-t, --data-bits <DATA_BITS> Data bits: 5, 6, 7, 8 [default: 8]
-p, --parity <PARITY> Parity: none, odd, even [default: none]
-f, --flow-control <FLOW_CONTROL> Flow control: none, software, hardware [default: none]
-s, --stop-bits <STOP_BITS> Stop bits: 1, 2 [default: 1]
just setup # Install development tools
just test # Run tests
just fmt # Format code
just ci # Run all checkscargo test
# or
just testcargo fmt # Format code
cargo clippy # Lint code
# or
just ci # Run all checks (tests, format, clippy, build)Run the CI pipeline locally to catch issues:
just ci-strict # Runs the same checks as CIsrc/app.rs- Main application state and logicsrc/serial.rs- Serial port communication and threadingsrc/ui/- UI components (menu, status bar, windows)src/cli.rs- Command-line argument parsingsrc/logger.rs- Custom logging implementation
MIT License - see LICENSE for details.
Contributions are welcome. Please ensure:
- Tests pass:
just test - Code is formatted:
just fmt - No clippy warnings:
just ci-strict

