#grpc #client #api #function #build #interface #github

bin+lib coreemu

Rust 客户端库,用于 coreemu 的 gRPC 接口 https://github.com/coreemu/core

6 个版本

0.1.5 2022 年 9 月 14 日
0.1.4 2022 年 7 月 20 日
0.1.3 2021 年 10 月 15 日
0.1.2 2021 年 7 月 14 日

#151 in #grpc

每月 38 次下载

MIT/Apache

4MB
59K SLoC

Python 33K SLoC // 0.2% comments TCL 21K SLoC // 0.2% comments C 3K SLoC // 0.1% comments Shell 545 SLoC // 0.2% comments Automake 326 SLoC // 0.2% comments Rust 261 SLoC // 0.1% comments Bitbake 218 SLoC // 0.6% comments Forge Config 8 SLoC

包含 (神秘的 autoconf 代码, 9KB) core/configure.ac

coreemu-rs

这是一个从 Rust 使用 coreemu 的 gRPC 接口的客户端库。所有 gRPC 函数都以原始形式暴露,如由 tonic-build 生成,但还有一个薄(且不完整)的包装器,使 API 更易于使用。

此存储库的主要分支和在 crates.io 上发布的版本是为 coreemu 7.5.2 构建的,有一个名为 coreemu8 的分支,它支持更改后的 gRPC 接口。

要使用此库,请将以下依赖项添加到您的 Cargo.toml

coreemu = "*"

或直接调用

cargo add coreemu

示例

以下示例连接到本地 coreemu 实例,并打印找到的第一个运行实例的所有节点信息。

use coreemu::Client;

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

    let response = client.get_sessions().await?;

    println!("RESPONSE={:?}", response);

    let session_id = response[0].id;

    let response = client.get_session(session_id).await?.unwrap();

    for n in response.nodes {
        if n.name.starts_with("n") {
            println!("RESPONSE={:#?}", n.position.unwrap());
        }
    }
    Ok(())
}

依赖项

~11–21MB
~295K SLoC