#wireguard #interface #control #userspace #server #manage #kernel

wirectl

Library to control Wireguard with kernel or userspace implementation

1 unstable release

0.1.0 Jul 19, 2021

#39 in #wireguard

Apache-2.0

42KB
1K SLoC

Wirectl

minimum rustc version A library providing anything that you will need to configure Wireguard interfaces.

Motivation

Wireguard has become a widely-used tunnel solution in these years. Being a fast, simple, and secure protocol, it became my favorite VPN protocol. However, there is no well-maintained server to dynamically modify the configurations. Thus, this limits the usage of Wireguard in some circumstances.

In order to manage wireguard configurations via REST api and beautiful interface. I decide to create a web server in Rust. But I found that there is also no well-maintained library to control Wireguard in the Rust ecosystem. So, my project became writing one library and one web server of Wireguard. :/

Current Status

This library still under development, it lacks of some core features and isn't properly tested.

Roadmap

  • Support for different implementation
    • Linux
    • FreeBSD
    • OpenBSD
    • Userspace (Unix)
    • Userspace (Windows)
  • Async runtime support
    • Smol
    • Tokio
    • Be async runtime agnostic if there is a proper way to do that
  • Extension features
    • wg-quick configuration
      • Parsing
      • Generating
    • Embbeding boringtun library

Dependencies

~14–28MB
~391K SLoC