ipp-usb
1 minute read
ipp-usb is a daemon that enables the use of IPP-over-USB class USB devices, so that USB-connected printers and multi-function devices can be used with the same driverless ("IPP Everywhere") protocols as network IPP devices.
The IPP-over-USB standard was ratified by the USB forum in 2012. ipp-usb makes
the device's IPP service available over a local network socket on localhost,
which lets CUPS, applications, and scanning software talk to a USB device exactly
as if it were a driverless network printer or scanner.
ipp-usb is the actively maintained successor to the now-discontinued ippusbxd. It is written in Go and has become the standard component for IPP-over-USB support on modern Linux distributions.
ipp-usb has the following advantages:
- Exposes the full driverless capabilities of the device, including IPP Everywhere printing and eSCL ("AirScan") scanning, over USB.
- Advertises the device on
localhostvia DNS-SD so it is discovered automatically by CUPS and scanning frontends. - Handles the multiple simultaneous HTTP connections that IPP-over-USB requires.
- Integrates cleanly with systemd and udev for automatic, on-demand startup.
- Ships with sane defaults and a simple configuration file.