pub struct FingerprintProfile {
pub name: String,
pub platform: PlatformProfile,
pub browser: BrowserProfile,
pub screen: ScreenProfile,
pub hardware: HardwareProfile,
pub webgl: WebGlProfile,
pub network: NetworkProfile,
pub noise_seed: NoiseSeed,
}Expand description
A complete, internally consistent device identity for anti-fingerprinting.
All signals (UA, platform, screen, hardware, WebGL GPU, noise seed, network) are bundled together so they can never contradict each other.
Use one of the built-in constructors or call FingerprintProfile::validate
to check a custom profile for consistency.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::windows_chrome_136_rtx3060();
let _ = p.validate();Fields§
§name: StringHuman-readable profile name (e.g. "windows-chrome-136-rtx3060").
platform: PlatformProfilePlatform / OS identity.
browser: BrowserProfileBrowser identity.
screen: ScreenProfileScreen dimensions.
hardware: HardwareProfileHardware concurrency and memory.
webgl: WebGlProfileDetailed WebGL device profile.
network: NetworkProfileNetwork Information API values.
noise_seed: NoiseSeedDeterministic noise seed for session-unique fingerprint perturbation.
Implementations§
Source§impl FingerprintProfile
impl FingerprintProfile
Sourcepub fn windows_chrome_136_rtx3060() -> Self
pub fn windows_chrome_136_rtx3060() -> Self
Windows 10, Chrome 136, NVIDIA RTX 3060 — primary test profile.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::windows_chrome_136_rtx3060();
assert!(p.validate().is_ok());Sourcepub fn windows_chrome_136_gtx1660() -> Self
pub fn windows_chrome_136_gtx1660() -> Self
Windows 10, Chrome 136, NVIDIA GTX 1660 Ti.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::windows_chrome_136_gtx1660();
assert!(p.validate().is_ok());Sourcepub fn macos_chrome_136_m1() -> Self
pub fn macos_chrome_136_m1() -> Self
macOS Sonoma, Chrome 136, Apple M1.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::macos_chrome_136_m1();
assert!(p.validate().is_ok());Sourcepub fn linux_chrome_136_intel() -> Self
pub fn linux_chrome_136_intel() -> Self
Linux, Chrome 136, Intel UHD 630.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::linux_chrome_136_intel();
assert!(p.validate().is_ok());Sourcepub fn windows_edge_136_rtx3060() -> Self
pub fn windows_edge_136_rtx3060() -> Self
Windows 10, Microsoft Edge 136, NVIDIA RTX 3060.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::windows_edge_136_rtx3060();
assert!(p.validate().is_ok());Sourcepub fn android_chrome_136_pixel() -> Self
pub fn android_chrome_136_pixel() -> Self
Android 13 Pixel 7, Chrome 136, Adreno 730.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::android_chrome_136_pixel();
assert!(p.validate().is_ok());Sourcepub fn random_weighted() -> Self
pub fn random_weighted() -> Self
Return a profile sampled by real-world market-share distribution.
Windows ~65%, macOS ~20%, Linux ~5%, Android ~10%.
§Example
use stygian_browser::profile::FingerprintProfile;
let p = FingerprintProfile::random_weighted();
assert!(p.validate().is_ok());Sourcepub fn validate(&self) -> Result<(), Vec<String>>
pub fn validate(&self) -> Result<(), Vec<String>>
Validate internal consistency of the profile.
Returns Ok(()) if all checks pass, or Err(Vec<String>) with a list
of human-readable error messages explaining each inconsistency.
§Example
use stygian_browser::profile::FingerprintProfile;
let mut p = FingerprintProfile::windows_chrome_136_rtx3060();
// Deliberately break it: claim macOS platform but keep Windows WebGL.
p.platform.platform_string = "MacIntel".into();
// Observe baseline validation outcome for the selected profile.
let _ = p.validate();
// Insert a real inconsistency: desktop with suspicious touch points in [1, 4].
p.platform.max_touch_points = 3;
assert!(p.validate().is_err());Trait Implementations§
Source§impl Clone for FingerprintProfile
impl Clone for FingerprintProfile
Source§fn clone(&self) -> FingerprintProfile
fn clone(&self) -> FingerprintProfile
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more