smpp
SMPP 3.4 and 5.0 for asynchronous Rust, from a typed wire codec up to a Tokio client. Strong typing and validation enforce the specification, so malformed PDUs are caught before they reach the wire.
Availability
Use smpp from source as a Git dependency. The crate with the same name on crates.io is an unrelated project.
Details
The codec covers all 26 SMPP 3.4 PDU types plus the 5.0 broadcast operations, with TLV optional parameters, GSM 7-bit, UCS-2 and Latin-1 encodings and typed enumerations. Each PDU encodes and decodes itself rather than passing through one monolithic frame parser. Headers, lengths, sequence numbers and status codes are validated, and PDUs are capped at 64 KiB.
The Tokio client handles bind and unbind for the transmitter,
receiver and transceiver roles, negotiates the protocol version from
the server's capabilities, tracks enquire_link
keep-alives, emits structured tracing and applies congestion-aware
rate limiting. A simplified SmsMessage API sits alongside
full SubmitSm control.
The README declares the project MIT licensed, but the licence file it references isn't in the repository yet.