#bindings #driver #ffi #windivert

sys windivert-sys

WinDivert用户模式库的原始FFI绑定

9个版本 (5个破坏性版本)

0.10.0 2023年5月26日
0.9.2 2023年3月23日
0.9.0 2022年12月21日
0.8.0 2022年1月29日
0.5.2 2021年2月7日

#370#driver

Download history 36/week @ 2024-04-01 22/week @ 2024-04-08 41/week @ 2024-04-15 154/week @ 2024-04-22 43/week @ 2024-04-29 47/week @ 2024-05-13 2/week @ 2024-05-20 41/week @ 2024-05-27 9/week @ 2024-06-03 9/week @ 2024-06-10 48/week @ 2024-06-24 62/week @ 2024-07-01 9/week @ 2024-07-08

每月120 次下载
windivert 中使用

LGPL-3.0-or-later

785KB
18K SLoC

C 16K SLoC // 0.1% comments Rust 1.5K SLoC // 0.1% comments Visual Studio Project 449 SLoC // 0.5% comments Shell 216 SLoC // 0.3% comments Batch 99 SLoC // 0.4% comments Bitbake 9 SLoC

WinDivert 2 Rust包装器

GitHub

注意:这是一个进行中的工作,因此直到1.0.0版本发布,crates将不会遵循语义版本控制,因此1.0.0以下版本的变化可能会在API或crates的一般使用中引入破坏性更改。

此项目允许您从rust中使用WinDivert。它包含两个crates

  • windivert-sys crates.io docs dependency status: 提供对WinDivert用户模式库原始绑定的crates。
  • windivert crates.io docs dependency status: (WIP) 基于windivert-sys构建,提供更友好的Rust API和一些抽象。

构建

为了构建windivert-sys,您需要WinDivert库文件

  • 建议使用WINDIVERT_PATH环境变量指定包含下载的dll、lib和sys文件的文件夹路径。
  • 作为备用,如果启用了vendored功能,可以编译windivert的dll和lib文件。为了避免多次编译,将WINDIVERT_DLL_OUTPUT环境变量设置为保存生成的构建。
  • 可以通过启用 静态 功能来编译为与 windivert 库静态链接。如果设置了 WINDIVERT_STATIC,也可以启用静态链接,并且它比 crate 特性具有更高的优先级。
  • 任何 vendoring 方法都只会编译库。必须始终提供 sys 文件。

用法

  • windivert-sys 使用与原生库相同的 API。阅读官方文档获取更多详细信息。
  • windivert WIP

注意:WinDivert dll 预期相应的驱动 sys 文件位于同一文件夹中。由于从官方网页下载时 dll lib 和 sys 文件位于同一文件夹,因此 windivert-sys 将在 WINDIVERT_PATH 提供的路径上搜索它。

依赖关系

~129MB
~2M SLoC