Tracking issue for work on AsyncRead and AsyncWrite. The eventual goal is that we have a single, standardised version of these traits in std which are used by all (or at least most mainstream) async runtimes.
Known technical issues:
- should these traits use
poll_read/poll_write functions or async fn read/async fn write
- how to handle writing to uninitialised memory in
AsyncRead
- how to simultaneously read and write
- how to do vectored IO
- working in no_std scenarios (I believe this only requires moving the
Error trait to libcore, which is work in progress
- ensuring these traits work well as trait objects
- using async drop for shutdown?
There are also several closely related traits such as AsyncSeek, and in various libraries, extension traits and AsyncBufRead.
Current implementations:
Smol re-exports the futures versions.
Tracking issue for work on AsyncRead and AsyncWrite. The eventual goal is that we have a single, standardised version of these traits in std which are used by all (or at least most mainstream) async runtimes.
Known technical issues:
poll_read/poll_writefunctions orasync fn read/async fn writeAsyncReadErrortrait to libcore, which is work in progressThere are also several closely related traits such as
AsyncSeek, and in various libraries, extension traits andAsyncBufRead.Current implementations:
Smol re-exports the futures versions.