#sockets #udp-socket #web-rtc #transpiled #wasm #version #e-net

无std rusty_enet

C语言编写的ENet为Rust(和wasm!)移植

5个不稳定版本

0.3.2 2024年8月16日
0.3.1 2024年8月13日
0.3.0 2024年8月13日
0.2.0 2024年5月18日
0.1.0 2024年5月14日

#1272 in 网络编程

Download history 276/week @ 2024-05-12 64/week @ 2024-05-19 3/week @ 2024-05-26 1/week @ 2024-06-30 7/week @ 2024-07-07 20/week @ 2024-07-28 373/week @ 2024-08-11

每月下载量:393

MIT许可证

420KB
8K SLoC

rusty_enet

ENet移植到Rust,并使底层套接字无关。默认支持std::net::UdpSocket。如果你提供自己的WebRTC接口或类似接口,它也可以在WASM中工作。

[dependencies]
rusty_enet = "0.3"

ENet版本

rusty_enet ENet 提交
0.3 1.3.18 (enet/2662c0d)
0.2 1.3.18 (enet/2662c0d)
0.1 1.3.17* (enet/2a85cd6)

*表示非精确版本(见提交)

为什么?

来自ENet网站

ENet的目的是在UDP(用户数据报协议)之上提供相对轻薄、简单和健壮的网络通信层。它提供的主要功能是可选的可靠、顺序的包交付。

ENet省略了某些高级网络功能,如认证、协商、服务器发现、加密或其他特定于应用程序的任务,以便库保持灵活性、可移植性和易于嵌入。

此Rust端口允许使用ENet进行UDP套接字以外的操作。最值得注意的是,在WASM环境中。

项目状态

整个API都已封装在安全的Rust绑定中,我在自己的项目中进行了彻底的测试。尽管semver版本较低,但该项目离“准备投入使用”还相去甚远。

在C -> Rust移植和清理过程中可能引入了一些错误,但我一直努力将原始代码的更改保持最小,并对必要的更改进行了双重检查。

依赖关系

~0–270KB