pbatard/libwdi logo

pbatard/libwdi

Free

Windows Driver Installer library for USB devices

FreeFree tier
Type
Open Source

About pbatard/libwdi

libwdi is a Windows Driver Installation library for USB devices, designed to automate the creation and installation of drivers. It supports automated INF file generation using reported USB device names, catalog file creation and signing with autogenerated certificates, and extraction of driver files for x86_32, x86_64, and ARM64 platforms. The library handles driver installation including UAC elevation and embeds all required files in a single library. It supports embedding WinUSB, libusb0.sys, libusbK.sys, USB Serial (CDC), or custom drivers. Fully open source under LGPL v3, it includes multiple sample applications and supports MinGW32, MinGW-w64, and Visual Studio. Compatible with Windows 7 through Windows 11.

Key Features

Automated INF file creation using reported USB device name
Automated catalog file creation and signing with autogenerated certificate
Automated driver files extraction for x86_32, x86_64, and ARM64 platforms
Automated driver installation with UAC elevation
Single library embedding all required files
Supports Windows 7 to Windows 11
Embedding of WinUSB, libusb0.sys, libusbK.sys, USB Serial (CDC), or custom drivers
Full locale support with UTF-8 API strings and UTF-16 autogenerated INF files
Resolution of USB Vendor IDs based on data from linux-usb.org
Fully open source (LGPL v3) with multiple sample applications

Pros & Cons

Pros
  • Open source with permissive LGPL v3 license
  • Supports multiple driver backends (WinUSB, libusb, libusbK)
  • Automated certificate generation simplifies driver signing
  • Works across x86, x64, and ARM64 Windows platforms
  • Single library eliminates need for external dependencies
  • Active development with recent releases
Cons
  • Only supports Windows operating systems (no macOS or Linux native driver installation)
  • Automated certificate may not satisfy all system or enterprise signing requirements
  • Requires UAC elevation for driver installation on Windows

Best For

Creating installer executables for USB devicesBundling WinUSB or libusb drivers with applicationsAutomating driver installation for custom USB hardwareDeveloping cross-platform USB tools that require Windows driver support