12 次重大版本发布
0.18.0 | 2024 年 7 月 7 日 |
---|---|
0.16.0 | 2024 年 7 月 7 日 |
0.7.0 | 2024 年 2 月 25 日 |
#10 在 #data-link
每月 221 次下载
在 7 个 crate 中使用 (通过 nex-datalink)
13KB
247 代码行
nex
Rust 的跨平台低级网络库
概述
nex
是一个 Rust 库,提供跨平台的低级网络功能。
它包含一系列模块,每个模块都有特定的关注点
datalink
: 数据链路层网络。packet
: 低级数据包解析和构建。packet-builder
: 高级数据包构建。socket
: 与套接字相关的功能。
即将推出的功能
该项目计划通过以下功能增强 nex
- 更多协议支持:扩展协议支持以包括额外的网络协议和标准。
- 性能改进:持续改进性能,以实现更快的网络操作。
使用方法
要使用 nex
,请在您的 Cargo.toml
中将其作为依赖项添加
[dependencies]
nex = "0.18"
使用特定子 crate
您也可以通过单独导入它们来直接使用特定的子 crate。
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
依赖的项目做出贡献和维护的人,你们的宝贵工作和支持是无价的。
依赖项
~0–8MB
~58K SLoC