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 · Rust 包仓库 177/week @ 2024-03-09 · Rust 包仓库 29/week @ 2024-03-16 · Rust 包仓库 3/week @ 2024-03-23 · Rust 包仓库 16/week @ 2024-03-30 · Rust 包仓库 14/week @ 2024-04-20 · Rust 包仓库 2/week @ 2024-04-27 · Rust 包仓库 19/week @ 2024-05-11 · Rust 包仓库 12/week @ 2024-05-18 · Rust 包仓库 54/week @ 2024-05-25 · Rust 包仓库 124/week @ 2024-06-01 · Rust 包仓库 115/week @ 2024-06-08 · Rust 包仓库 44/week @ 2024-06-15 · Rust 包仓库 13/week @ 2024-06-22 · Rust 包仓库

每月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