3个不稳定版本
0.2.1 | 2024年5月29日 |
---|---|
0.2.0 | 2024年5月5日 |
0.1.0 | 2023年8月4日 |
在 网络编程 中排名第1266
每月下载量28次
19MB
408K SLoC
Steam-Vent
通过rust与Steam网络交互
允许使用与常规Steam客户端相同的协议与Steam服务器通信。
状态
虽然该项目仍非常不完整,但验证Steam和发送请求的基本功能已正常工作。
- 匿名会话
- 密码认证
- 二维码认证
- Steam guard(设备或电子邮件)确认
- 设备通知确认
- 保存的机器令牌确认
- 通过连接执行RPC调用
- 围绕RPC调用的高级包装
使用方法
请注意,此项目仍在早期开发阶段,API可能会发生重大变化。
use std::error::Error;
use steam_vent::connection::Connection;
use steam_vent::proto::steammessages_gameservers_steamclient::CGameServers_GetServerList_Request;
use steam_vent::serverlist::ServerList;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let server_list = ServerList::discover().await?;
let mut connection = Connection::anonymous(server_list).await?;
let mut req = CGameServers_GetServerList_Request::new();
req.set_limit(16);
req.set_filter("\\appid\\440".into());
let some_tf2_servers = connection.service_method(req).await?;
for server in some_tf2_servers.servers {
println!(
"{}({}) playing {}",
server.get_name(),
server.get_addr(),
server.get_map()
);
}
Ok(())
}
致谢
这在很大程度上受到了@DoctorMcKay在SteamUser上的工作的启发,并基于此,向所有为此项目做出贡献的人表示衷心的感谢。
依赖项
~17–33MB
~472K SLoC