Crates.io | sctp-rs |
lib.rs | sctp-rs |
version | 0.3.1 |
source | src |
created_at | 2022-10-18 06:51:10.591529 |
updated_at | 2023-11-08 04:53:14.884393 |
description | Idiomatic Rust APIs for Linux SCTP Stack. |
homepage | |
repository | https://github.com/gabhijit/ellora.git |
max_upload_size | |
id | 690682 |
size | 136,676 |
Initial focus is on implementation of the Sockets Extension API as defined in RFC 6458 that is ergonomic and that should work with any async
toolkit in Rust. Current implementation is targeted for Linux based systems. These APIs are not a wrapper over lksctp
, but instead provide all the APIs that make use of Rust's types like enum
, Vec
etc. Eventually it should be possible to have SCTP
as a first class citizen in the Rust's async
ecosystem.
In particular this implementation utilizes the SCTP
stack in the Linux kernel, unlike other approaches like webrtc-sctp which is trying to build entire SCTP
stack in the user-space and is primarily targeted for running SCTP
over DTLS
sockets.
Please see compatibility for current feature support.
async
Runtime Supported.async
runtime.This section captures the current support for SCTP
features with RFC 6458 as a reference. In particular, features marked as DEPRECATED
in the said RFC are not implemented. Since the Sockets Extension API defined in the RFC describes an API based on C programming language, there is not one to one mapping in the implementation, see notes for further details.
Section | Compatibility | Notes |
---|---|---|
3.1.1 | yes | |
3.1.2 | yes | |
3.1.3 | yes | |
3.1.4 | yes | See Note 1. |
3.1.5 | yes | See Note 2. |
3.1.6 | yes | |
4.1.1 | yes | |
4.1.2 | yes | |
4.1.3 | yes | |
4.1.4 | yes | |
4.1.5 | yes | |
4.1.6 | yes | See Note 2. |
4.1.7 | yes | |
4.1.8 | yes | See Note 1. |
4.1.9 | yes | |
5.3.1 | yes | |
5.3.2 | N/A | |
5.3.3 | N/A | |
5.3.4 | yes | |
5.3.5 | yes | |
5.3.6 | yes | See Note 2. |
5.3.7 | no | |
5.3.8 | no | See Note 1. |
5.3.9 | no | |
5.3.10 | no | |
6.1.1 | yes | |
6.1.2 | no | |
6.1.3 | no | |
6.1.4 | N/A | |
6.1.5 | yes | |
6.1.6 | no | See Note 2. |
6.1.7 | no | |
6.1.8 | no | See Note 1. |
6.1.9 | no | |
6.1.10 | no | |
6.1.11 | no | |
6.2.1 | N/A | |
6.2.2 | yes | |
8.1.1 | no | |
8.1.2 | no | |
8.1.3 | no | |
8.1.4 | no | |
8.1.5 | no | |
8.1.6 | no | |
8.1.7 | no | |
8.1.8 | no | |
8.1.9 | no | |
8.1.10 | no | |
8.1.11 | no | |
8.1.12 | no | |
8.1.13 | N/A | |
8.1.14 | N/A | |
8.1.15 | no | |
8.1.16 | no | |
8.1.17 | no | |
8.1.18 | no | |
8.1.19 | no | |
8.1.20 | no | |
8.1.21 | no | |
8.1.22 | N/A | |
8.1.23 | no | |
8.1.24 | no | |
8.1.25 | no | |
8.1.26 | no | |
8.1.27 | no | |
8.1.28 | no | |
8.1.29 | no | |
8.1.30 | no | |
8.1.31 | yes | |
8.1.32 | no | |
8.2.1 | yes | |
8.2.2 | no | |
8.2.3 | no | |
8.2.4 | no | |
8.2.5 | no | |
8.2.6 | no | |
8.3.1 | no | |
8.3.2 | no | |
8.3.3 | no | |
8.3.4 | no | |
8.3.5 | no | |
9.1 | no | |
9.2 | no | |
9.3 | no | |
9.4 | no | |
9.5 | no | |
9.6 | no | |
9.7 | N/A | |
9.8 | N/A | |
9.9 | no | See Note 3. |
9.10 | N/A | |
9.11 | N/A | |
9.12 | no | |
9.13 | no |
Notes:
drop
implementation on the socket 'close'es the socket, hence no explicit close
call supported.sctp_send
and sctp_recv
, hence no separate implementation for the C like system calls.Licensed under either of