10个重大版本
0.18.0 | 2024年7月7日 |
---|---|
0.14.0 | 2024年6月9日 |
0.7.0 | 2024年2月25日 |
#2019 在 网络编程
每月下载量 370
在 6 个库中使用 (通过 nex)
310KB
7K SLoC
nex
跨平台底层网络库
概述
nex
是一个Rust库,提供了跨平台的底层网络功能。
它包含一组模块,每个模块都有特定的焦点
datalink
:数据链路层网络。packet
:低级数据包解析和构建。packet-builder
:高级数据包构建。socket
:套接字相关功能。
即将推出的功能
该项目计划通过以下功能增强nex
- 更多协议支持:扩展协议支持以包括更多网络协议和标准。
- 性能改进:持续致力于性能改进以实现更快的网络操作。
使用方法
要使用 nex
,请将其作为依赖项添加到您的 Cargo.toml
[dependencies]
nex = "0.18"
使用特定子库
您也可以通过单独导入来直接使用特定子库。
nex-datalink
nex-packet
nex-packet-builder
nex-socket
如果您想专注于网络接口,可以使用 netdev。
权限
nex-datalink
使用原始套接字,这可能会根据您的系统配置需要提升权限。
如有必要,请以管理员权限执行。
针对Windows用户
请注意,为了在Windows上使用 nex-datalink
发送和接收原始数据包,需要 Npcap。
-
安装Npcap,确保在安装过程中选择“在WinPcap API兼容模式下安装Npcap”。
-
下载Npcap SDK。将SDK的 /Lib/x64 (或 /Lib) 文件夹添加到您的LIB环境变量中。
针对macOS用户
在macOS上,使用nex-datalink
发送和接收原始数据包时,管理对伯克利数据包过滤器(BPF)设备的使用是必要的。您可以使用chmod-bpf自动管理BPF设备的权限。当然,您也可以使用sudo
临时授予必要的权限。
可选功能的构建时间要求
nex-socket
的可选tls-aws-lc
功能使用的加密提供者是aws-lc-rs
。请注意,这将对构建时间工具要求产生一些影响,例如,所有平台都需要cmake,Windows上需要nasm。
您可以通过指定tls
功能,使用ring
作为加密提供者(无需额外的依赖项)。
致谢
这个库受到了pnet
的极大启发,它推动了我进入Rust开发之旅。
我感谢所有参与pnet
的人,他们的先驱努力和对Rust网络的重要贡献。
此外,感谢所有为nex
所依赖的项目做出贡献和维护者,你们的无价工作和支持。
依赖关系
~3–12MB
~121K SLoC