nntp_proxy/config/
defaults.rs1use super::types::CompressionCodec;
6use crate::types::{CacheCapacity, MaxConnections, MaxErrors};
7use std::path::PathBuf;
8use std::time::Duration;
9
10#[inline]
15#[must_use]
16pub fn max_connections() -> MaxConnections {
17 MaxConnections::try_new(10).expect("10 is non-zero")
18}
19
20#[inline]
22#[must_use]
23pub const fn health_check_interval() -> Duration {
24 Duration::from_secs(30)
25}
26
27#[inline]
29#[must_use]
30pub const fn health_check_timeout() -> Duration {
31 Duration::from_secs(5)
32}
33
34#[inline]
39#[must_use]
40pub fn unhealthy_threshold() -> MaxErrors {
41 MaxErrors::try_new(3).expect("3 is non-zero")
42}
43
44#[inline]
49#[must_use]
50pub fn cache_max_capacity() -> CacheCapacity {
51 CacheCapacity::try_new(64 * 1024 * 1024).expect("64MB is non-zero")
53}
54
55#[inline]
57#[must_use]
58pub const fn cache_ttl() -> Duration {
59 crate::constants::duration_polyfill::from_hours(1)
60}
61
62#[inline]
67pub const fn cache_articles() -> bool {
68 false
69}
70
71#[inline]
73pub const fn adaptive_precheck() -> bool {
74 false
75}
76
77#[inline]
79#[must_use]
80pub const fn socket_recv_buffer_size() -> usize {
81 crate::constants::socket::HIGH_THROUGHPUT_RECV_BUFFER
82}
83
84#[inline]
86#[must_use]
87pub const fn socket_send_buffer_size() -> usize {
88 crate::constants::socket::HIGH_THROUGHPUT_SEND_BUFFER
89}
90
91#[inline]
93#[must_use]
94pub const fn buffer_pool_size() -> usize {
95 crate::constants::buffer::POOL
96}
97
98#[inline]
102#[must_use]
103pub const fn buffer_pool_count() -> usize {
104 crate::constants::buffer::POOL_COUNT
105}
106
107#[inline]
109#[must_use]
110pub const fn capture_pool_size() -> usize {
111 crate::constants::buffer::CAPTURE
112}
113
114#[inline]
118#[must_use]
119pub const fn capture_pool_count() -> usize {
120 crate::constants::buffer::CAPTURE_COUNT
121}
122
123#[inline]
125#[must_use]
126pub const fn tls_verify_cert() -> bool {
127 true
128}
129
130#[inline]
132#[must_use]
133pub const fn health_check_max_per_cycle() -> usize {
134 use crate::constants::pool::MAX_CONNECTIONS_PER_HEALTH_CHECK_CYCLE;
135 MAX_CONNECTIONS_PER_HEALTH_CHECK_CYCLE
136}
137
138#[inline]
140#[must_use]
141pub const fn health_check_pool_timeout() -> Duration {
142 use crate::constants::pool::HEALTH_CHECK_POOL_TIMEOUT_MS;
143 Duration::from_millis(HEALTH_CHECK_POOL_TIMEOUT_MS)
144}
145
146#[inline]
150#[must_use]
151pub fn disk_cache_path() -> PathBuf {
152 PathBuf::from("/var/cache/nntp-proxy")
153}
154
155#[inline]
160#[must_use]
161pub fn disk_cache_capacity() -> CacheCapacity {
162 CacheCapacity::try_new(10 * 1024 * 1024 * 1024).expect("10GB is non-zero")
163}
164
165#[inline]
167#[must_use]
168pub const fn disk_cache_compression_codec() -> CompressionCodec {
169 CompressionCodec::Lz4
170}
171
172#[inline]
174#[must_use]
175pub const fn disk_cache_shards() -> usize {
176 4
177}
178
179#[inline]
184pub const fn backend_idle_timeout() -> Duration {
185 crate::constants::duration_polyfill::from_minutes(10)
186}
187
188#[inline]
190pub const fn replacement_cooldown() -> Duration {
191 Duration::from_secs(30)
192}
193
194#[inline]
196#[allow(clippy::unnecessary_wraps)] pub const fn replacement_cooldown_option() -> Option<Duration> {
198 Some(replacement_cooldown())
199}
200
201#[inline]
203pub fn log_file_level() -> String {
204 "warn".to_string()
205}