#跨平台 #套接字 #网络 #底层 #数据包 #数据链路

nex-socket

跨平台套接字库。nex项目的一部分。提供与套接字相关的功能。

10个重大版本发布

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

#2127 in 网络编程

Download history 21/week @ 2024-04-15 135/week @ 2024-04-22 22/week @ 2024-04-29 5/week @ 2024-05-06 176/week @ 2024-05-13 92/week @ 2024-05-20 257/week @ 2024-05-27 321/week @ 2024-06-03 228/week @ 2024-06-10 41/week @ 2024-06-17 46/week @ 2024-06-24 113/week @ 2024-07-01 97/week @ 2024-07-08 75/week @ 2024-07-15 62/week @ 2024-07-22 20/week @ 2024-07-29

每月353次下载
6个包(3个直接)中使用

MIT许可证

360KB
8K SLoC

nex

Rust的跨平台底层网络库

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上,管理对伯克利数据包过滤器(BPF)设备的访问对于使用nex-datalink发送和接收原始数据包是必要的。您可以使用chmod-bpf自动管理BPF设备的权限。当然,您也可以使用sudo临时授予必要的权限。

可选功能的构建时间要求

nex-socket的可选tls-aws-lc功能使用aws-lc-rs作为加密库。请注意,这将对构建时间工具要求产生一些影响,例如,需要在所有平台上安装cmake,在Windows上安装nasm。
您可以通过指定tls功能,使用ring作为加密库(无需额外的依赖项)。

致谢

这个库受到了pnet的极大启发,它催化了我的Rust开发之旅。
我非常感谢所有参与pnet的人,他们的开拓性努力和对Rust网络的重要贡献。

此外,感谢所有为nex所依赖的项目做出贡献的贡献者和维护者,感谢你们宝贵的努力和支持。

依赖项

~6–26MB
~490K SLoC