PhotonIO
PhotonIO is an efficient runtime for asynchronous applications in Rust.
Features
- Asynchronous filesystem and networking I/O for Linux based on
io_uring
. - A fallback implementation for other platforms based on
Tokio
. - A multi-thread runtime.
Examples
use photonio::{fs::File, io::Write, io::WriteAt};
#[photonio::main]
async fn main() -> std::io::Result<()> {
let mut file = File::create("hello.txt").await?;
file.write(b"hello").await?;
file.write_at(b"world", 5).await?;
Ok(())
}
Limitations
- Dropping an unfinished future for asynchronous filesystem or networking operations will result in a panic. However, this behavior might be change in the future.
- The current multi-thread runtime uses a naive round-robin fashion to schedule tasks. A work-stealing scheduler will be added in the future.