FFI bindings for the smpp-codec crate, powered by UniFFI.
This crate provides high-performance, safe, and easy-to-use bindings to the smpp-codec library for multiple programming languages.
Warning
Disclaimer: Portions of this codebase were generated by Artificial Intelligence. While efforts have been made to ensure correctness, users should review and test the code thoroughly before using it in production environments.
- Multi-language Support: Seamless integration for Python, Kotlin, and Swift.
- Full SMPP PDU Coverage: Support for all standard SMPP PDUs (Bind, Submit, Deliver, Data, Broadcast, etc.).
- Message Splitting: Built-in support for splitting long messages into concatenated SMS (UDH/SAR).
- TLV Support: Easy handling of Optional Parameters (Tags).
- Memory Safe: Leverages Rust's memory safety guarantees across the FFI boundary.
- Python (via Maturin)
- Java/Kotlin (via UniFFI/JNA)
- Swift (via UniFFI)
Generated bindings and shared libraries are available in the GitHub Actions artifacts.
Comprehensive multi-threaded examples for each language can be found in the examples directory:
- Python Examples - includes
tool_clientandtool_server. - Java Examples - multi-threaded implementations of client and server.
- Kotlin Examples - includes standard usage examples.
- Swift Examples - multi-threaded implementations using modern Swift concurrency.
The API documentation is strictly compliant with RFC 1574.
This project is licensed under the Apache 2.0.