[][src]Crate linux_aio_tokio

Tokio Bindings for Linux Kernel AIO

This package provides an integration of Linux kernel-level asynchronous I/O to the Tokio platform.

Linux kernel-level asynchronous I/O is different from the Posix AIO library. Posix AIO is implemented using a pool of userland threads, which invoke regular, blocking system calls to perform file I/O. Linux kernel-level AIO, on the other hand, provides kernel-level asynchronous scheduling of I/O operations to the underlying block device.

Structs

AioContext

Represents running AIO context. Must be kept while AIO is in use. In order to close it, close should be called. It will wait until all related futures are finished. Otherwise, if it just dropped, the termination will be triggered, but some running futures will continue running until they receive the data.

AioContextHandle

Cloneable handle to AIO context. Required for any AIO operations

EventFd

Tokio-aware EventFd implementation

File

AIO version of tokio File, to work through AioContextHandle

LockedBuf

Buffer with fixed capacity, locked to RAM. It prevents memory from being paged to the swap area

RawCommand

Raw AIO command

ReadFlags

AIO read flags. See io_submit

WriteFlags

AIO write flags. See io_submit

Enums

AioCommandError

AIO command error

AioContextError

AIO context creation error

LockedBufError

Error during LockedBuf creation

Opcode

Represents AIO operation. See io_submit

Traits

AioOpenOptionsExt

Extension trait to OpenOptions to support opening files in AIO mode

Functions

aio_context

Create new AIO context