Skip to content

SCTP in Rust with Sans-IO

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

algesten/sctp-proto

Repository files navigation

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

About

SCTP in Rust with Sans-IO

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 7

Languages