4 个版本
0.1.3 | 2021 年 12 月 28 日 |
---|---|
0.1.2 | 2021 年 12 月 28 日 |
0.1.1 | 2021 年 12 月 28 日 |
0.1.0 | 2021 年 12 月 28 日 |
#34 in #wireguard
74KB
2.5K SLoC
wg-rust
由于这是一个正在进行中的项目,我建议查看
- https://crates.io/crates/wireguard-uapi 以获取与此类似的低级接口
- https://crates.io/crates/wireguard-control 以获取高级安全接口
此项目提供了 Rust 绑定到 Jason Donfeld 作为其 wireguard-tools
部分提供的 embeddable-wg-library
。
嵌入库的目的是将其包含在应用程序中,该应用程序在其正常操作中添加、修改、删除、监控、更新或以其他方式管理 wireguard 接口。
此库不实现用户空间或内核空间的 wireguard 实现。对于此目的,您需要系统 wireguard(apt install wireguard
)或用户空间 Rust 实现(boringtun
)。
此库确实提供了与用户侧 C 代码的 Rust 友好绑定,该代码通过 ipc 调用与内核交互。这允许您像 wg-quick
或其他工具一样与内核空间的 wireguard 实现交互。由于我们直接使用 Jason Donfeld 的代码,它预计将非常快、安全且无错误。
构建
它应该可以通过 cargo build
正确构建。
状态
这是一个正在进行中的项目。目前使用 bindgen
生成不安全的包装器,并且使用 cc
(请参阅 build.rs
)构建库。
下一步是生成安全的 Rust 接口,并使布局和命名更加符合习惯。因此,直到达到大约 1.0
版本,我会认为除了不安全的接口之外的所有内容都可能面临快速迭代。
版权 & 商标
"Wireguard" 是 Jason Donfeld 的注册商标,并且与本项目无关联,也不一定认可本项目。
所有代码版权所有 2021 Joshua Vander Hook,AENAC 设备公司。
您可以在个人使用下自由使用此代码,我们欢迎任何补丁或贡献。
无运行时依赖
~0–2MB
~37K SLoC