3个版本 (重大更新)

0.2.0 2024年7月14日
0.1.0 2024年6月26日
0.0.1 2024年6月16日

#1206网络编程

Download history 150/week @ 2024-06-12 32/week @ 2024-06-19 178/week @ 2024-06-26 32/week @ 2024-07-03 150/week @ 2024-07-10 12/week @ 2024-07-17 36/week @ 2024-07-24 12/week @ 2024-07-31 17/week @ 2024-08-07

每月81次下载
用于 2 crate

MIT/Apache

280KB
5.5K SLoC

Build status codecov Dependencies crates.io docs.rs

stun-proto

包含使用Rust编程语言编写的STUN (RFC5389/RFC8489) 协议sans-IO实现的仓库。

为什么是sans-IO?

有几个原因:可重用性和可测试性。

不陷入IO发生的细节,相同的sans-IO实现可以在不指定应用程序必须遵循的IO模式的情况下使用。相反,应用程序(或父库)在字节在端点之间传输方面有更多的自由。还可以在同步或异步运行时中使用sans-IO库。

sans-IO还允许轻松测试sans-IO实现可能遇到的所有特定状态。结合全面的测试套件,这可以保证实现在所有情况下都按预期行为。

有关sans-IO实现的其他示例,请参阅

相关标准

  • RFC5245:交互式连接建立(ICE):用于Offer/Answer协议的NAT穿越协议
  • RFC5389:会话穿越NAT(STUN)
  • RFC5766:使用NAT穿越(TURN):STUN的会话穿越实用程序扩展
  • RFC5769:会话穿越NAT(STUN)的测试向量
  • RFC6156:使用NAT穿越(TURN)的IPv6扩展
  • RFC8445:交互式连接建立(ICE):用于NAT穿越的协议
  • RFC8489:会话穿越NAT(STUN)
  • RFC8656:使用NAT穿越(TURN)的 Relay 扩展到会话穿越NAT(STUN)

依赖项

~1.5–2.2MB
~43K SLoC