pub struct Proxy {
pub url: String,
pub proxy_type: ProxyType,
pub username: Option<String>,
pub password: Option<String>,
pub weight: u32,
pub tags: Vec<String>,
pub capabilities: ProxyCapabilities,
pub ip_class: IpClass,
pub target_compatibility: TargetVendorCompatibility,
}Expand description
A proxy endpoint with optional authentication credentials.
Debug output masks password to prevent accidental credential logging.
§Example
use stygian_proxy::types::{IpClass, Proxy, ProxyCapabilities, ProxyType, TrustTier, VendorId};
let compat = stygian_proxy::types::TargetVendorCompatibility::default()
.set(VendorId::Akamai, TrustTier::Preferred);
let p = Proxy {
url: "http://proxy.example.com:8080".into(),
proxy_type: ProxyType::Http,
username: Some("alice".into()),
password: Some("secret".into()),
weight: 1,
tags: vec!["prod".into()],
capabilities: ProxyCapabilities::default(),
ip_class: IpClass::Isp,
target_compatibility: compat,
};
let debug = format!("{p:?}");
assert!(debug.contains("***"), "password must be masked in Debug output");
assert_eq!(p.ip_class, IpClass::Isp);
assert_eq!(p.target_compatibility.get(VendorId::Akamai), Some(TrustTier::Preferred));Fields§
§url: StringThe proxy URL, e.g. http://proxy.example.com:8080.
proxy_type: ProxyType§username: Option<String>§password: Option<String>§weight: u32Relative selection weight for weighted rotation (default: 1).
User-defined tags for filtering and grouping.
capabilities: ProxyCapabilitiesProtocol-level capabilities advertised by this proxy.
ip_class: IpClassIP trust class for this proxy’s egress.
Defaults to IpClass::Unknown when not provided. Free-list
fetchers tag every ingested proxy as
IpClass::Datacenter; operator-curated pools can override
per-proxy. See the module-level docs for the trust hierarchy.
target_compatibility: TargetVendorCompatibilityPer-vendor trust tier overrides for this proxy.
Defaults to an empty map (no overrides). Free-list fetchers
populate this with
TargetVendorCompatibility::default_blocked to prevent
accidental use of free-list pools against premium vendors.