17 个版本

0.8.1 2024年7月10日
0.7.2 2024年4月22日
0.7.1 2024年2月27日
0.7.0 2023年9月6日
0.2.0 2021年7月9日

#1632 in 异步

Download history 11058/week @ 2024-04-26 10108/week @ 2024-05-03 9053/week @ 2024-05-10 9803/week @ 2024-05-17 6590/week @ 2024-05-24 10008/week @ 2024-05-31 8111/week @ 2024-06-07 8461/week @ 2024-06-14 10876/week @ 2024-06-21 9167/week @ 2024-06-28 9858/week @ 2024-07-05 10297/week @ 2024-07-12 12911/week @ 2024-07-19 14890/week @ 2024-07-26 13759/week @ 2024-08-02 10626/week @ 2024-08-09

54,474 每月下载量
helyim 中使用

MIT/Apache

34KB
460

ginepro

ginepro 通过为 tonic 的通道添加周期性服务发现来提供开箱即用的客户端 gRPC 负载均衡。

Crates.io Docs.rs CI Coverage Status

概述

ginepro 通过一个目前为 DNS 实现的 ServiceDiscovery 接口定期更新通过 tonic 可用的服务器列表,从而丰富了 tonic。

如何安装

ginepro 添加到依赖项中

cargo add ginepro

入门

接口保持相当一致,因为我们为 tonic 的 Channel 实现了所有逻辑的替换。

// Using the `LoadBalancedChannel`.
use ginepro::LoadBalancedChannel;
use ginepro::pb::tester_client::TesterClient;

// Build a load-balanced channel given a service name and a port.
let load_balanced_channel = LoadBalancedChannel::builder(
    ("my_hostname", 5000)
  )
  .channel()
  .await
  .expect("failed to construct LoadBalancedChannel");

// Initialise a new gRPC client for the `Test` service
// using the load-balanced channel as transport
let grpc_client = TesterClient::new(load_balanced_channel);

有关更多示例,请参阅 示例目录

许可证

根据您的选择,在 Apache 许可证,版本 2.0MIT 许可证 下许可。
除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在作品中并由您提交的任何贡献,都将按照上述方式双许可,没有任何附加条款或条件。

依赖项

~16–26MB
~495K SLoC