13 个稳定版本 (3 个主要版本)
3.0.0 | 2023年4月23日 |
---|---|
3.0.0-rc1 | 2023年1月14日 |
2.0.5 | 2022年5月6日 |
2.0.2 | 2021年12月25日 |
0.2.0 | 2019年10月3日 |
#960 in 网络编程
每月 30,762 次下载
用于 wireguard-p2p
145KB
3K SLoC
wireguard-uapi-rs
此库在 Rust 中实现了 Linux 的 WireGuard Netlink API。
- 如果您只是阅读 WireGuard 设备接口,此库完全支持该功能。
- 如果您正在创建新的 WireGuard 设备接口,此库提供部分支持。创建和删除设备接口是可能的,但目前尚无法为这些设备添加 IP 地址。
以下是一个快速示例。
use failure;
use wireguard_uapi::{DeviceInterface, WgSocket};
fn main() -> Result<(), failure::Error> {
let mut wg = WgSocket::connect()?;
let device = wg.get_device(DeviceInterface::from_name("wgtest0"))?;
print_device(&device);
Ok(())
}
权限
编译的二进制文件需要 CAP_NET_ADMIN
能力来读取网络接口。如果您在使用此库时遇到访问错误,请确保编译的可执行文件具有该权限。如果您信任编译的二进制文件,一种授予其权限的方法是
sudo setcap CAP_NET_ADMIN=+eip ./my-compiled-binary
免责声明
这不是官方 WireGuard 产品。(尽管我很感兴趣将其变为官方产品。)
请随意提交错误报告。
依赖项
~2MB
~48K SLoC