#steam #api-bindings #api

steam-rs

Safe Rust bindings for the Steam Web API

10 releases (4 breaking)

0.4.4 Feb 17, 2024
0.4.3 Feb 17, 2024
0.4.0 Dec 12, 2023
0.3.1 Aug 6, 2023
0.0.0 Jul 26, 2023

#540 in Web programming

21 downloads per month

MIT license

110KB
2.5K SLoC

steam-rs

Crate at crates.io Documentation at docs.rs MIT licensed CI

This crate provides safe and convenient Rust bindings for the Steam Web API.

The following resources were used in the developement in this crate:

This is not production ready!

This crate is highly experimental and unfinished so you are advised to be cautious when using it in your projects.

Supported API endpoints

For a list of all supported API interfaces and endpoints, please see ENDPOINTS.md.

Usage

use std::env;
use steam_rs::{Steam, SteamId};

#[tokio::main]
async fn main() {
    // Get the Steam API Key as an environment variable
    let steam_api_key = env::var("STEAM_API_KEY").expect("Missing an API key");

    // Initialize the Steam API client
    let steam = Steam::new(steam_api_key);

    // Request the recently played games of SteamID `76561197960434622`
    let steam_id = SteamId::new(76561197960434622);
    let recently_played_games = steam.get_recently_played_games(steam_id, None).await.unwrap();

    // Print the total count of the user's recently played games
    println!("{}", recently_played_games.total_count);
}

Contributing

This project is in early stages of development, so bug reports, suggestions, and pull requests are highly appreciated!

License

This project is licensed under the MIT License.

Dependencies

~4–11MB
~120K SLoC