Expand description
A crate which efficiently locates any Steam application on the filesystem, and/or the Steam installation itself.
§Using steamlocate
Simply add steamlocate using
cargo.
$ cargo add steamlocate§Examples
§Locate the Steam installation and a specific game
The SteamDir is going to be your entrypoint into most parts of the API. After you locate
it you can access related information.
let steam_dir = steamlocate::SteamDir::locate()?;
println!("Steam installation - {}", steam_dir.path().display());
// ^^ prints something like `Steam installation - C:\Program Files (x86)\Steam`
const GMOD_APP_ID: u32 = 4_000;
let (garrys_mod, _lib) = steam_dir
.find_app(GMOD_APP_ID)?
.expect("Of course we have G Mod");
assert_eq!(garrys_mod.name.as_ref().unwrap(), "Garry's Mod");
println!("{garrys_mod:#?}");
// ^^ prints something like vvⓘ
App {
app_id: 4_000,
install_dir: "GarrysMod",
name: Some("Garry's Mod"),
universe: Some(Public),
// much much more data
}§Get an overview of all libraries and apps on the system
You can iterate over all of Steam’s libraries from the steam dir. Then from each library you can iterate over all of its apps.
let steam_dir = steamlocate::SteamDir::locate()?;
for library in steam_dir.libraries()? {
let library = library?;
println!("Library - {}", library.path().display());
for app in library.apps() {
let app = app?;
println!(" App {} - {:?}", app.app_id, app.name);
}
}On my laptop this prints
Library - /home/wintermute/.local/share/Steam
App 1628350 - Steam Linux Runtime 3.0 (sniper)
App 1493710 - Proton Experimental
App 4000 - Garry's Mod
Library - /home/wintermute/temp steam lib
App 391540 - Undertale
App 1714040 - Super Auto Pets
App 2348590 - Proton 8.0Re-exports§
pub use crate::app::App;pub use crate::config::CompatTool;pub use crate::error::Error;pub use crate::error::Result;pub use crate::library::Library;pub use crate::shortcut::Shortcut;
Modules§
- app
- All of the data available from parsing App manifest files
- config
- error
- library
- Functionality related to Steam
Librarys and related types - shortcut
Structs§
- Steam
Dir - The entrypoint into most of the rest of the API