steamid-rs-2.1.0 has been yanked.
steamid-rs
A Rust library for parsing, validating, and converting Steam IDs between different formats.
Features
- Parse Steam IDs from multiple formats:
- Steam2:
STEAM_0:0:23071901 - Steam3:
[U:1:46143802] - SteamID64:
76561198006409530
- Steam2:
- Convert between all formats seamlessly
- Validate Steam IDs
- Zero-copy parsing with comprehensive error handling
- No runtime dependencies (only
regexandthiserror)
Installation
Add this to your Cargo.toml:
[]
= "2.1"
The library is imported as steamid in your code (the package name is steamid-rs because steamid was already taken on crates.io).
Usage
Parsing Steam IDs
use SteamID;
// Parse from any format using .parse()
let sid: SteamID = "STEAM_0:0:23071901".parse.unwrap;
let sid: SteamID = "[U:1:46143802]".parse.unwrap;
let sid: SteamID = "76561198006409530".parse.unwrap;
// Or use TryFrom
let sid = try_from.unwrap;
// From a 64-bit integer
let sid = from;
Creating from Account ID
use SteamID;
// Create a SteamID from an individual account ID
let sid = from_individual_account_id;
assert!;
Converting Between Formats
use SteamID;
let sid: SteamID = "76561198006409530".parse.unwrap;
// Convert to Steam2 format
println!; // "STEAM_0:0:23071901"
println!; // "STEAM_1:0:23071901"
// Convert to Steam3 format
println!; // "[U:1:46143802]"
// Get the 64-bit representation
println!; // 76561198006409530
// Display trait uses Steam3 format
println!; // "[U:1:46143802]"
Validation
use SteamID;
let sid: SteamID = "[U:1:46143802]".parse.unwrap;
// Check if valid according to Steam
assert!;
// Check if it's a valid individual user account
assert!;
// Check for special account types
assert!;
assert!;
Accessing Components
use ;
let sid: SteamID = "[U:1:46143802]".parse.unwrap;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Error Handling
use ;
let result: = "invalid".parse;
assert!;
match result
API Reference
SteamID Struct
| Method | Description |
|---|---|
new() |
Creates a new invalid SteamID |
from_individual_account_id(u32) |
Creates a SteamID for an individual user |
from_steam_id64(u64) |
Parses from a 64-bit integer |
is_valid() |
Returns whether Steam considers this ID valid |
is_valid_individual() |
Returns whether this is a valid individual user |
is_group_chat() |
Checks if this is a legacy group chat |
is_lobby() |
Checks if this is a game lobby |
steam2(bool) |
Renders in Steam2 format |
steam3() |
Renders in Steam3 format |
steam_id64() |
Returns the 64-bit representation |
Enums
Universe-Invalid,Public,Beta,Internal,DevAccountType-Invalid,Individual,Multiseat,GameServer,AnonGameServer,Pending,ContentServer,Clan,Chat,AnonUserInstance-All,Desktop,Console,Web
Constants
chat_instance_flags::CLAN- Flag for clan chat instanceschat_instance_flags::LOBBY- Flag for lobby chat instances
License
Credits
This is a Rust port of node-steamid by DoctorMcKay.