-
Major rewrite. The new crate is more efficient. In particular, it:
- Does not internally Box the types that must be Pinned. That is now the caller's responsibility.
- Uses the native
aio_readv
andaio_writev
functions, instead of faking them withlio_listio
. This is more efficient, but requires FreeBSD 13.0 or later. (#29)
-
Updated Nix to 0.27.0. This raises MSRV to 1.65.0. (#38)
- Now sets
EV_ONESHOT
, allowing use in multithreaded contexts where the thread that receives notification might not be the thread that callsaio_return
. (#38)
-
Updated Nix to 0.24. This change raises MSRV from 1.41 to 1.46.
-
Updated mio to 0.8.
-
Updated Nix to 0.22.0. This changes mio-aio's error types, because we reexport from Nix. (#21)
-
Updated mio to 0.7.
-
Added a
tokio
feature flag, which enables extra methods needed by a mio-aio consumers that wish to implement Tokio'sAioSource
trait.
-
mio-aio's operations no longer own their buffers. It is less necessary now that async/await is available. Instead, all mio-aio operations use borrowed buffers.
-
Most
AioCb
methods now take a mutable receiver rather than an immutable one.
- Fixed several dependencies's version specifications.
- Added
BufRef::len
- If an
lio_listio
operation fails asynchronously, the future will now include final error status for all failed operations. BufRef::boxed_slice
andBufRef::boxed_mut_slice
now return&Borrow
and&BorrowMut
respectively, rather than references to the boxed type.
- Fixed Cargo's documentation link
- Support for submitting multiple operations at once with
lio_listio
.
AioCb
structures can no longer be created from aRc<Box<[u8]>>
. Use aBox<Borrow<[u8]>>
or aBox<BorrowMut<[u8]>>
instead.