#grpc #rpc #protobuf #wrapper

grpc-ease

使用Tonic库在Rust中操作gRPC的包装器和辅助结构

2个版本

0.1.1 2024年5月25日
0.1.0 2024年5月25日

#127#grpc

Apache-2.0

10KB
125

grpc ease

一个Rust包,提供了使用Tonic库在Rust中操作gRPC的方便的包装器和辅助结构
该包旨在简化与gRPC服务交互和解析协议缓冲区文件的过程。

功能

  • 轻松从服务器检索和解析.proto文件。
  • 列出gRPC服务和RPC方法的辅助函数。

安装

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

[dependencies]
tonic-helper = "0.1.0"
tonic = "0.11"
tokio = { version = "1", features = ["full"] }
tracing = "0.1"

使用方法

列出服务和RPC方法

要从服务器列出所有gRPC服务和它们的RPC方法

use grpc_ease::reflection::ReflectionClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let endpoint = "http://[::1]:4444";

    let mut reflection_client = ReflectionClient::new(endpoint.to_string()).await?;
    let services = reflection_client.list_services().await?;

    for service in services {
        println!("Service: {}", service.service);
        println!("Package: {}", service.package);
        for method in service.methods {
            println!("  RPC Method: {}", method.name);
        }
    }

    Ok(())
}

GrpcReflectionClient 结构体提供与gRPC反射API交互的方法。

  • list_services():检索服务及其RPC方法列表。

许可证

本项目采用Apache License 2.0许可。有关详细信息,请参阅LICENSE文件。

依赖

~4–6MB
~101K SLoC