#gamedev #game #api-bindings #grpc-api

自动流量控制

一款关于空中交通管理的程序游戏

4个版本

0.3.2 2022年5月19日
0.3.1 2022年5月16日
0.3.0 2022年4月23日
0.2.0 2022年4月16日

#1915 in 游戏开发

MIT/Apache

6KB

🛬 自动流量控制

GitHub Workflow Status Version License

主页 | 文档 | 社区

自动流量控制 是一款由编程来玩的视频游戏。玩家的任务是创建一个程序,可以安全地管理两个机场上空的空域。

游戏旨在提供一个开放式的沙盒,玩家可以在其中自由练习编程。游戏提供了一个语言无关的gRPC API,让玩家可以自由选择编程语言或范式。

此crate包含游戏gRPC API的自动生成的Rust SDK。

使用方法

首先,将 auto-traffic-control 添加为新的依赖项到你的 Cargo.toml

[dependencies]
auto-traffic-control = "0.3.2"

你还需要添加gRPC的Rust实现 tonic 和异步运行时 tokio 作为依赖项。

然后,创建一个服务客户端并发送请求。查看 文档 了解不同的服务和它们的端点。

以下 示例 通过 AtcService 查询游戏的版本。

use auto_traffic_control::v1::atc_service_client::AtcServiceClient;
use auto_traffic_control::v1::GetVersionRequest;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut atc_service = AtcServiceClient::connect("https://127.0.0.1:4747").await?;

    let response = atc_service.get_version(GetVersionRequest {}).await?;
    let version_field = response.into_inner().version;

    if let Some(version) = version_field {
        let mut version_string = format!("{}.{}.{}", version.major, version.minor, version.patch);

        if !version.pre.is_empty() {
            version_string.push('-');
            version_string.push_str(&version.pre);
        }

        println!("Auto Traffic Control is running version '{version_string}'");
    } else {
        println!("Requesting the version returned an empty response.");
    }

    Ok(())
}

许可证

根据以下任一许可证授权:

由您选择。

贡献

除非您明确声明,否则您有意提交给作品作为Apache-2.0许可证定义的任何贡献,将根据上述方式双授权,不附加任何额外的条款或条件。

依赖关系

~8MB
~145K SLoC