-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
63 lines (49 loc) · 1.86 KB
/
Copy pathCargo.toml
File metadata and controls
63 lines (49 loc) · 1.86 KB
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
[package]
name = "blasthttp"
version = "0.9.0"
edition = "2024"
description = "Offensive-first HTTP library with Python bindings"
license = "GPL-3.0"
[lib]
# When building as a Python module, we need a cdylib (shared library).
# rlib keeps it usable as a normal Rust library too.
crate-type = ["cdylib", "rlib"]
[features]
# The "python" feature gate — enables PyO3 bindings.
# Off by default: `cargo build` gives pure Rust.
# Maturin activates it: `maturin build` -> Python module.
python = ["dep:pyo3", "dep:pyo3-async-runtimes", "pyo3/extension-module"]
[dependencies]
# Async runtime
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "net", "io-util"] }
# Stream combinators (buffer_unordered for concurrent batch dispatch)
futures = "0.3"
# Derive macros for h2 module error types
thiserror = "2"
# HTTP - our single-stack foundation
hyper = { version = "1", features = ["client", "http1", "http2"] }
hyper-util = { version = "0.1", features = ["client-legacy", "client-proxy", "http1", "http2", "tokio"] }
http-body-util = "0.1"
bytes = "1"
# TLS - direct OpenSSL for full cipher/version control
openssl = "0.10"
tokio-openssl = "0.6"
tower-service = "0.3"
# HTTP types (Uri, etc.)
http = "1"
# Decompression
flate2 = "1"
brotli = "8"
# Hashing — response fingerprinting (matches BBOT's hash format)
murmur3 = "0.5"
# CLI argument parsing
clap = { version = "4", features = ["derive"] }
# Serialization - config in, results out
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Python bindings — optional, only when "python" feature is enabled
pyo3 = { version = "0.27", features = ["extension-module"], optional = true }
pyo3-async-runtimes = { version = "0.27", features = ["attributes", "tokio-runtime"], optional = true }
[dev-dependencies]
# TLS test server — uses our custom OpenSSL to serve with weak ciphers
tokio-test = "0.4"