Crate steam_rs

Source
Expand description

§steam-rs

Safe and convenient Rust bindings for the Steam Web API.

Warning: This crate is still a work in progress. Breaking changes and instability are to be expected. Use with caution—this is not production-ready.

The core of this crate is the Steam struct, which interacts with the Steam Web API. It typically1 needs to be initialized with a valid Steam API key.

use steam_rs::Steam;

// Retrieve the Steam API key from an environment variable.
let steam_api_key = &std::env::var("STEAM_API_KEY").expect("Missing an API key");

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

Another key component of this crate is the SteamId struct. It represents a Steam user ID2, which is often used when querying user data.

§Example

Here is an example, where the Steam client requests data about two users using the .get_player_summaries(steam_ids) method:

use steam_rs::{steam_id::SteamId, Steam};

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

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

    // Request the player summaries of SteamIDs `76561198136162943` and `76561197960435530`.
    let steam_ids = vec![
        SteamId::new(76561198136162943), // Garrett Howard
        SteamId(76561197960435530),      // Robin Walker
    ];

    let player_summaries = steam.get_player_summaries(steam_ids).await.unwrap();

    // Print the recieved information about the players.
    for player in player_summaries {
        println!(
            "{:?}'s SteamID is {:?}",
            player.persona_name, player.steam_id
        )
    }
}

  1. Not all API endpoints require an API key, and in that case providing one is optional. 

  2. Specifically, SteamId represents a SteamID64 type, but more types, such as SteamID and SteamID3 are planned in future releases. 

Modules§

econ_service
Implements the IEconService interface
errors
Definitions for errors
game_servers_service
Implements the IGameServersService interface
player_service
Implements the IPlayerService interface
published_file_service
Implements the IPublishedFileService interface
site_license_service
Implements the ISiteLicenseService interface
steam_apps
Implements the ISteamApps interface
steam_economy
Implements the ISteamEconomy interface
steam_id
steam_news
Implements the ISteamNews interface
steam_remote_storage
Implements the ISteamRemoteStorage interface
steam_user
Implements the ISteamUser interface
steam_user_auth
Implements the ISteamUserAuth interface
steam_user_stats
Implements the ISteamUserStats interface
steam_webapi_util
Implements the ISteamWebAPIUtil interface

Structs§

Steam