#wireguard #interface #embeddable #safe #jason #secure #donfeld

bin+lib wireguard-embeddable

这是一个可嵌入的 wireguard 库,它通过 Jason Donfeld 的 C 实现。允许从 Rust 与内核空间的 wireguard 原生实现交互,创建、修改、删除或查看 wireguard 接口或统计信息。预期的 1.0 版本、稳定版和安全版预计在 2022 年第一季度发布。

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

LGPL-2.1-or-later

74KB
2.5K SLoC

C 1.5K SLoC // 0.0% comments Rust 820 SLoC // 0.0% comments

wg-rust

由于这是一个正在进行中的项目,我建议查看

此项目提供了 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