#gamedev #api-client #api-bindings #programmers #lunaria

lunaria-api

用于视频游戏Lunaria的Rust API客户端

7个版本

0.2.1 2021年8月9日
0.2.0 2021年7月27日
0.1.3 2021年7月13日
0.1.2 2021年6月23日
0.0.0 2020年9月26日

#35 in #programmers

每月 33 次下载
用于 lunaria

MIT/Apache

9KB

🦀 lunaria-api

GitHub release (latest by date) GitHub Workflow Status License

用于视频游戏Lunaria的Rust API客户端。

Lunaria 是一款面向程序员的视频游戏,通过 gRPC API 编写与游戏交互的代码来玩。该包包含一个由 Protocol Buffers 自动生成的 Lunaria的API 声明的 gRPC 客户端。

入门指南

首先,将 lunaria-api 添加为 Cargo.toml 的依赖项。

因为 lunaria-api 包裹了由 tonic 生成的客户端,所以它也必须作为依赖项添加。如果您正在构建二进制文件,还需要一个异步运行时,例如 tokio

[dependencies]
lunaria-api = "0.2.1"
tokio = { version = "0.2.22", features = ["macros", "rt-threaded"] }
tonic = "0.3.1"

接下来,导入 LunariaClient 并连接到游戏服务器。查看下面的 Lunaria API 规范,了解您可以发送的所有请求以及它们所需和返回的数据

https://github.com/playlunaria/lunaria-api/tree/main/protobufs

以下是一个获取游戏版本的示例

use lunaria_api::lunaria::v1::lunaria_service_client::LunariaSerrviceClient;
use lunaria_api::lunaria::v1::{GetVersionRequest, GetVersionResponse, Version};
use tonic::Request;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Specify the address and port of Lunaria's API
    let address = "http://127.0.0.1:1904";

    // Initialize the client
    let mut lunaria = LunariaServiceClient::connect(address).await?;

    // Create a request to get the game's version and send it to the server
    let request = Request::new(GetVersionRequest {});
    let grpc_response = lunaria.get_version(request).await?;
    let version_response = grpc_response.into_inner();

    if let Some(version) = version_response.version {
        assert_eq!(0, version.major);
        assert_eq!(0, version.minor);
        assert_eq!(0, version.patch);
    }

    Ok(())
}

许可

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~5.5–7.5MB
~129K SLoC