usbmuxd
A socket daemon to multiplex connections from and to iOS devices
...When usbmuxd is running it provides a socket interface at /var/run/usbmuxd that is designed to be compatible with the socket interface that is provided on macOS. You should also create an usbmux user that has access to USB devices on your system. Alternatively, just pass a different username using the -U argument. usbmuxd is not used for tethering data transfers which uses a dedicated USB interface to act as a virtual network device. The higher-level layers, especially if you want to write an application to interact with the device, are handled by libimobiledevice.