16 个版本 (10 个破坏性版本)

0.11.0 2024年2月7日
0.10.0 2023年3月25日
0.9.0 2022年4月22日
0.8.0 2021年11月23日
0.2.1 2018年3月1日

#800 in 游戏开发

Download history • Rust 包仓库 211/week @ 2024-03-13 • Rust 包仓库 278/week @ 2024-03-20 • Rust 包仓库 235/week @ 2024-03-27 • Rust 包仓库 243/week @ 2024-04-03 • Rust 包仓库 159/week @ 2024-04-10 • Rust 包仓库 166/week @ 2024-04-17 • Rust 包仓库 230/week @ 2024-04-24 • Rust 包仓库 239/week @ 2024-05-01 • Rust 包仓库 115/week @ 2024-05-08 • Rust 包仓库 142/week @ 2024-05-15 • Rust 包仓库 202/week @ 2024-05-22 • Rust 包仓库 160/week @ 2024-05-29 • Rust 包仓库 274/week @ 2024-06-05 • Rust 包仓库 224/week @ 2024-06-12 • Rust 包仓库 138/week @ 2024-06-19 • Rust 包仓库 157/week @ 2024-06-26 • Rust 包仓库

每月 816 次下载
10 个库中使用(通过 steamworks

MIT/Apache

13MB
88K SLoC

包含 (ELF 库,1.5MB) libsdkencryptedappticket.so、(ELF 库,1.5MB) libsdkencryptedappticket.so、(Windows DLL,1MB) sdkencryptedappticket.dll、(Windows DLL,1MB) sdkencryptedappticket64.dll、(ELF 库,380KB) libsteam_api.so、(ELF 库,395KB) libsteam_api.so 以及 更多

steamworks

crates.io Documentation License

此crate提供了对 Steamworks SDK 的Rust绑定。

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
steamworks = "0.11.0"
crate SDK MSRV
git 1.58a 1.71.1
0.11.0 1.58a 1.71.1
0.10.0 1.54 1.56.1
0.9.0 1.53a 1.56.1

示例

您可以在 示例 中找到更多示例。

use steamworks::AppId;
use steamworks::Client;
use steamworks::FriendFlags;
use steamworks::PersonaStateChange;

fn main() {
    let (client, single) = Client::init().unwrap();

    let _cb = client.register_callback(|p: PersonaStateChange| {
        println!("Got callback: {:?}", p);
    });

    let utils = client.utils();
    println!("Utils:");
    println!("AppId: {:?}", utils.app_id());
    println!("UI Language: {}", utils.ui_language());

    let apps = client.apps();
    println!("Apps");
    println!("IsInstalled(480): {}", apps.is_app_installed(AppId(480)));
    println!("InstallDir(480): {}", apps.app_install_dir(AppId(480)));
    println!("BuildId: {}", apps.app_build_id());
    println!("AppOwner: {:?}", apps.app_owner());
    println!("Langs: {:?}", apps.available_game_languages());
    println!("Lang: {}", apps.current_game_language());
    println!("Beta: {:?}", apps.current_beta_name());

    let friends = client.friends();
    println!("Friends");
    let list = friends.get_friends(FriendFlags::IMMEDIATE);
    println!("{:?}", list);
    for f in &list {
        println!("Friend: {:?} - {}({:?})", f.id(), f.name(), f.state());
        friends.request_user_information(f.id(), true);
    }

    for _ in 0..50 {
        single.run_callbacks();
        ::std::thread::sleep(::std::time::Duration::from_millis(100));
    }
}

功能

serde:此功能通过 serde 启用某些类型的序列化和反序列化。

许可

此crate采用 Apache 和 MIT 许可双重许可。

帮助,我的游戏无法运行!

如果您看到诸如 STATUS_DLL_NOT_FOUNDImage not found 等错误,则可能是缺少 Steamworks SDK 分发文件。Steamworks-rs 以动态方式加载 SDK,因此库需要存在于操作系统可以找到它们的地方。这通常在您的游戏二进制文件(Windows上的.exe)旁边。您可以在 SDK 发布 ZIP 文件中的 lib\steam\redistributable_bin 下找到所需文件。有关详细信息,请参阅 #63。

无运行时依赖