1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//! wafrift-core — Façade crate re-exporting all WAF Rift modules.
//!
//! This crate is a convenience umbrella. Each module lives in its own
//! focused crate; this crate re-exports them all under a single namespace
//! so existing consumers (`wafrift-cli`, `wafrift-transport`, integration
//! tests) can continue using `wafrift_core::*`.
//!
//! # Examples
//!
//! Use the umbrella to drive a payload through three subsystems
//! without depending on each subcrate by name:
//!
//! ```
//! use wafrift_core::{encoding, grammar};
//!
//! // Classify, mutate, encode — three lego-blocks, one façade.
//! let p = "' OR 1=1 --";
//! assert_eq!(grammar::classify(p), grammar::PayloadType::Sql);
//!
//! let mutations = grammar::mutate(p, 3);
//! assert!(!mutations.is_empty());
//!
//! let encoded = encoding::encode(p, encoding::Strategy::UrlEncode).unwrap();
//! assert!(encoded.contains("%27"));
//! ```
//!
//! Use the re-exported types to build a request without naming
//! `wafrift_types`:
//!
//! ```
//! use wafrift_core::{Method, Request};
//!
//! let r = Request::get("https://example.com").header("X-Test", "1");
//! assert_eq!(r.method(), &Method::Get);
//! assert_eq!(r.headers().len(), 1);
//! ```
//!
//! # Crate structure
//!
//! | Crate | Purpose |
//! |-------------------------|-----------------------------------------------|
//! | `wafrift-types` | Core types: Request, Technique, EvasionResult |
//! | `wafrift-encoding` | Payload encoding + header obfuscation |
//! | `wafrift-grammar` | Grammar-aware payload mutations |
//! | `wafrift-content-type` | WAFFLED Content-Type switching |
//! | `wafrift-smuggling` | HTTP smuggling + HTTP/2 evasion |
//! | `wafrift-fingerprint` | Browser + TLS fingerprint profiles |
//! | `wafrift-detect` | WAF detection + response fingerprinting |
//! | `wafrift-evolution` | Genetic algorithm + differential + advisor |
//! | `wafrift-strategy` | Evasion strategy pipeline |
// ── Foundation types ──
pub use *;
// ── Technique modules (re-exported as submodules) ──
pub use wafrift_content_type as content_type;
pub use encoding;
pub use header;
pub use fingerprint;
pub use tls_fingerprint;
pub use grammar;
pub use h2_evasion;
pub use smuggling;
// ── Intelligence modules ──
pub use response_fingerprint;
pub use waf_detect;
pub use advisor;
pub use custom_rules;
pub use differential;
pub use evolution;
pub use intelligence;
// ── Pipeline ──
pub use host_state;
pub use strategy;
// ── Validation / oracle layer ──
pub use wafrift_oracle as oracle;
// ── Transport / network ──
pub use wafrift_pool as pool;
pub use wafrift_transport as transport;
// ── Discovery ──
pub use wafrift_recon as recon;
// Re-export key types that integration tests expect at crate root
pub use HostState;
pub use ;