|
USBIP C library 0.7.0
Virtual USB devices & host drivers over USB/IP
|
The USBIP C library lets you create virtual USB devices and write host drivers for them - in software, with no hardware. USB/IP is the transport underneath, but it stays out of the way: the API vocabulary is pure USB (device, interface, endpoint, descriptor, transfer) and the transport is local by default, named only when you go remote.
This is the reference and guide for the C library (include/). A byte-compatible Python library is documented on its own MkDocs site; both speak the same USB/IP wire protocol, so a C device can be driven by a Python host and vice-versa.
USB/IP inverts the everyday words: the side that provides the device is the USB/IP server, and the side that uses it is the USB/IP client.
| Your side | USB role | USB/IP role | Socket |
|---|---|---|---|
| a program on the device API | device | server | listens on TCP 3240 |
| a USB/IP client (the OS's own importer) | host | client | connects |
| a program on the host API | host | client | connects |
Copyright (C) 2026 Jabez Winston - SPDX-License-Identifier: MIT