use dashmap::DashMap; use moka::sync::Cache; use pingora_cache::eviction::simple_lru::Manager; use pingora_cache::lock::CacheLock; use pingora_cache::MemCache; use pingora_limits::rate::Rate; use std::collections::HashMap; use std::net::IpAddr; use std::sync::{Arc, LazyLock}; use std::sync::{OnceLock, RwLock}; use std::time::Duration; pub static REVERSE_STORE: LazyLock> = LazyLock::new(DashMap::new); pub static RATE_LIMITER: LazyLock = LazyLock::new(|| Rate::new(Duration::from_secs(1))); pub static REQUESTS_4XX: LazyLock> = LazyLock::new(|| Cache::builder().time_to_live(Duration::from_secs(1)).build()); pub static LOCALHOST: LazyLock> = LazyLock::new(|| Arc::from("localhost")); pub static MEM_CACHE: LazyLock = LazyLock::new(MemCache::new); pub static CACHE_LOCK: LazyLock = LazyLock::new(|| CacheLock::new(Duration::from_secs(30))); pub static EVICTION: OnceLock = OnceLock::new(); pub static CACHE_TTL: OnceLock = OnceLock::new(); pub static CHALLENGES: LazyLock>> = LazyLock::new(|| RwLock::new(HashMap::new()));