// Cargo.toml:
// reqwest = { version = "0.12", features = ["json"] }
// serde = { version = "1", features = ["derive"] }
// tokio = { version = "1", features = ["full"] }
use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct User {
login: String,
name: Option<String>,
public_repos: u32,
}
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let user: User = reqwest::Client::new()
.get("https://api.github.com/users/torvalds")
.header("User-Agent", "myapp/1.0") // required by GitHub API
.send().await?
.error_for_status()? // 4xx/5xx → Err
.json().await?;
println!("{user:#?}");
Ok(())
}
Create a free account and build your private vault. Share publicly whenever you want.