- All types now use I/O Safety. This means that they take
&BorrowedFd<_>
arguments instead ofRawFd
arguments. This has serious repurcussions for consumers who intend to create Futures that have'static
lifetimes. It all updates the nix dependency to 0.29.0 and updates the MSRV to 1.69.0. (#42)
-
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.