Libiscsi is a client-side library to implement the iSCSI protocol that can be used to access the resources of an iSCSI target. The library is fully asynchronous with regards to iSCSI commands and SCSI tasks, but a synchronous layer is also provided for ease of use for simpler applications. This library enables applications to act as iSCSI initiators without requiring support from the kernel. QEMU uses this to access iSCSI targets directly.