Crate wireguard_conf

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
Re-exports of common structs.

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
wireguard-conf error.

Type Aliases§

WireguardResult
Result alias.