libafl_libfuzzer 0.16.0

libFuzzer shim which uses LibAFL with common defaults
[package]
name = "libafl_libfuzzer_runtime"
version = "0.16.0"
edition = "2024"
publish = false

[features]
default = ["interceptors"]
## Enables forking mode for the LibAFL launcher (instead of starting new processes)
fork = ["libafl/fork"]
track_hit_feedbacks = [
  "libafl/track_hit_feedbacks",
  "libafl_targets/track_hit_feedbacks",
]
tui_monitor = ["libafl/tui_monitor"]
interceptors = ["libafl_targets/libfuzzer_interceptors"]
no_link_main = ["libafl_targets/libfuzzer_no_link_main"]

[target.'cfg(not(windows))'.features]
## Enable the `fork` feature on non-windows platforms
default = ["fork", "tui_monitor"]

[profile.release]
lto = true
codegen-units = 1
opt-level = 3
debug = true

# debug-free release profile for fuzzbench due to space restrictions
[profile.release-fuzzbench]
inherits = "release"
debug = false
strip = true

[lib]
name = "afl_libfuzzer_runtime"     # historically, cargo-fuzz strips double-prefixes; maintain compat
crate-type = ["staticlib", "rlib"]

[dependencies]
libafl = { path = "../libafl", default-features = false, features = [
  "std",
  "derive",
  "llmp_compression",
  "rand_trait",
  "regex",
  "errors_backtrace",
  "serdeany_autoreg",
  "unicode",
] }
libafl_bolts = { path = "../libafl_bolts", default-features = false, features = [
  "std",
  "derive",
  "llmp_compression",
  "rand_trait",
  "serdeany_autoreg",
  "errors_backtrace",
] }
libafl_targets = { path = "../libafl_targets", features = [
  "sancov_8bit",
  "sancov_cmplog",
  "sancov_value_profile",
  "sancov_pcguard",
  "libfuzzer",
  "libfuzzer_oom",
  "libfuzzer_define_run_driver",
  "sanitizers_flags",
  "whole_archive",
  "sanitizer_interfaces",
] }

libc = "0.2.189"
log = { version = "0.4.33", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.52", default-features = false }
num-traits = { version = "0.2.19", default-features = true }
rand = "0.10.2"
serde = { version = "1.0.229", default-features = true, features = [
  "derive",
] } # serialization lib
hashbrown = { version = "0.17.1", default-features = true, features = [
  "serde",
] }

# for identifying if we can grimoire-ify
utf8-chars = "3.0.7"
env_logger = "0.11.11"

[build-dependencies]
bindgen = "0.72.1"
cc = { version = "1.4.0", features = ["parallel"] }