Skip to main content

fraiseql_core/config/
cache.rs

1//! Caching configuration.
2
3use serde::{Deserialize, Serialize};
4
5/// Caching configuration.
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(default)]
8pub struct CacheConfig {
9    /// Enable Automatic Persisted Queries (APQ).
10    pub apq_enabled: bool,
11
12    /// APQ cache TTL in seconds.
13    pub apq_ttl_secs: u64,
14
15    /// Maximum APQ cache entries.
16    pub apq_max_entries: usize,
17
18    /// Enable response caching.
19    pub response_cache_enabled: bool,
20
21    /// Response cache TTL in seconds.
22    pub response_cache_ttl_secs: u64,
23
24    /// Maximum response cache entries.
25    pub response_cache_max_entries: usize,
26}
27
28impl Default for CacheConfig {
29    fn default() -> Self {
30        Self {
31            apq_enabled:                true,
32            apq_ttl_secs:               86400, // 24 hours
33            apq_max_entries:            10_000,
34            response_cache_enabled:     false,
35            response_cache_ttl_secs:    60,
36            response_cache_max_entries: 1_000,
37        }
38    }
39}