steamkit-rs
A Rust port of SteamKit2, the .NET library for talking to the Steam network.
The package is steamkit-rs (the steamkit name was taken on crates.io), but the library is called steamkit:
[]
= "0.1"
= { = "1", = ["full"] }
What it covers
- Connections: the CM protocol over TCP, WebSocket and UDP, with channel encryption, and the CM server list.
- Authentication: username and password (with Steam Guard) and QR code sign-in, both ending in a refresh token you can log on with.
- Handlers:
SteamUser,SteamFriends,SteamApps(PICS, depot keys),SteamContent, unified messages,SteamGameCoordinator,SteamCloud,SteamUserStats,SteamWorkshopand more. - Content: the CDN client, depot manifests and chunk decryption and decompression.
- Web API: typed access to the Steam Web API and the content server directory.
- Messages: every Steam, Dota 2, Counter-Strike, Team Fortress 2 and Deadlock protobuf message, from the
steamkit-rs-protoscrate.
Example
Connect to Steam, log on anonymously and print the result:
use Duration;
use LoggedOnCallback;
use SteamUser;
use ConnectedCallback;
use SteamClient;
async
Handlers are fetched with get_required_handler, events arrive as callbacks you subscribe to, and requests that have a reply (such as SteamApps::pics_get_product_info) are async functions that resolve with it.
Samples
The repository has ports of the SteamKit2 samples (login with a password or a QR code, friends, unified messages, game coordinators, the Web API) and two samples that download a depot from the CDN and check every file against its manifest.
License
LGPL-2.1-only, the same as SteamKit2.