#![allow(dead_code)]
#![allow(unused_variables)]
#![allow(unused_imports)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::match_like_matches_macro)]
#![allow(clippy::manual_strip)]
#![allow(clippy::only_used_in_recursion)]
#![allow(clippy::type_complexity)]
#![allow(clippy::manual_try_fold)]
#![allow(private_interfaces)]
pub mod acme;
pub mod agents;
pub mod app;
pub mod builtin_handlers;
pub mod cache;
pub mod decompression;
pub mod discovery;
pub mod disk_cache;
pub mod distributed_rate_limit;
pub mod errors;
pub mod hybrid_cache;
pub mod memcached_rate_limit;
pub mod geo_filter;
pub mod grpc_health;
pub mod health;
pub mod http_helpers;
pub mod inference;
#[cfg(feature = "kubernetes")]
pub mod kubeconfig;
pub mod logging;
pub mod memory_cache;
pub mod metrics;
pub mod otel;
pub mod proxy;
pub mod rate_limit;
pub mod reload;
pub mod routing;
pub mod scoped_circuit_breaker;
pub mod scoped_rate_limit;
pub mod scoped_routing;
pub mod shadow;
pub mod static_files;
pub mod tls;
pub mod trace_id;
pub mod upstream;
pub mod validation;
pub mod websocket;
pub mod bundle;
pub use errors::ErrorHandler;
pub use static_files::{CacheStats, CachedFile, FileCache, StaticFileServer};
pub use validation::SchemaValidator;
pub use routing::{RequestInfo, RouteMatch, RouteMatcher};
pub use scoped_routing::{ScopedRouteMatch, ScopedRouteMatcher};
pub use upstream::{
LoadBalancer, PoolConfigSnapshot, PoolStats, RequestContext, ShadowTarget, TargetSelection,
UpstreamPool, UpstreamTarget,
};
pub use health::{ActiveHealthChecker, PassiveHealthChecker, TargetHealthInfo};
pub use agents::{AgentAction, AgentCallContext, AgentDecision, AgentManager};
pub use reload::{ConfigManager, ReloadEvent, ReloadTrigger, SignalManager, SignalType};
pub use app::AppState;
pub use proxy::ZentinelProxy;
pub use builtin_handlers::{
execute_handler, BuiltinHandlerState, CachePurgeRequest, TargetHealthStatus, TargetStatus,
UpstreamHealthSnapshot, UpstreamStatus,
};
pub use http_helpers::{
extract_request_info, get_or_create_trace_id, write_error, write_json_error, write_response,
write_text_error, OwnedRequestInfo,
};
pub use trace_id::{
generate_for_format, generate_tinyflake, generate_uuid, TraceIdFormat, TINYFLAKE_LENGTH,
};
pub use otel::{
create_traceparent, generate_span_id, generate_trace_id, get_tracer, init_tracer,
shutdown_tracer, OtelError, OtelTracer, RequestSpan, TraceContext, TRACEPARENT_HEADER,
TRACESTATE_HEADER,
};
pub use tls::{
build_server_config, build_upstream_tls_config, load_client_ca, validate_tls_config,
validate_upstream_tls_config, CertificateReloader, HotReloadableSniResolver, OcspCacheEntry,
OcspStapler, SniResolver, TlsError,
};
pub use logging::{
AccessLogEntry, AccessLogFormat, AuditEventType, AuditLogEntry, ErrorLogEntry, LogManager,
SharedLogManager,
};
pub use rate_limit::{
RateLimitConfig, RateLimitManager, RateLimitOutcome, RateLimitResult, RateLimiterPool,
};
pub use scoped_rate_limit::{ScopedRateLimitManager, ScopedRateLimitResult};
pub use scoped_circuit_breaker::{ScopedBreakerStatus, ScopedCircuitBreakerManager};
pub use shadow::{buffer_request_body, clone_body_for_shadow, should_buffer_method, ShadowManager};
pub use geo_filter::{
GeoDatabaseWatcher, GeoFilterManager, GeoFilterPool, GeoFilterResult, GeoLookupError,
};
pub use decompression::{
decompress_body, decompress_body_with_stats, is_supported_encoding, parse_content_encoding,
DecompressionConfig, DecompressionError, DecompressionResult, DecompressionStats,
};
#[cfg(feature = "distributed-rate-limit")]
pub use distributed_rate_limit::{
create_redis_rate_limiter, DistributedRateLimitStats, RedisRateLimiter,
};
#[cfg(feature = "distributed-rate-limit-memcached")]
pub use memcached_rate_limit::{
create_memcached_rate_limiter, MemcachedRateLimitStats, MemcachedRateLimiter,
};
pub use cache::{
configure_cache, get_cache_eviction, get_cache_lock, get_cache_storage, init_disk_cache_state,
is_cache_enabled, save_disk_cache_state, CacheConfig, CacheManager, HttpCacheStats,
};
pub use memory_cache::{
MemoryCacheConfig, MemoryCacheManager, MemoryCacheStats, RouteMatchEntry, TypedCache,
};
pub use metrics::{MetricsManager, MetricsResponse};
pub use discovery::{
ConsulDiscovery, DiscoveryConfig, DiscoveryManager, DnsDiscovery, KubernetesDiscovery,
};
#[cfg(feature = "kubernetes")]
pub use kubeconfig::{KubeAuth, Kubeconfig, KubeconfigError, ResolvedKubeConfig};
pub use zentinel_common::errors::{LimitType, ZentinelError, ZentinelResult};