LICENSE: MIT AXL defines a common interface for transferring files between layers in a storage hierarchy. It abstracts vendor-specific APIs and provides synchronous and asynchronous methods using POSIX. One creates a transfer object, defining the transfer type, and then one adds files to the transfer. Once all files have been added, one initiates the transfer and can then later test or wait for its completion. The library optionally records the state of ongoing transfers, so that they can be identified or terminated even if the process that initiated the transfer has been restarted.