#packet #networking #packet-parser #generate

nex-macro

用于生成 nex-packet 所使用的包结构的宏。不建议直接使用。

10 个重大版本

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

#66#packet-parser

Download history 22/week @ 2024-04-29 5/week @ 2024-05-06 193/week @ 2024-05-13 102/week @ 2024-05-20 288/week @ 2024-05-27 344/week @ 2024-06-03 259/week @ 2024-06-10 71/week @ 2024-06-17 66/week @ 2024-06-24 123/week @ 2024-07-01 208/week @ 2024-07-08 156/week @ 2024-07-15 133/week @ 2024-07-22 84/week @ 2024-07-29 55/week @ 2024-08-05 18/week @ 2024-08-12

308 每月下载量
10 个crate中使用(通过 nex-packet

MIT 许可证

97KB
2.5K 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 依赖的项目做出贡献和维护者,你们的无价工作和支持。

依赖项

~2.4–4MB
~71K SLoC