Skip to main content

qubit_http/
constants.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026 Haixing Hu.
4 *
5 *    SPDX-License-Identifier: Apache-2.0
6 *
7 *    Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10//! Crate-wide defaults and fixed tuning values for HTTP client behavior and logging.
11
12// ---------------------------------------------------------------------------
13// Timeouts ([`crate::HttpTimeoutOptions::default`])
14// ---------------------------------------------------------------------------
15
16/// Default connect timeout in seconds.
17pub const DEFAULT_CONNECT_TIMEOUT_SECS: u64 = 10;
18
19/// Default read timeout in seconds.
20pub const DEFAULT_READ_TIMEOUT_SECS: u64 = 120;
21
22/// Default write timeout in seconds.
23pub const DEFAULT_WRITE_TIMEOUT_SECS: u64 = 120;
24
25// ---------------------------------------------------------------------------
26// Logging ([`crate::HttpLoggingOptions::default`])
27// ---------------------------------------------------------------------------
28
29/// Default maximum body bytes included in TRACE log previews.
30pub const DEFAULT_LOG_BODY_SIZE_LIMIT_BYTES: usize = 16 * 1024;
31
32/// Default maximum bytes included in non-success response body previews on [`crate::HttpError`].
33pub const DEFAULT_ERROR_RESPONSE_PREVIEW_LIMIT_BYTES: usize = 16 * 1024;
34
35// ---------------------------------------------------------------------------
36// SSE decode safety limits
37// ---------------------------------------------------------------------------
38
39/// Default maximum bytes allowed for a single SSE line before raising a protocol error.
40pub const DEFAULT_SSE_MAX_LINE_BYTES: usize = 64 * 1024;
41
42/// Default maximum bytes allowed for one SSE frame (between blank lines) before raising a protocol error.
43pub const DEFAULT_SSE_MAX_FRAME_BYTES: usize = 1024 * 1024;