Crate wireguard_conf

Source
Expand description

Easy to use Wireguard config generator.

§Features

  • amneziawg: Adds AmneziaWG obfuscation values support.

§Example

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

use ipnet::Ipv4Net;

let peer = PeerBuilder::new()
    .add_allowed_ip(as_ipnet!("10.0.0.2/24"))
    .build();

let interface = InterfaceBuilder::new()
    .address(as_ipnet!("10.0.0.1/24"))
    .add_peer(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).unwrap());

Modules§

prelude

Macros§

as_ipnet
Get expression as ipnet::Ipv4Net

Structs§

AmneziaSettingsamneziawg
AmneziaWG obfuscation values.
Interface
Struct, that represents complete configuration (contains both [Interface] and [Peer] sections).
InterfaceBuilder
Builder, that used for creating Interfaces.
Peer
Struct, that represents [Peer] section in configuration.
PeerBuilder
Builder, that used for creating Peers.
PrivateKey
Private key
PublicKey
Public key.

Enums§

Table
Controls the routing table to which routes are added.
WireguardError

Type Aliases§

WireguardResult