4 releases

0.1.4 Mar 5, 2026
0.1.3 Sep 30, 2025
0.1.1 Jun 20, 2025
0.1.0 Aug 25, 2023

#431 in Hardware support


Used in bmputil

MIT/Apache

750KB
18K SLoC

C 14K SLoC // 0.1% comments Rust 2K SLoC // 0.1% comments Visual Studio Project 1.5K SLoC Shell 229 SLoC // 0.2% comments Visual Studio Solution 123 SLoC Automake 77 SLoC // 0.0% comments INI 12 SLoC // 0.5% comments Forge Config 4 SLoC // 0.3% comments Batch 1 SLoC

wdi-rs — A safe Rust wrapper for libwdi

Warning: this crate is extremely work in progress and the actual wrapping is very bare bones. The functionality implemented exists almost entirely for bmputil.

Cross compilation

Considerable effort has been put into libwdi-sys's build script to ensure cross compilation works as seamlessly as possible. It will, however, require an existing Windows target cross toolchain setup, but cargo-xwin can take care of most of that for you.

The only other requirement is the Windows 8.0 Driver Kit redistributable components, with the environment variable WDK_DIR set to the path it's been extracted to, e.g. export WDK_DIR=/opt/wdk/8.0.

libusb-win32 and libusbK support

By default, the library provides WinUSB support only. Two other drivers are supported by libusb0 and libusbk features. The only requirement is to provide driver paths through environment variables (respectively, LIBUSB0_DIR and LIBUSBK_DIR).

Dependencies

~0.4–2.8MB
~53K SLoC