3 releases
0.0.5 | Nov 8, 2022 |
---|---|
0.0.4 | Oct 5, 2022 |
0.0.3 | Oct 5, 2022 |
#524 in #procedural
120 downloads per month
Used in 3 crates
(via photonio)
6KB
94 lines
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.
lib.rs
:
Procedural macros for PhotonIO.
Dependencies
~1.5MB
~33K SLoC