DeveloperBreeze

Rust Async Development Tutorials, Guides & Insights

Unlock 1+ expert-curated rust async tutorials, real-world code snippets, and modern dev strategies. From fundamentals to advanced topics, boost your rust async skills on DeveloperBreeze.

Tutorial
rust

Implementing Async Programming in Rust: Exploring async and await

To demonstrate the power of Rust’s async programming model, we’ll build a simple web crawler that fetches and processes web pages concurrently. This example will utilize tokio and reqwest to handle the asynchronous tasks.

use reqwest::Error;
use tokio::task;

async fn crawl(urls: Vec<&str>) -> Result<(), Error> {
    let mut tasks = vec![];

    for url in urls {
        let task = task::spawn(async move {
            match fetch_data(url).await {
                Ok(data) => println!("Fetched data from {}: {}", url, data),
                Err(e) => eprintln!("Failed to fetch {}: {}", url, e),
            }
        });

        tasks.push(task);
    }

    for task in tasks {
        task.await.unwrap();
    }

    Ok(())
}

#[tokio::main]
async fn main() {
    let urls = vec![
        "https://example.com",
        "https://rust-lang.org",
        "https://tokio.rs",
    ];

    if let Err(e) = crawl(urls).await {
        eprintln!("Crawl failed: {}", e);
    }
}

Aug 27, 2024
Read More