1tokio::task_local! {
4 pub(crate) static RPC_REQUEST_ID_SCOPE: std::sync::Arc<String>;
5}
6
7#[cfg(feature = "discovery")]
8pub mod balancer;
9pub mod client;
10pub mod config;
11pub mod deadline;
12#[cfg(feature = "discovery")]
13pub mod discovery;
14pub mod interceptor;
15#[cfg(all(feature = "resil", feature = "cache-redis"))]
16mod limiter;
17#[cfg(feature = "resil")]
18pub mod resilience;
19#[cfg(feature = "resil")]
20pub mod resilience_layer;
21pub mod retry;
22pub mod server;
23pub mod service_config;
24pub mod streaming;
25
26pub use crate::core::{
27 EtcdDiscoverySection, RpcClientProvider, RpcClientSection, RpcClientsConfig,
28 RpcDeadlineSection, RpcLoadBalancePolicySection, RpcLoadBalanceSection, RpcRetrySection,
29 RpcStreamingSection,
30};
31pub use client::{RpcClientBuilder, connect_channel, endpoint_from_config};
32#[cfg(feature = "discovery")]
33pub use client::{RpcConnectError, connect_discovered_channel, endpoint_from_rpc_endpoint};
34#[cfg(all(feature = "resil", feature = "cache-redis"))]
35pub use config::RpcRateLimiterConfig;
36pub use config::{
37 LoadBalancePolicy, RpcClientConfig, RpcDeadlineConfig, RpcDiscoveryConfig,
38 RpcLoadBalanceConfig, RpcResilienceConfig, RpcRetryConfig, RpcServerConfig, RpcStreamingConfig,
39};
40#[cfg(feature = "observability")]
41pub use interceptor::trace_context_interceptor;
42pub use interceptor::{
43 REQUEST_ID_METADATA, RpcRequestId, deadline_interceptor, request_id_interceptor,
44 resilience_rejection_status, rpc_resilience_key, with_rpc_request_id,
45};
46#[cfg(feature = "resil")]
47pub use resilience::{RpcResilienceLayer, status_counts_as_failure};
48#[cfg(feature = "resil")]
49pub use resilience_layer::{RpcUnaryResilienceLayer, RpcUnaryResilienceService};
50#[cfg(feature = "resil")]
51pub use server::RpcServerLayerStack;
52pub use server::{TonicHealthService, TonicService, serve_health_with_shutdown};
53pub use service_config::{RpcMiddlewaresSection, RpcServerSection, RpcServiceConfig};