# WireTun
[](https://github.com/lodrem/wiretun)
[](https://crates.io/crates/wiretun)
[](https://docs.rs/wiretun)
[](https://github.com/lodrem/wiretun/actions?query%3Amaster)
[](https://deps.rs/repo/github/lodrem/wiretun)
This library provides a cross-platform, asynchronous (with [Tokio](https://tokio.rs/)) [WireGuard](https://www.wireguard.com/) implementation.
**WARNING**: This library is still in early development and is not ready for production use.
```toml
[dependencies]
wiretun = { version = "*", features = ["uapi"] }
```
## Example
```rust
use wiretun::{Cidr, Device, DeviceConfig, PeerConfig, uapi};
#[tokio::main]
async fn main() -> Result<(), Box> {
let cfg = DeviceConfig::default()
.listen_port(40001);
let device = Device::native("utun88", cfg).await?;
uapi::bind_and_handle(device.control()).await?;
Ok(())
}
```
More examples can be found in the [examples](examples) directory.
## Minimum supported Rust version (MSRV)
1.66.1
## License
This project is licensed under the [Apache 2.0 license](LICENSE).