libimobiledevice is a library for connecting to Apple's iPhone 
or iPod touch devices.

This requires usbmuxd and libtasn1.
