#packet #networking #building #cross-platform #high-level #nex #nex-packet

nex-packet-builder

在nex-packet之上提供高级数据包构建。nex项目的一部分。

10个重大版本

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

#2019网络编程

Download history 23/week @ 2024-04-13 16/week @ 2024-04-20 149/week @ 2024-04-27 7/week @ 2024-05-04 1/week @ 2024-05-11 258/week @ 2024-05-18 237/week @ 2024-05-25 156/week @ 2024-06-01 384/week @ 2024-06-08 67/week @ 2024-06-15 60/week @ 2024-06-22 19/week @ 2024-06-29 186/week @ 2024-07-06 83/week @ 2024-07-13 71/week @ 2024-07-20 28/week @ 2024-07-27

每月下载量 370
6 个库中使用 (通过 nex)

MIT 许可

310KB
7K SLoC

nex

跨平台底层网络库

Crates.io Documentation License

概述

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

  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