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

wirectl

通过内核或用户空间实现来控制Wireguard的库

1 个不稳定版本

0.1.0 2021年7月19日

#39 in #wireguard

Apache-2.0

42KB
1K SLoC

Wirectl

最低rustc版本 一个提供配置Wireguard接口所需所有功能的库。

动机

Wireguard近年来已经成为广泛使用的隧道解决方案。作为一个快速、简单、安全的协议,它成为了我最喜欢的VPN协议。然而,没有维护良好的服务器可以动态修改配置,这限制了Wireguard在某些情况下的使用。

为了通过REST API和美观的界面管理wireguard配置。我决定用Rust创建一个Web服务器。但我发现Rust生态系统中也没有维护良好的Wireguard控制库。因此,我的项目变成了编写一个Wireguard库和一个Web服务器。 :/

当前状态

这个库仍在开发中,它缺少一些核心功能,并且尚未经过适当的测试。

路线图

  • 支持不同实现
    • Linux
    • FreeBSD
    • OpenBSD
    • 用户空间(Unix)
    • 用户空间(Windows)
  • 异步运行时支持
    • Smol
    • Tokio
    • 如果存在合适的方法,将异步运行时与实现无关
  • 扩展功能
    • wg-quick配置
      • 解析
      • 生成
    • 嵌入boringtun

依赖

~14–28MB
~391K SLoC