wireguard-conf 0.2.0

Construct Wireguard's interface and peer configs
Documentation
# Wireguard Conf

Easy to use library for creating wireguard configs.

## Installation

Install `wireguard-conf` and `ipnet` (for parsing ip networks)

```shell
cargo add wireguard-conf ipnet
```

### Usage

More usage examples in [tests](tests/) and on [docs.rs](https://docs.rs/wireguard-conf)

```rust
use wireguard_conf::prelude::*;
use wireguard_conf::as_ipnet;

use ipnet::Ipv4Net;

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

// create interface with that peer:
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());
```

### Features

- `amneziawg`: adds support for generating/using [AmneziaWG]https://docs.amnezia.org/documentation/amnezia-wg/ obfuscation values.