nulldotblack/wireguard-nt

Rust bindings to the high performanance windows wireguard nt kernel library: library:

wireguard-nt

Safe rust idiomatic bindings for the WireGuard NT C library: <#404>

Features of the WireGuard NT library are wrapped using pure rust types and functions to make usage feel ergonomic.

Usage

Add a dependency on this library to your Cargo.toml

Inside your code load the wireguard.dll signed driver file, downloaded from <#404>

Then either call [Adapter::create] or [Adapter::open] to obtain a wireguard adapter. Start by setting its config with [Adapter::set_config].

Example

See examples/demo_server.rs that connects to the wireguard demo server

Version compatibility

Wireguard NT versions 0.10 and above are supported. Versions < 0.10 have breaking changes that make interoperability hard. Please file an issue if this effects your use case.

License: MIT

Versions

Find the latest versions by id

v0.3.0 - Nov 23, 2021

Added

  • get_config in Adapter to obtain the config from an active WireguardNT interface #6
  • set_default_route in Adapter now takes a slice of IpNet addresses to support multiple addresses as well as hybrid Ipv6/Ipv4 configuration #7
  • Added loop that uses get_config to print network traffic stats in demo_server.

Breaking Changes

  • set_default_route Takes a immutable slice of IpNet's instead of a single Ipv4Net #7
  • Names of fields inside adapter::WireguardInterface and adapter::WireguardPeer are changed to be snake case
  • adapter::WireguardPeer::last_handshake is now an instant to simplify use case

v0.2.2 - Nov 15, 2021

Add missing winapi features to fix compilation error when being used as a crate

v0.2.1 - Nov 05, 2021

Updated documentation

v0.2.0 - Nov 05, 2021

Add support for Wireguard NT 0.10 and custom routing

Information - Updated Dec 05, 2021

Stars: 4
Forks: 1
Issues: 0

Rust library for Self Organising Maps (SOM)

Add rusticsom as a dependency in Cargo

Rust library for Self Organising Maps (SOM)

Rust library for parsing configuration files

The 'option' can be any string with no whitespace

Rust library for parsing configuration files

Rust library for the Pimoroni Four Letter pHAT

This library aims to port ht16k33 (or rather a fork, as of right now) so credit goes to ht16k33-diet

Rust library for the Pimoroni Four Letter pHAT

Rust library for emulating 32-bit RISC-V

This library can execute instructions against any memory and register file that implements

Rust library for emulating 32-bit RISC-V

Rust library for connecting to the IPFS HTTP API using Hyper/Actix

You can use actix-web as a backend instead of hyper

Rust library for connecting to the IPFS HTTP API using Hyper/Actix

Rust library to manipulate file system access control lists (ACL) on macOS, Linux, and FreeBSD

This module provides two high level functions, getfacl and setfacl

Rust library to manipulate file system access control lists (ACL) on macOS, Linux, and FreeBSD

Rust library translation (rust-src/rust-std/stdlib/rustlib translation)

This is the place to translate Having a documentation in your native language is essential if you don't speak English, and still enjoyable even if...

Rust library translation (rust-src/rust-std/stdlib/rustlib translation)

Rust library for using Infrared hardware decoders (For example a Vishay TSOP* decoder),

enabling remote control support for embedded project

Rust library for using Infrared hardware decoders (For example a Vishay TSOP* decoder),

Rust library for interaction with the OriginTrail Decentralized Knowledge Graph

open up an issue on this repository and let us know

Rust library for interaction with the OriginTrail Decentralized Knowledge Graph

Rust library for parsing COLLADA files

Notice: This library is built around files exported from Blender 2

Rust library for parsing COLLADA files

Rust library for low-level abstraction of MIPS32 processors

This project is licensed under the terms of the MIT license

Rust library for low-level abstraction of MIPS32 processors
Facebook Instagram Twitter GitHub Dribbble
Privacy