ginepro
ginepro copied to clipboard
A client-side gRPC channel implementation for tonic
Addresses #31. Adds a new `EndpointMiddleware` trait and adds the `with_endpoint_layer` method to the `LoadBalancedChannelBuilder`. These middlewares are invoked on every `SocketAddr` that the lookup service discovers. Usage: ```rust let...
## Motivations tonic's Endpoint type has many configurable parameters, for example [keep_alive_interval](https://docs.rs/tonic/0.6.2/tonic/transport/channel/struct.Endpoint.html#method.http2_keep_alive_interval) ginepro [internally constructs](https://github.com/TrueLayer/ginepro/blob/d72678dc10342a83ecd0e66d10d9ac46469ba91b/ginepro/src/service_probe.rs#L200) Endpoint instances from socket addresses, and then applies some limited configuration values (like tls and...
Hi This change allow to use `ginepro` with web servers, which verifies origin of request from `Origin` header.
## Bug description ginepro indirectly uses `tower::Balance` which makes use a best-of-two random load balancing strategy. Unfortunately, tonic has no built in mechanism for determining load, so this is hard...
## Bug description If we registered a custom lookup service that returns ipv6 addresses, grpc client request would block forever. After tracking source code, I guess the bug exists in...
## Bug description ### Symptoms 1. GRPC requests are taking too long to time out when Kubernetes network policies are misconfigured. 2. The `connection_timeout_is_not_fatal` test takes ~75 seconds to finish....
## 🤖 New release * `ginepro`: 0.7.2 -> 0.7.3 (✓ API compatible changes) Changelog ## [0.7.3](https://github.com/TrueLayer/ginepro/compare/ginepro-v0.7.2...ginepro-v0.7.3) - 2024-05-10 ### Fixed - clippy lint `multiple-bound-locations` ([#55](https://github.com/TrueLayer/ginepro/pull/55)) --- This PR was generated...
This change sets origin on Endpoints, such that the LoadBalancedChannel can be used with proxies which route to backend services based on origin. My use case is to be able...
## Motivations Build with tonic 0.14 Actually building with tonic 0.14 leads to the following error: ``` ... ::: /home/david/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ginepro-0.9.0/src/balanced_channel.rs:49:1 | 49 | pub struct LoadBalancedChannel(Channel); | ------------------------------ doesn't satisfy...
## Add support to tonic 0.14 * Set tonic version to 0.14 * Fix shared-proto for building proto with 0.14 * Updated version to 0.10.0 (I don't know if that...