1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// SPDX-License-Identifier: Apache-2.0
// Copyright (c) 2026 Praxis Contributors
//! Sub-request types, hardened executor, and shared HTTP connector.
//!
//! Defines the `SubRequest` and `SubResponse` data types used by
//! sub-request exchanges, the `SubRequestConnector` that wraps the build's
//! egress [`Connector`] for connection pooling, and the `SubRequestClient`
//! that owns the shared connector and provides a safe, bounded execution
//! API. Peers are addressed as [`PeerSpec`]s, so none of this depends on
//! which network backend the build carries.
//!
//! ```
//! use praxis_core::subrequest::{SubRequestClient, SubRequestConnector};
//! praxis_tls::provider::install(); // required before any connector is built
//!
//! let connector = SubRequestConnector::new(128, None);
//! let client = SubRequestClient::new(connector);
//! ```
//!
//! [`Connector`]: crate::egress::Connector
//! [`PeerSpec`]: crate::egress::PeerSpec
/// Streaming body handle implementation.
/// Hardened sub-request client and executor.
/// Connector, circuit guard, header sanitization, and shared utilities.
pub
/// Data types for sub-request exchanges.
/// Backend-neutral buffered completion contract regression tests.
// The exchange tests dial a local listener through the build's connector, so
// they need a network backend compiled in.
pub use ;
pub use ;
pub use ;