9次重大发布

0.18.0 2024年7月7日
0.14.0 2024年6月9日
0.7.0 2024年2月25日

#1539 in 网络编程

Download history 1288/week @ 2024-04-29 1203/week @ 2024-05-06 180/week @ 2024-05-13 70/week @ 2024-05-20 266/week @ 2024-05-27 322/week @ 2024-06-03 255/week @ 2024-06-10 37/week @ 2024-06-17 48/week @ 2024-06-24 112/week @ 2024-07-01 106/week @ 2024-07-08 73/week @ 2024-07-15 62/week @ 2024-07-22 68/week @ 2024-07-29 7/week @ 2024-08-12

150 每月下载次数
用于 5 crate

MIT 许可证

495KB
11K SLoC

nex

Rust跨平台低级网络库

Crates.io Documentation License

概述

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

  1. 安装Npcap,确保在安装过程中选中“在WinPcap API兼容模式下安装Npcap”。

  2. 下载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所依赖的项目做出贡献和维护者,感谢你们的宝贵工作和支持。

依赖项

~6–18MB
~263K SLoC