pub struct ProxyCapabilities {
pub supports_https_connect: bool,
pub supports_socks5_udp: bool,
pub supports_http3_tunnel: bool,
pub geo_country: Option<String>,
pub geo_confidence: Option<f32>,
pub is_cdn_edge: bool,
pub cdn_provider: Option<String>,
pub tls_profile: Option<String>,
}Expand description
Protocol-level capabilities advertised by a proxy endpoint.
These flags are set when the proxy is registered and consulted during
capability-aware selection (see crate::manager::ProxyManager::acquire_with_capabilities).
§Example
use stygian_proxy::types::ProxyCapabilities;
let caps = ProxyCapabilities::default();
assert!(!caps.supports_https_connect);
assert!(!caps.supports_socks5_udp);
assert!(!caps.supports_http3_tunnel);Fields§
§supports_https_connect: boolProxy supports the CONNECT method for HTTPS tunnelling.
supports_socks5_udp: boolProxy supports SOCKS5 with UDP relay (for UDP-based transports).
supports_http3_tunnel: boolProxy supports HTTP/3 (QUIC) tunnelling — future-compatible flag.
geo_country: Option<String>Optional ISO-3166-1 alpha-2 country code for the proxy egress location.
geo_confidence: Option<f32>Confidence score [0.0, 1.0] for the geo-location data.
None means the provider did not supply confidence metadata.
is_cdn_edge: booltrue when this proxy routes through a CDN edge node rather than a
traditional SOCKS/HTTP proxy server.
cdn_provider: Option<String>CDN provider name when is_cdn_edge is true.
Advisory — used for monitoring and routing hints.
Examples: "cloudflare", "cloudfront", "azure-front-door".
tls_profile: Option<String>TLS fingerprint profile this proxy presents toward the upstream target.
Advisory identifier such as "chrome-131", "firefox-120", or
"curl". Use with CapabilityRequirement::require_tls_profile to
select proxies by their TLS stack identity. None means unknown.
Implementations§
Source§impl ProxyCapabilities
impl ProxyCapabilities
Sourcepub fn satisfies(&self, req: &CapabilityRequirement) -> bool
pub fn satisfies(&self, req: &CapabilityRequirement) -> bool
Returns true if every required flag in req is satisfied by self.
§Example
use stygian_proxy::types::{ProxyCapabilities, CapabilityRequirement};
let caps = ProxyCapabilities { supports_https_connect: true, ..Default::default() };
let req = CapabilityRequirement { require_https_connect: true, ..Default::default() };
assert!(caps.satisfies(&req));
let req2 = CapabilityRequirement { require_socks5_udp: true, ..Default::default() };
assert!(!caps.satisfies(&req2));Trait Implementations§
Source§impl Clone for ProxyCapabilities
impl Clone for ProxyCapabilities
Source§fn clone(&self) -> ProxyCapabilities
fn clone(&self) -> ProxyCapabilities
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProxyCapabilities
impl Debug for ProxyCapabilities
Source§impl Default for ProxyCapabilities
impl Default for ProxyCapabilities
Source§fn default() -> ProxyCapabilities
fn default() -> ProxyCapabilities
Source§impl<'de> Deserialize<'de> for ProxyCapabilities
impl<'de> Deserialize<'de> for ProxyCapabilities
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ProxyCapabilities
impl PartialEq for ProxyCapabilities
Source§fn eq(&self, other: &ProxyCapabilities) -> bool
fn eq(&self, other: &ProxyCapabilities) -> bool
self and other values to be equal, and is used by ==.