Crates.io | soda-pool-build |
lib.rs | soda-pool-build |
version | 0.0.2 |
created_at | 2025-05-13 03:29:27.411608+00 |
updated_at | 2025-07-07 01:59:17.167003+00 |
description | Generator of client code for soda-pool |
homepage | https://github.com/Makinami/soda-pool |
repository | https://github.com/Makinami/soda-pool |
max_upload_size | |
id | 1671371 |
size | 53,039 |
⚠️ Note: Soda-pool library is in experimental stage.
Features may change, and breaking changes can occur while I integrate it in the production code I am working on. Use with caution.
Soda-pool is a set of libraries meant to help adapt tonic gRPC clients to be used in more dynamic world of microservices.
Soda-pool provides a dynamic, automatically managed pool of gRPC channels. Unlike the basic tonic's balanced channel, soda's pool is based on DNS resolution and automatically updates periodically to keep in sync with the true state of network.
Soda-pool is designed to be used in tandem with soda-pool-build rather than on it's own. Soda-pool-build builds upon soda-pool and tonic-build and can generate a gRPC client that on top of further simplifying channel pool management, supports also automatic request retrying.
For considered future features, see the roadmap.
All of the documentation and examples assume prior familiarity with tonic ecosystem.
While soda-pool channel pool can be used directly, it is not designed to be done so, so no examples are given beyond the crate's documentation.
At this experimental stage, crates are developed against the latest stable Rust version. I plan on lowering MSRV as far as reasonable soon.
Soda-pool and generated clients depends heavily on tonic
and tokio
and the generated client code shares dependencies with the one generated by tonic-build
.