use async_curl::CurlActor; use curl_http_client::*; use futures::future; use http::{Method, Request}; #[tokio::main(flavor = "current_thread")] async fn main() { const NUM_CONCURRENT: usize = 5; let curl = CurlActor::new(); let mut handles = Vec::new(); for _n in 0..NUM_CONCURRENT { let actor = curl.clone(); let handle = tokio::spawn(async move { let collector = Collector::Ram(Vec::new()); let request = Request::builder() .uri("https://www.rust-lang.org/") .method(Method::GET) .body(None) .unwrap(); let response = HttpClient::new(collector) .request(request) .unwrap() .nonblocking(actor) .perform() .await .unwrap(); println!("Response: {:?}", response); }); handles.push(handle); } let results: Vec> = future::join_all(handles).await; for (_i, result) in results.into_iter().enumerate() { result.unwrap(); } }