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 streaming;
24
25pub use client::{RpcClientBuilder, connect_channel, endpoint_from_config};
26#[cfg(feature = "discovery")]
27pub use client::{RpcConnectError, connect_discovered_channel, endpoint_from_rpc_endpoint};
28#[cfg(all(feature = "resil", feature = "cache-redis"))]
29pub use config::RpcRateLimiterConfig;
30pub use config::{
31 LoadBalancePolicy, RpcClientConfig, RpcDeadlineConfig, RpcDiscoveryConfig,
32 RpcLoadBalanceConfig, RpcResilienceConfig, RpcRetryConfig, RpcServerConfig, RpcStreamingConfig,
33};
34#[cfg(feature = "observability")]
35pub use interceptor::trace_context_interceptor;
36pub use interceptor::{
37 REQUEST_ID_METADATA, RpcRequestId, deadline_interceptor, request_id_interceptor,
38 resilience_rejection_status, rpc_resilience_key, with_rpc_request_id,
39};
40#[cfg(feature = "resil")]
41pub use resilience::{RpcResilienceLayer, status_counts_as_failure};
42#[cfg(feature = "resil")]
43pub use resilience_layer::{RpcUnaryResilienceLayer, RpcUnaryResilienceService};
44#[cfg(feature = "resil")]
45pub use server::RpcServerLayerStack;
46pub use server::{TonicHealthService, TonicService, serve_health_with_shutdown};