steamkit-rs 0.1.0

Rust port of SteamKit2, a .NET library that aims to interoperate with the Steam network.
docs.rs failed to build steamkit-rs-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: steamkit-rs-0.1.2

steamkit-rs

A Rust port of SteamKit2, the .NET library for talking to the Steam network.

It covers the CM protocol (TCP, WebSocket and UDP transports, channel encryption), the handlers (SteamUser, SteamFriends, SteamApps, unified messages, game coordinator, ...), the authentication flows (credentials and QR code), the Web API, the CDN client and depot manifests. It also ports SteamKit's tooling: the .steamd code generator, the protobuf dumper, and the NetHook2 DLL plus its dump analyzer.

Status

  • Logging on works against live Steam over TCP (QR flow tested on a real account).
  • A logged-on session works: friends list, unified messages, PICS product info and depot keys.
  • The WebSocket transport connects, but Steam closes the session after a minute or two, so the default connection order is TCP first.
  • CDN downloads, game coordinators and long-running sessions haven't been tested live yet.
  • The NetHook2 DLL builds but hasn't been injected into a real Steam client.

Using it

[dependencies]
steamkit-rs = "0.1"

The package is steamkit-rs on crates.io (the steamkit name was taken), but the library is still called steamkit:

use steamkit::steam::steam_client::steam_client::SteamClient;

Building

cargo build --workspace
cargo test --workspace --no-fail-fast

The test suite needs no network access; the few live tests are #[ignore]d.

Samples

crates/steamkit-samples has ports of the SteamKit2 samples. The QR login one needs no password:

cargo run -p steamkit-samples --bin 001_authentication_with_qr_code

Scan the code with the Steam mobile app. On Windows the console can't draw the block characters, so the code is also written to %TEMP%\steamkit-qr-login.svg.

900_live_check logs on the same way and runs a set of PASS/FAIL checks against a logged-on session. It doesn't change anything on the account.

Crates

Crate What it is
steamkit the library, published as steamkit-rs
steamkit-protos generated protobuf messages, published as steamkit-rs-protos (built from proto/ at compile time)
steamkit-tools .steamd code generator, protobuf generator / dumper, NetHook dump analyzer
steamkit-nethook NetHook2, a Windows DLL that logs the Steam client's network traffic
steamkit-samples the sample programs
steamkit-tests the test suite

License

LGPL-2.1, the same as SteamKit2. See LICENSE.