Cross-platform networking library in Rust
nex
is a Rust library that provides cross-platform low-level networking capabilities.
It includes a set of modules, each with a specific focus:
datalink
: Datalink layer networking.packet
: Low-level packet parsing and building.packet-builder
: High-level packet building.socket
: Socket-related functionality.
The project has plans to enhance nex with the following features:
- More Protocol Support: Expanding protocol support to include additional network protocols and standards.
- Performance Improvements: Continuously working on performance enhancements for faster network operations.
To use nex
, add it as a dependency in your Cargo.toml
:
[dependencies]
nex = "0.14"
You can also directly use specific sub-crates by importing them individually.
nex-datalink
nex-packet
nex-packet-builder
nex-socket
If you want to focus on network interfaces, you can use the netdev.
Please note that in order to send and receive raw packets using nex-datalink
on Windows, npcap
is required.
-
Install Npcap, making sure to check Install Npcap in WinPcap API-compatible Mode during the installation.
-
Download the Npcap SDK. Add the SDK's /Lib/x64 (or /Lib) folder to your LIB environment variable.
To simplify the process of downloading and installing npcap
, you can use nex-npcap-helper
. This crate facilitates the download and installation process, which can be helpful when distributing applications that utilize nex-datalink
on Windows.
The cryptography provider for nex-socket
's optional tls-aws-lc
feature use aws-lc-rs
. Note that this has some implications on build-time tool requirements, such as requiring cmake on all platforms and nasm on Windows.
You can use ring
as the cryptography provider (without additional dependencies) by specifying the tls
feature.