truestack 0.2.0

Security-aware technology fingerprinting — detects what is really running, not what the version string claims
Documentation
#![forbid(unsafe_code)]
#![warn(missing_docs)]
#![warn(clippy::pedantic)]
#![cfg_attr(
    not(test),
    deny(
        clippy::unwrap_used,
        clippy::expect_used,
        clippy::todo,
        clippy::unimplemented,
        clippy::panic
    )
)]
#![allow(
    clippy::module_name_repetitions,
    clippy::must_use_candidate,
    clippy::missing_errors_doc
)]

//! # truestack — Security-aware technology fingerprinting
//!
//! Security-aware technology fingerprinting for web servers.
//!
//! Unlike traditional fingerprinting tools that report what the version string
//! claims, `truestack` is designed to determine the **true** security posture
//! of a target — including detection of backported patches, behavioural
//! differential probing, and CVE correlation.
//!
//! ## Core capabilities
//!
//! - **YAML-driven rule engine** — signal-based detection from HTTP headers,
//!   response bodies, and cookies. Ship your own rules or use the embedded set.
//! - **Security header auditing** — checks for HSTS, CSP, X-Frame-Options and
//!   friends, including deep CSP bypass analysis (15 known bypass domains).
//! - **Favicon hashing** — Shodan-compatible MurmurHash3 for cross-service
//!   pivot (`http.favicon.hash:{value}`).
//! - **Version extraction** — parses `Server`, `X-Powered-By`, and other
//!   headers to extract semver-style version strings.
//!
//! ## Quick start
//!
//! ```rust
//! use truestack::fingerprints;
//!
//! let headers = vec![
//!     ("Server".to_string(), "nginx/1.21.0".to_string()),
//! ];
//! let techs = fingerprints::detect(&headers, "");
//! assert_eq!(techs[0].name, "nginx");
//! assert_eq!(techs[0].version.as_deref(), Some("1.21.0"));
//! ```

/// Local HTTP compatibility shim backed by reqwest..
pub mod reqwest {
    pub use reqwest::*;
}

pub mod behavior;
pub mod favicon;
pub mod fingerprints;
pub mod html;
pub mod implied;
pub mod postprocess;
pub mod security_headers;
pub mod types;
pub mod version_intel;
pub mod waf;

/// Re-export shared security finding types.
pub use secfinding::{Evidence as SecEvidence, Finding, Severity};
pub use types::{HeaderEvidence, TechCategory, Technology};