feroxfuzz 1.0.0-rc.13

Structure-aware, black box HTTP fuzzing library
Documentation
[package]
name = "feroxfuzz"
version = "1.0.0-rc.13"
edition = "2021"
authors = ["Ben 'epi' Risher (@epi052)"]
license = "Apache-2.0"
repository = "https://github.com/epi052/feroxfuzz"
categories = ["development-tools::testing"]
keywords = ["fuzzing", "testing", "security", "web"]
readme = "README.md"
description = "Structure-aware, black box HTTP fuzzing library"

[features]
default = ["async", "json"]

# AsyncResponse et al will [de]serialize the response body in addition to normal fields
serialize-body = ["serde", "typetag"]

# AsyncResponse et al can attempt to convert the response body to json
json = ["serde", "serde_json", "typetag"]

# wrapper around providing concrete async implementations via reqwest, tokio, and futures 
async = ["reqwest", "tokio", "futures"]

# wrapper around providing concrete serial implementations via reqwest 
blocking = ["reqwest/blocking"]

# wrapper around providing different encoders
encoders = ["base64", "hex"]

[dependencies]
# MIT Licenses
tuple_list = { version = "0.1" }
derive_more = { version = "2.1", features = [
    "constructor",
    "from",
    "into",
    "not",
    "sum",
] }
tracing = { version = "0.1", features = ["log"] }
## optional
tokio = { version = "1.48", optional = true, features = [
    "rt-multi-thread",
    "macros",
    "tracing",
] }
##
## logical break between licenses
##
# MIT / Apache Licenses
num = { version = "0.4" }
cfg-if = { version = "1.0" }
dyn-clone = { version = "1.0.20" }
url = { version = "2.5", features = ["serde"] }
## optional
serde = { version = "1.0", optional = true, features = ["derive", "rc"] }
serde_json = { version = "1.0", optional = true }
typetag = { version = "0.2.21", optional = true }
thiserror = { version = "2.0" }
reqwest = { version = "0.13.1", optional = true, features = [
    "socks",
] }
async-trait = { version = "0.1" }
regex = { version = "1.12" }
serde_regex = { version = "1.1.0" }
lazy_static = { version = "1.5" }
futures = { version = "0.3", optional = true }
base64 = { version = "0.22.1", optional = true }
hex = { version = "0.4.3", optional = true }
flume = { version = "0.12.0" }

[dev-dependencies]
http = { version = "1.4.0" }
tokio-test = { version = "0.4" }
httpmock = { version = "0.8" }
allocation-counter = { version = "0.8.1" }
tempdir = { version = "0.3.7" }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# docs.rs-specific configuration
[package.metadata.docs.rs]
# document all features
all-features = true

# defines the configuration attribute `docsrs`
rustdoc-args = ["--cfg", "docsrs"]

[[example]]
name = "battering-ram"
required-features = ["blocking"]

[[example]]
name = "blocking-regex"
required-features = ["blocking"]

[[example]]
name = "cartesian-product"
required-features = ["blocking"]

[[example]]
name = "cluster-bomb"
required-features = ["blocking"]

[[example]]
name = "pitchfork"
required-features = ["blocking"]

[[example]]
name = "sniper"
required-features = ["blocking"]

[[example]]
name = "start-at-wordset-offset"
required-features = ["blocking"]