Skip to content

yaahc/async-std

 
 

Repository files navigation

Async version of the Rust standard library

chat

This crate is an async version of std.

Quickstart

Clone the repo:

git clone git@github.com:stjepang/async-std.git && cd async-std

Read the docs:

cargo doc --features docs --open

Check out the examples. To run an example:

cargo run --example hello-world

Hello world

#![feature(async_await)]

use async_std::task;

fn main() {
    task::block_on(async {
        println!("Hello, world!");
    })
}

Low-Friction Sockets with Built-In Timeouts

#![feature(async_await)]

use std::time::Duration;

use async_std::{
    prelude::*,
    task,
    net::TcpStream,
};

async fn get() -> std::io::Result<Vec<u8>> {
    let mut stream = TcpStream::connect("example.com:80").await?;
    stream.write_all(b"GET /index.html HTTP/1.0\r\n\r\n").await?;

    let mut buf = vec![];
    stream.read_to_end(&mut buf)
        .timeout(Duration::from_secs(5))
        .await?;

    Ok(buf)
}

fn main() {
    task::block_on(async {
        let raw_response = get().await.expect("request");
        let response = String::from_utf8(raw_response)
            .expect("utf8 conversion");
        println!("received: {}", response);
    });
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Async version of the Rust standard library

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.9%
  • Shell 0.1%