ringcore 0.1.0

A minimal async runtime built on Linux io_uring, designed to expose how Rust futures map to kernel I/O.
Documentation
use ringcore::{run, spawn, TcpStream};
use std::time::Instant;
use std::io;

async fn run_client(n_requests: usize) -> io::Result<()> {
    let start = Instant::now();
    
    for _ in 0..n_requests {
        let stream = TcpStream::connect("127.0.0.1:8080").await?;
        let request = "GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n";
        stream.write(request.as_bytes()).await?;
        
        let mut buf = [0u8; 1024];
        let _n = stream.read(&mut buf).await?;
    }
    
    let duration = start.elapsed();
    println!("RingCore client: {} requests in {:?}", n_requests, duration);
    Ok(())
}

fn main() -> io::Result<()> {
    spawn(async {
        if let Err(e) = run_client(100).await {
            eprintln!("Client error: {}", e);
        }
    });
    run();
    Ok(())
}