1#![allow(dead_code)]
3#![allow(unused_variables)]
4#![allow(unused_imports)]
5#![allow(clippy::too_many_arguments)]
6#![allow(clippy::match_like_matches_macro)]
7#![allow(clippy::manual_strip)]
8#![allow(clippy::only_used_in_recursion)]
9#![allow(clippy::type_complexity)]
10#![allow(clippy::manual_try_fold)]
11#![allow(private_interfaces)]
12
13pub mod agents;
46pub mod app;
47pub mod builtin_handlers;
48pub mod cache;
49pub mod discovery;
50pub mod distributed_rate_limit;
51pub mod errors;
52pub mod health;
53pub mod http_helpers;
54pub mod logging;
55pub mod memory_cache;
56pub mod otel;
57pub mod proxy;
58pub mod rate_limit;
59pub mod reload;
60pub mod routing;
61pub mod static_files;
62pub mod tls;
63pub mod trace_id;
64pub mod upstream;
65pub mod validation;
66pub mod websocket;
67
68pub use errors::ErrorHandler;
74
75pub use static_files::{CacheStats, CachedFile, FileCache, StaticFileServer};
77
78pub use validation::SchemaValidator;
80
81pub use routing::{RequestInfo, RouteMatch, RouteMatcher};
83
84pub use upstream::{
86 LoadBalancer, PoolConfigSnapshot, PoolStats, RequestContext, TargetSelection, UpstreamPool,
87 UpstreamTarget,
88};
89
90pub use health::{ActiveHealthChecker, PassiveHealthChecker, TargetHealthInfo};
92
93pub use agents::{AgentAction, AgentCallContext, AgentDecision, AgentManager};
95
96pub use reload::{ConfigManager, ReloadEvent, ReloadTrigger, SignalManager, SignalType};
98
99pub use app::AppState;
101
102pub use proxy::SentinelProxy;
104
105pub use builtin_handlers::{
107 execute_handler, BuiltinHandlerState, CachePurgeRequest, TargetHealthStatus, TargetStatus,
108 UpstreamHealthSnapshot, UpstreamStatus,
109};
110
111pub use http_helpers::{
113 extract_request_info, get_or_create_trace_id, write_error, write_json_error, write_response,
114 write_text_error, OwnedRequestInfo,
115};
116
117pub use trace_id::{
119 generate_for_format, generate_tinyflake, generate_uuid, TraceIdFormat, TINYFLAKE_LENGTH,
120};
121
122pub use otel::{
124 create_traceparent, generate_span_id, generate_trace_id, get_tracer, init_tracer,
125 shutdown_tracer, OtelError, OtelTracer, RequestSpan, TraceContext, TRACEPARENT_HEADER,
126 TRACESTATE_HEADER,
127};
128
129pub use tls::{
131 build_server_config, build_upstream_tls_config, load_client_ca, validate_tls_config,
132 validate_upstream_tls_config, CertificateReloader, HotReloadableSniResolver, OcspCacheEntry,
133 OcspStapler, SniResolver, TlsError,
134};
135
136pub use logging::{
138 AccessLogEntry, AccessLogFormat, AuditEventType, AuditLogEntry, ErrorLogEntry, LogManager,
139 SharedLogManager,
140};
141
142pub use rate_limit::{
144 RateLimitConfig, RateLimitManager, RateLimitOutcome, RateLimitResult, RateLimiterPool,
145};
146
147#[cfg(feature = "distributed-rate-limit")]
149pub use distributed_rate_limit::{
150 create_redis_rate_limiter, DistributedRateLimitStats, RedisRateLimiter,
151};
152
153pub use cache::{
155 get_cache_eviction, get_cache_lock, get_cache_storage, CacheConfig, CacheManager,
156 HttpCacheStats,
157};
158
159pub use memory_cache::{
161 MemoryCacheConfig, MemoryCacheManager, MemoryCacheStats, RouteMatchEntry, TypedCache,
162};
163
164pub use discovery::{
166 ConsulDiscovery, DiscoveryConfig, DiscoveryManager, DnsDiscovery, KubernetesDiscovery,
167};
168
169pub use sentinel_common::errors::{LimitType, SentinelError, SentinelResult};