Skip to main content

rskit_discovery/
lib.rs

1//! Service discovery with load balancing strategies.
2//!
3//! Resolve [`ServiceInstance`]s through the [`Discovery`] trait
4//! and manage registrations via [`Registry`].
5//! Pick an instance using one of the built-in load balancers: [`RoundRobin`], [`Random`],
6//! or [`LeastConnections`].
7
8#![warn(missing_docs)]
9
10/// Load balancing strategies.
11pub mod balancer;
12/// Lifecycle-managed discovery component.
13#[cfg(feature = "component")]
14pub mod component;
15/// Service discovery configuration.
16pub mod config;
17/// Consul-backed service discovery.
18#[cfg(feature = "consul")]
19pub mod consul;
20/// Provider factory registry.
21pub mod factory;
22/// Service instance representation.
23pub mod instance;
24/// In-memory discovery for testing.
25pub mod memory;
26/// Bootstrap-time address resolution utilities.
27pub mod resolve;
28/// Discovery-integrated server component.
29#[cfg(feature = "server")]
30pub mod server;
31/// Core discovery and registry traits.
32pub mod traits;
33
34pub use balancer::{LeastConnections, LoadBalancer, Random, RoundRobin, Weighted};
35#[cfg(feature = "component")]
36pub use component::DiscoveryComponent;
37pub use config::DiscoveryConfig;
38#[cfg(feature = "consul")]
39pub use consul::ConsulDiscovery;
40pub use factory::{DiscoveryRegistry, ProviderFactory, ProviderPair};
41pub use instance::ServiceInstance;
42pub use memory::InMemoryDiscovery;
43pub use resolve::resolve_addr;
44#[cfg(feature = "server")]
45pub use server::DiscoveryServer;
46pub use traits::{Discovery, Registry, Watcher};