libafl 0.15.1

Slot your own fuzzers together and extend their features using Rust
Documentation
[build-dependencies.rustversion]
version = "1.0.17"

[dependencies.ahash]
default-features = false
version = "0.8.11"

[dependencies.arbitrary-int]
version = "1.2.7"

[dependencies.arrayvec]
default-features = false
optional = true
version = "0.7.6"

[dependencies.async-std]
features = ["attributes"]
optional = true
version = "1.13.0"

[dependencies.backtrace]
default-features = false
optional = true
version = "0.3.74"

[dependencies.bincode]
optional = true
version = "1.3.3"

[dependencies.bitbybit]
version = "=1.3.2"

[dependencies.bitvec]
features = ["serde"]
optional = true
version = "1.0.1"

[dependencies.clap]
optional = true
version = "4.5.18"

[dependencies.concat-idents]
optional = true
version = "1.1.5"

[dependencies.const_format]
version = "0.2.33"

[dependencies.const_panic]
default-features = false
version = "0.2.9"

[dependencies.crossterm]
optional = true
version = "0.28.1"

[dependencies.document-features]
optional = true
version = "0.2.10"

[dependencies.enumflags2]
optional = true
version = "0.7.10"

[dependencies.fastbloom]
default-features = false
optional = true
version = "0.8.0"

[dependencies.fs2]
optional = true
version = "0.4.3"

[dependencies.futures]
optional = true
version = "0.3.30"

[dependencies.hashbrown]
default-features = false
features = ["serde", "ahash"]
version = "0.14.5"

[dependencies.libafl_bolts]
default-features = false
features = ["alloc"]
version = "0.15.1"

[dependencies.libafl_derive]
default-features = true
optional = true
version = "0.15.1"

[dependencies.libafl_intelpt]
default-features = true
optional = true
version = "0.15.1"

[dependencies.libcasr]
optional = true
version = "2.12.1"

[dependencies.libipt]
optional = true
version = "0.2.0"

[dependencies.libm]
version = "0.2.8"

[dependencies.log]
version = "0.4.22"

[dependencies.meminterval]
features = ["serde"]
version = "0.4.1"

[dependencies.nix]
default-features = false
features = ["signal", "ptrace", "personality", "fs"]
optional = true
version = "0.29.0"

[dependencies.num-traits]
default-features = false
version = "0.2.19"

[dependencies.num_enum]
default-features = false
optional = true
version = "0.7.3"

[dependencies.postcard]
default-features = false
features = ["alloc"]
version = "1.0.10"

[dependencies.prometheus-client]
optional = true
version = "0.23.0"

[dependencies.pyo3]
optional = true
version = "0.23.2"

[dependencies.ratatui]
default-features = false
features = ["crossterm"]
optional = true
version = "0.29.0"

[dependencies.regex]
optional = true
version = "1.10.6"

[dependencies.regex-syntax]
optional = true
version = "0.8.4"

[dependencies.rustversion]
version = "1.0.17"

[dependencies.serde]
default-features = false
features = ["alloc"]
version = "1.0.210"

[dependencies.serde_json]
default-features = false
features = ["alloc"]
optional = true
version = "1.0.128"

[dependencies.serial_test]
default-features = false
features = ["logging"]
optional = true
version = "3.1.1"

[dependencies.tide]
optional = true
version = "0.16.0"

[dependencies.tokio]
features = ["sync", "net", "rt", "io-util", "macros", "rt-multi-thread", "time"]
optional = true
version = "1.40.0"

[dependencies.tuple_list]
version = "0.1.3"

[dependencies.typed-builder]
optional = true
version = "0.20.0"

[dependencies.uuid]
features = ["serde", "v4", "serde", "v4"]
optional = true
version = "1.10.0"

[dependencies.wait-timeout]
optional = true
version = "0.2.0"

[dev-dependencies.bytecount]
version = "0.6.8"

[dev-dependencies.serde_json]
default-features = false
features = ["alloc"]
version = "1.0.128"

[dev-dependencies.static_assertions]
version = "1.1.0"

[[example]]
name = "tui_mock"
path = "examples/tui_mock/main.rs"
required-features = ["std", "tui_monitor"]

