mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-27 00:00:12 +02:00
61 lines
2.0 KiB
Rust
61 lines
2.0 KiB
Rust
//! Asynchronous I/O.
|
|
//!
|
|
//! This module is the asynchronous version of `std::io`. Primarily, it
|
|
//! defines two traits, [`AsyncRead`] and [`AsyncWrite`], which extend the
|
|
//! `Read` and `Write` traits of the standard library.
|
|
//!
|
|
//! # AsyncRead and AsyncWrite
|
|
//!
|
|
//! [`AsyncRead`] and [`AsyncWrite`] must only be implemented for
|
|
//! non-blocking I/O types that integrate with the futures type system. In
|
|
//! other words, these types must never block the thread, and instead the
|
|
//! current task is notified when the I/O resource is ready.
|
|
//!
|
|
//! # Standard input and output
|
|
//!
|
|
//! Tokio provides asynchronous APIs to standard [input], [output], and [error].
|
|
//! These APIs are very similar to the ones provided by `std`, but they also
|
|
//! implement [`AsyncRead`] and [`AsyncWrite`].
|
|
//!
|
|
//! Unlike *most* other Tokio APIs, the standard input / output APIs
|
|
//! **must** be used from the context of the Tokio runtime as they require
|
|
//! Tokio specific features to function.
|
|
//!
|
|
//! [input]: fn.stdin.html
|
|
//! [output]: fn.stdout.html
|
|
//! [error]: fn.stderr.html
|
|
//!
|
|
//! # `std` re-exports
|
|
//!
|
|
//! Additionally, [`Error`], [`ErrorKind`], and [`Result`] are re-exported
|
|
//! from `std::io` for ease of use.
|
|
//!
|
|
//! [`AsyncRead`]: trait.AsyncRead.html
|
|
//! [`AsyncWrite`]: trait.AsyncWrite.html
|
|
//! [`Error`]: struct.Error.html
|
|
//! [`ErrorKind`]: enum.ErrorKind.html
|
|
//! [`Result`]: type.Result.html
|
|
|
|
mod async_buf_read_ext;
|
|
mod async_read_ext;
|
|
mod async_write_ext;
|
|
mod copy;
|
|
mod flush;
|
|
mod lines;
|
|
mod read;
|
|
mod read_exact;
|
|
mod read_line;
|
|
mod read_to_end;
|
|
mod read_to_string;
|
|
mod read_until;
|
|
mod shutdown;
|
|
mod write;
|
|
mod write_all;
|
|
|
|
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411
|
|
pub use self::async_buf_read_ext::AsyncBufReadExt;
|
|
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411
|
|
pub use self::async_read_ext::AsyncReadExt;
|
|
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411
|
|
pub use self::async_write_ext::AsyncWriteExt;
|