tokio-cronet 0.1.0

Safe Rust bindings for Chromium Cronet's native C API
use tokio::io::AsyncReadExt;
use tokio_cronet::{Engine, Request};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let url = std::env::args()
        .nth(1)
        .unwrap_or_else(|| "https://example.com".to_owned());
    let engine = Engine::builder().user_agent("cronet-rs/example").build()?;
    let request = Request::builder(url)?.build()?;
    let mut response = engine.send(request).await?;
    let mut body = Vec::new();
    response.body.read_to_end(&mut body).await?;
    let finished = response.body.finished().await?;
    println!("HTTP {}", response.status());
    println!("{}", String::from_utf8_lossy(&body));
    println!("finished: {:?}", finished.reason);
    engine.shutdown().await?;
    Ok(())
}