Skip to content
SPECIFICTION
Get listed

AFL++ vs Jazzer

AFL++

github.com

Jazzer

github.com

Side by side

FigureAFL++Jazzer
Price from€1,666.67/moFree
Free planYesYes
Free trial——
Open source—Yes
WindowsYesYes
macOSYesYes
LinuxYesYes
AndroidYes—
API—Yes
Self-hostedYesYes
Plans published22
Spec score · Fuzz Testing Software8.9 (#1)8.6 (#4)
PurposeAFL++ is a coverage-guided fuzzer that mutates input and checks whether it reaches a new path in the target binary.Jazzer is a coverage-guided, in-process fuzzer for the JVM based on libFuzzer.

Plans

AFL++

  • AGPL-3.0-or-laterFree
  • Commercial license€20,000 a year

AFL++ pricing →

Jazzer

  • JazzerFree
  • Jazzer open-sourceFree

Jazzer pricing →

In their own words

AFL++

AFL++ is a coverage-guided fuzzer that changes input and checks whether a target binary reaches a new execution path. Its afl-cc compiler supports LTO, LLVM and GCC_PLUGIN instrumentation. The project also lists collision-free coverage, AFLfast++ power schedules, MOpt mutators, laf-intel and redqueen. Documentation covers source-available software, binary-only targets, network services and GUI programs, with build options for source-only, binary-only or combined distributions. A Docker image supports x86_64 and arm64; its example mounts target source at /src. On Linux, the installation guide recommends LLVM 18 or newer and gives LLVM 14 as the minimum. macOS build guidance covers x86_64 and arm64, but afl-clang-lto, afl-gcc-fast and qemu_mode do not work there. Fuzzing can strain hardware, consume substantial memory or disk, and create heavy filesystem activity. AFL++ is available free under AGPL terms; modified versions offered as network services must provide users the corresponding source. A commercial license is listed at €20,000 a year.

Visit github.com

Jazzer

Jazzer is a free, coverage-guided fuzzer for JVM applications, running in-process and based on libFuzzer. It supports Java, Kotlin, Scala, and Clojure targets, as well as JNI and native libraries. With JUnit 5.9.0 or newer, fuzz tests can run alongside regular unit tests. The @FuzzTest annotation lets Jazzer generate and mutate method inputs, including primitives, strings, arrays, and standard library classes. JUnit fuzz tests can use saved crashing inputs in regression mode or generate and mutate inputs to explore coverage. Built-in sanitizers detect Java security issues such as SSRF, file path traversal, and OS command injection, and provide feedback to guide fuzzing. The README documents use with Maven, Gradle, and Bazel. Jazzer can also run as a standalone binary or through its Java main class. Supported systems are Linux x86_64 and arm64, macOS 12 or newer on x86_64 and arm64, and Windows x86_64. The jazzer-junit package is available on Maven Central, and the repository identifies the project as licensed under Apache-2.0.

Visit github.com