sctp-proto

Crates.iosctp-proto
lib.rssctp-proto
version0.7.0
created_at2021-11-26 17:36:29.437336+00
updated_at2026-01-20 11:43:13.98771+00
descriptionA pure Rust implementation of SCTP in Sans-IO style
homepagehttps://github.com/algesten/sctp-proto
repositoryhttps://github.com/algesten/sctp-proto
max_upload_size
id488101
size559,004
Martin Algesten (algesten)

documentation

https://docs.rs/sctp-proto

README

sctp-proto

Low-level protocol logic for the SCTP protocol

sctp-proto contains a fully deterministic implementation of SCTP protocol logic. It contains no networking code and does not get any relevant timestamps from the operating system. Most users may want to use the futures-based sctp-async API instead.

The main entry point is Endpoint, which manages associations for a single socket. Use Endpoint::connect to initiate outgoing associations, or provide a ServerConfig to accept incoming ones. Incoming UDP datagrams are fed to Endpoint::handle, which either creates a new Association or returns an event to pass to an existing one.

Association holds the protocol state for a single SCTP association. It produces Events and outgoing packets via polling methods (Association::poll, Association::poll_transmit). Each association contains multiple Streams for reading and writing data.

Status

This crate is maintained by the str0m project, which has been using it since January 2023. Other consumers include ex_sctp for Elixir WebRTC. The crate is kept in sync with rtc-sctp where possible to share bug fixes.

Originally written by Rain Liu as a Sans-IO implementation of SCTP for the webrtc-rs ecosystem, this crate predates rtc-sctp in the webrtc-rs/rtc monorepo, which was later derived from this work. Maintenance was transferred to the str0m maintainers in January 2026.

License: MIT/Apache-2.0

Commit count: 305

cargo fmt