Real asynchronous file operations with asyncio support. Features: * Since version 2.0.0 using caio, which contains linux libaio and two thread-based implementations (c-based and pure-python). * AIOFile has no internal pointer. You should pass offset and chunk_size for each operation or use helpers (Reader or Writer). The simplest way is to use async_open for creating object with file-like interface. * For Linux using implementation based on libaio. * For POSIX (MacOS X and optional Linux) using implementation based on threadpool. * Otherwise using pure-python thread-based implementation. * Implementation chooses automatically depending on system compatibility.