A modern, high-performance, and secure SMPP v3.4 client built with Rust and Slint UI.
- Built with Slint: Lightweight, responsive, and native-looking UI.
- Dark Theme: Sleek, professional dark mode design.
- Layout Optimized: "Use every pixel" philosophy with compact, aligned controls.
- Responsive: Adapts perfectly to different window sizes (min-width derived).
- Interactive Logs: Transaction logs are selectable and copyable for easy debugging.
- Efficient Rendering: Utilizes a single read-only text widget for logs to prevent UI lockups.
- Memory Management: O(1) memory complexity log tracking with bounded string length.
- Backpressure Handling: Non-blocking channel pushes (
try_send) prevent I/O deadlocks during heavy load.
- TLS 1.2 / 1.3 Support: Secure connections using
rustls. - Flexible SSL: "Use SSL" toggle for secure vs plain TCP connections.
- Dev-Friendly: Includes a "Dangerous Verifier" mode to skip certificate validation (great for local testing/self-signed certs).
- Graceful Disconnect: Dedicated Unbind support for clean session termination.
- Powered by:
smpp-codec(Comprehensive PDU library) - Encoding Support:
- GSM 7-bit: Standard SMS encoding (basic + extended charset).
- Latin-1 (8-bit): For binary or Western European languages.
- UCS-2 (16-bit): Full support for Emoji and international scripts.
- Long Message Handling:
- UDH (User Data Header): Standard concatenation.
- SAR (Segmentation and Reassembly): Optional TLV-based splitting.
- Message Payload: Send up to 64kb as a single payload TLV.
- Ancillary Operations:
- Query SM: Check the status of submitted messages.
- Cancel SM: Cancel pending messages.
- Replace SM: Update the content of pending messages.
- SubmitMulti: Automatically detects multiple recipients and uses
submit_multiPDU.
- Delivery Receipts (DLR): Request and view detailed Delivery Reports.
- Live Transaction Log: Real-time view of all sent and received PDUs.
- Detailed DeliverSM: Logs Sender, Recipient, Message Content, and specific DLR status/IDs.
- PDU Inspection: Hex dumps and detailed error reporting for debugging.
- Rust Toolchain (cargo) installed.
cargo run --releasePlease refer to COMPILING_ON_LINUX.md for platform-specific dependencies and build instructions.
- Server Config: Enter Host IP and Port (default 2775).
- Credentials: Enter System ID and Password.
- Bind Mode: Choose Transceiver (Send/Recv), Information Receiver, or Transmitter.
- SSL: Check "Use SSL" for secure connections.
- Connect: Click to bind to the server.
- Language: Rust 🦀
- UI Framework: Slint
- Async Runtime: Tokio
- TLS: tokio-rustls / rustls
- Protocol: smpp-codec
Apache 2.0
This project was co-developed with Google Gemini, an advanced AI assistant, which generated the majority of the code, UI design, and documentation based on user requirements and prompts.