#packet-parser #packet #networking #low-level #cross-platform #data-link #building

nex-packet

跨平台数据包解析和构建库。提供低级别数据包处理。nex项目的一部分。

10个重大版本发布

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

#1907 in 网络编程

Download history 21/week @ 2024-04-14 123/week @ 2024-04-21 49/week @ 2024-04-28 6/week @ 2024-05-05 1/week @ 2024-05-12 286/week @ 2024-05-19 271/week @ 2024-05-26 187/week @ 2024-06-02 402/week @ 2024-06-09 75/week @ 2024-06-16 68/week @ 2024-06-23 44/week @ 2024-06-30 293/week @ 2024-07-07 154/week @ 2024-07-14 146/week @ 2024-07-21 82/week @ 2024-07-28

每月695次下载
用于 9 个crates(4个直接使用)

MIT 协议

300KB
6K SLoC

nex

Rust跨平台低级网络库

Crates.io Documentation License

概述

nex 是一个Rust库,提供跨平台的低级网络功能。
它包含一系列模块,每个模块都有特定的关注点

  • datalink:数据链路层网络。
  • packet:低级数据包解析和构建。
  • packet-builder:高级数据包构建。
  • socket:套接字相关功能。

即将推出的功能

该项目计划通过以下功能增强nex

  • 更多协议支持:扩展协议支持以包括更多网络协议和标准。
  • 性能改进:持续改进性能,以实现更快的网络操作。

使用方法

要使用 nex,请将其添加到您的 Cargo.toml 中的依赖项。

[dependencies]
nex = "0.18"

使用特定子crates

您还可以通过单独导入它们来直接使用特定子crates。

  • 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所依赖的项目做出贡献和维护的人,你们的宝贵工作和支持。

依赖关系

~3–12MB
~121K SLoC