Skip to main content

specter/
lib.rs

1//! # Specter
2//!
3//! HTTP client with full TLS/HTTP2 fingerprint control.
4//!
5//! Specter provides HTTP/1.1, HTTP/2, and HTTP/3 support with BoringSSL-based
6//! TLS fingerprinting (JA3/JA4) across all protocols.
7
8// Core modules
9pub mod auth;
10pub mod cache;
11pub mod cookie;
12pub mod error;
13pub mod headers;
14pub mod request;
15pub mod response;
16pub mod timeouts;
17pub mod version;
18
19// Fingerprinting
20pub mod fingerprint;
21
22// Transport layer
23pub mod transport;
24
25// Connection pooling
26pub mod pool;
27
28// Re-exports for convenient access
29pub use cookie::{hash_cookie_value, CookieJar};
30pub use error::{Error, Result};
31pub use fingerprint::{FingerprintProfile, PriorityTree};
32pub use headers::Headers;
33pub use headers::OrderedHeaders;
34pub use request::{Body, IntoUrl, RedirectPolicy, Request};
35pub use response::Response;
36pub use timeouts::{recv_with_idle_timeout, Timeouts};
37pub use version::HttpVersion;
38
39// Transport re-exports
40pub use transport::connector::{AlpnProtocol, BoringConnector, MaybeHttpsStream};
41pub use transport::h1::H1Connection;
42pub use transport::h1_h2::{Client, ClientBuilder, RequestBuilder};
43pub use transport::h2::{H2ClientBuilder, H2Connection, H2PooledConnection, PseudoHeaderOrder};
44pub use transport::h3::H3Client;
45pub use transport::session::SessionCache;
46pub use transport::tcp::TcpFingerprint;
47
48// Pool re-exports
49pub use pool::alt_svc::{AltSvcCache, AltSvcEntry};
50pub use pool::multiplexer::{ConnectionPool, PoolEntry, PoolKey};