[features]
afl_exec_sec = []
casr = ["libcasr", "std", "regex"]
cli = ["libafl_bolts/cli"]
cmin = ["z3"]
concolic_mutation = ["z3"]
corpus_btreemap = []
default = ["std", "derive", "llmp_compression", "llmp_small_maps", "llmp_broker_timeouts", "rand_trait", "fork", "gzip", "regex", "serdeany_autoreg", "libafl_bolts/xxh3", "tui_monitor"]
derive = ["libafl_derive", "libafl_bolts/derive"]
document-features = ["dep:document-features"]
errors_backtrace = ["libafl_bolts/errors_backtrace"]
fork = ["libafl_bolts/derive"]
frida_cli = ["cli", "libafl_bolts/frida_cli"]
gzip = ["libafl_bolts/gzip"]
handle_sigpipe = []
intel_pt = ["std", "dep:libafl_intelpt", "dep:libipt", "dep:nix", "dep:num_enum"]
intel_pt_export_raw = ["intel_pt", "libafl_intelpt/export_raw"]
introspection = []
llmp_bind_public = ["libafl_bolts/llmp_bind_public"]
llmp_broker_timeouts = ["std"]
llmp_compression = ["libafl_bolts/llmp_compression"]
llmp_debug = ["std", "libafl_bolts/llmp_debug"]
llmp_small_maps = ["libafl_bolts/llmp_small_maps"]
multi_machine = ["tokio", "std", "enumflags2", "ahash/std"]
multipart_inputs = ["arrayvec", "rand_trait"]
nautilus = ["std", "serde_json/std", "dep:pyo3", "rand_trait", "regex-syntax", "regex"]
prelude = ["libafl_bolts/prelude"]
prometheus_monitor = ["std", "async-std", "prometheus-client", "tide", "futures"]
qemu_cli = ["cli", "libafl_bolts/qemu_cli"]
rand_trait = ["libafl_bolts/rand_trait"]
regex = ["std", "dep:regex"]
serdeany_autoreg = ["libafl_bolts/serdeany_autoreg"]
share_objectives = []
std = ["serde_json", "serde_json/std", "dep:nix", "serde/std", "bincode", "wait-timeout", "uuid", "backtrace", "serial_test", "libafl_bolts/std", "typed-builder", "fastbloom", "fs2"]
tcp_compression = ["tcp_manager", "libafl_bolts/gzip"]
tcp_manager = ["tokio", "std"]
track_hit_feedbacks = ["std"]
tui_monitor = ["ratatui", "crossterm"]
unicode = ["libafl_bolts/alloc", "ahash/std", "serde/rc", "bitvec"]
value_bloom_feedback = ["fastbloom", "fastbloom/serde"]

[lib]
name = "libafl"
path = "src/lib.rs"

[lints.clippy]
cargo_common_metadata = "deny"
cast_possible_truncation = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
negative_feature_names = "allow"
ptr_as_ptr = "allow"
similar_names = "allow"
too_many_lines = "allow"
type_repetition_in_bounds = "allow"
unreadable_literal = "allow"
unsafe_derive_deserialize = "allow"
used_underscore_binding = "allow"

[lints.clippy.all]
level = "deny"
priority = -1

[lints.clippy.cargo]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "deny"
priority = -1

[lints.rust]
incomplete_features = "allow"
unexpected_cfgs = "forbid"

[lints.rust.warnings]
level = "deny"
priority = -1

[lints.rustdoc]
broken_intra_doc_links = "deny"

[package]
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"]
description = "Slot your own fuzzers together and extend their features using Rust"
documentation = "https://docs.rs/libafl"
edition = "2021"
keywords = ["fuzzing", "testing", "security"]
license = "MIT OR Apache-2.0"
name = "libafl"
readme = "README.md"
repository = "https://github.com/AFLplusplus/LibAFL/"
rust-version = "1.82"
version = "0.15.1"

[package.metadata.docs.rs]
all-features = true
features = ["document-features"]
rustc-args = ["--cfg", "docsrs"]

[target."cfg(unix)".dependencies.libc]
version = "0.2.159"

[target."cfg(unix)".dependencies.z3]
optional = true
version = "0.12.1"

[target."cfg(windows)".build-dependencies.windows]
version = "0.59.0"

[target."cfg(windows)".dependencies.windows]
features = ["Win32_Foundation", "Win32_System_Threading", "Win32_System_Diagnostics_Debug", "Win32_System_Kernel", "Win32_System_Memory", "Win32_Security", "Win32_System_SystemInformation"]
version = "0.59.0"