12个版本

0.3.1 2023年11月8日
0.3.0 2023年6月19日
0.2.5 2023年1月20日
0.1.3 2023年1月2日
0.0.1 2022年10月18日

#1021网络编程

Download history 177/week @ 2024-03-09 29/week @ 2024-03-16 3/week @ 2024-03-23 16/week @ 2024-03-30 14/week @ 2024-04-20 2/week @ 2024-04-27 19/week @ 2024-05-11 12/week @ 2024-05-18 54/week @ 2024-05-25 124/week @ 2024-06-01 115/week @ 2024-06-08 44/week @ 2024-06-15 13/week @ 2024-06-22

每月303 次下载

Apache-2.0 OR MIT

84KB
1.5K SLoC

简介

初始重点是实现RFC 6458中定义的Sockets扩展API,该API易于使用,并且应该与Rust中的任何async工具包一起工作。当前实现针对基于Linux的系统。这些API不是lksctp的包装,而是提供了所有使用Rust类型(如enumVec等)的API。最终,应该能够将SCTP作为Rust的async生态系统中的第一公民。

特别是,这个实现利用了Linux内核中的SCTP栈,与像webrtc-sctp这样的其他方法不同,后者试图在用户空间中构建整个SCTP栈,主要针对在DTLS套接字上运行SCTP

有关当前功能支持的兼容性,请参阅兼容性

兼容性

async运行时支持。

SCTP功能支持

本节记录了根据RFC 6458的当前对SCTP功能的支持。特别是,该RFC中标记为已弃用的功能未实现。由于RFC中定义的Sockets扩展API基于C编程语言,实现中没有一对一的映射,请参阅注释以获取更多信息。

章节 兼容性 注释
3.1.1
3.1.2
3.1.3
3.1.4 参见注释1。
3.1.5 参见注释2。
3.1.6
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6 参见注释2。
4.1.7
4.1.8 参见注释1。
4.1.9
5.3.1
5.3.2 不适用
5.3.3 不适用
5.3.4
5.3.5
5.3.6 参见注释2。
5.3.7
5.3.8 参见注释1。
5.3.9
5.3.10
6.1.1
6.1.2
6.1.3
6.1.4 不适用
6.1.5
6.1.6 参见注释2。
6.1.7
6.1.8 参见注释1。
6.1.9
6.1.10
6.1.11
6.2.1 不适用
6.2.2
8.1.1
8.1.2
8.1.3
8.1.4
8.1.5
8.1.6
8.1.7
8.1.8
8.1.9
8.1.10
8.1.11
8.1.12
8.1.13 不适用
8.1.14 不适用
8.1.15
8.1.16
8.1.17
8.1.18
8.1.19
8.1.20
8.1.21
8.1.22 不适用
8.1.23
8.1.24
8.1.25
8.1.26
8.1.27
8.1.28
8.1.29
8.1.30
8.1.31
8.1.32
8.2.1
8.2.2
8.2.3
8.2.4
8.2.5
8.2.6
8.3.1
8.3.2
8.3.3
8.3.4
8.3.5
9.1
9.2
9.3
9.4
9.5
9.6
9.7 不适用
9.8 不适用
9.9 参见注释3。
9.10 不适用
9.11 不适用
9.12
9.13

注释

  1. 套接字的drop实现会关闭套接字,因此不支持显式的close调用。
  2. 所有发送和接收函数都作为两个API sctp_sendsctp_recv 提供,因此没有为类似C的系统调用实现单独的实现。
  3. 此API不需要在Rust中实现。

许可证

许可协议如下之一

依赖项

~3–15MB
~128K SLoC