Skip to main content

Crate wireguard_conf

Crate wireguard_conf 

Source
Expand description

Easy to use Wireguard config generator.

§Features

  • amneziawg: adds support for generating and manually building amnezia settings via AmneziaWG enum.

    AmneziaWG is a fork of wireguard, that less recognizable by DPI systems by randomizing packet headers with packet sizes.

  • serde: adds implementions of serde::Serialize and serde::Deserialize for all structs.

§Example

use wireguard_conf::prelude::*;
use wireguard_conf::as_ipnet;

let peer = Peer::builder()
    .allowed_ips([as_ipnet!("10.0.0.2/24")])
    .build();

let interface = Interface::builder()
    .address([as_ipnet!("10.0.0.1/24")])
    .peers([peer.clone()])
    .build();

// to export configs, use `println!()`, `writeln!()`, `.to_string()`, etc.

println!("Server's config:");
println!("{}\n", interface);

println!("Client's config:");
println!("{}", peer.to_interface(&interface, ToInterfaceOptions::new()).unwrap());

Re-exports§

pub use ipnet;

Modules§

prelude
Re-exports of common structs.

Macros§

as_ipaddr
Get expression as std::net::IpAddr
as_ipnet
Get expression as ipnet::IpNet

Structs§

AmneziaWG1amneziawg
AmneziaWG 1.0 obfuscation values.
AmneziaWG2amneziawg
AmneziaWG 2.0 obfuscation values.
AmneziaWG2Builderamneziawg
Builder for AmneziaWG2.
HRangeamneziawg
Inclusive range of H values used by AmneziaWG 2.0.
Interface
Struct, that represents complete configuration (contains both [Interface] and [Peer] sections).
InterfaceBuilder
Builder for Interface.
Peer
Struct, that represents [Peer] section in configuration.
PeerBuilder
Builder for Peer.
PresharedKey
Preshared key.
PrivateKey
Private key
PublicKey
Public key.
ToInterfaceOptions
Options for Peer::to_interface().

Enums§

AmneziaWGamneziawg
AmneziaWG obfuscation values. By using this enum, you can parse, generate and validate for all AmneziaWG versions.
Table
Controls the routing table to which routes are added.
WireguardError
wireguard-conf error.

Type Aliases§

WireguardResult
Result alias.