Freedom251 › Privacy Policy Generator Software
AFL++
by AFL++

What AFL++ is
AFL++ is a free, coverage-guided fuzzer for finding new execution paths in target programs. It mutates inputs and checks whether they lead to a path not previously reached in the target binary. Its afl-cc compiler supports LTO, LLVM, and GCC_PLUGIN instrumentation. Other listed techniques include collision-free coverage, AFLfast++ power schedules, MOpt mutators, laf-intel, and redqueen. Documentation covers source-available programs, binary-only targets, network services, and GUI programs, with build options for source-only, binary-only, or combined distributions. A Docker image is available for x86_64 and arm64. For Linux installation, the guide recommends LLVM 18 or newer and sets LLVM 14 as the minimum. macOS builds are documented for x86_64 and arm64, but afl-clang-lto, afl-gcc-fast, and qemu_mode do not work there. Fuzzing may strain hardware, consume substantial memory or disk, and generate heavy filesystem I/O. The stable branch is the stability-focused default; dev is bleeding edge and may fail to compile or contain bugs. The combined afl-fuzz program is AGPL-licensed, with source-offer requirements for modified versions offered as network services.
Who it suits
AFL++ is suited to developers and security practitioners fuzzing source-available or binary-only programs, network services, and GUI applications. It expects familiarity with build and instrumentation choices.
What it does well
- Supports source-available and binary-only targets.
- Documents fuzzing for network services and GUI programs.
- Docker image supports x86_64 and arm64.
- Coverage-guided mutation checks for new execution paths.
What to know first
- Fuzzing can consume substantial memory or disk.
- Some listed modes do not work on macOS.
- Linux installation recommends LLVM 18 or newer.
- Modified network services have AGPL source-offer obligations.
Limits
The free AGPL-3.0-or-later plan requires modified versions of the combined afl-fuzz program offered as network services to provide users the corresponding source. macOS does not support afl-clang-lto, afl-gcc-fast, or qemu_mode.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| AGPL-3.0-or-later | Use, study, modify, and distribute under AGPL terms · modified network services must offer corresponding source | Free |
| Commercial license | Donation to EFF or CCC; license lasts one year and can be renewed by donating again · For organizations that cannot or do not want to comply with AGPL · proof of donation must be emailed | €20,000 a year |
As github.com lists them, read 28 Sept 2026. The maker's own page has the final word.
Getting started
- Open the AFL++ project page on GitHub.
- Choose the stable branch for the stability-focused default, or dev for the bleeding-edge channel.
- On Linux, install LLVM 18 or newer; LLVM 14 is the documented minimum.
- Choose source-only, binary-only, or combined distribution build targets for the target program.
- Alternatively, use the Docker image for x86_64 or arm64 and mount target source at /src as in the example command.
Overview
AFL++ is a local, coverage-guided fuzzer for developers and security teams looking to expose paths their ordinary tests may miss. Its range of instrumentation and target types is a strong fit for teams prepared to manage the runtime environment; it is less suitable when resource use or AGPL obligations are hard constraints.
It mutates inputs and checks whether execution reaches a new path in the target binary. Documentation covers source-available programs, binary-only targets, network services, and GUI programs, with build targets for source-only fuzzing, binary-only fuzzing, or both.
Key features
Instrumentation and mutation
The central afl-cc compiler supports LTO, LLVM, and GCC_PLUGIN instrumentation. AFL++ also includes collision-free coverage, AFLfast++ power schedules, MOpt mutators, laf-intel, and redqueen. This breadth gives teams options for instrumentation and mutation rather than locking them into one mode. Coverage guidance, crash triage, and CI/CD support are also included.
Targets and deployment
A Docker image supports x86_64 and arm64; the example command mounts target source at /src. That offers a container-based route for local fuzzing, not a managed execution service. Fuzzing can strain hardware, consume substantial memory or disk, and generate heavy filesystem I/O, so sustained runs need an environment able to absorb those costs.
Release channels and support
The stable branch is the stability-focused default. The dev branch is bleeding edge and may fail to compile or contain bugs, making it a riskier choice for workflows that depend on predictable builds. For defects, maintainers direct users to GitHub issues, with the FAQ, best practices, and Fuzzing Zulip server as additional support resources.
Pricing
AFL++ is free to use, study, modify, and distribute under the AGPL-3.0-or-later plan at no cost. The important trade-off is licensing: modified versions offered as network services must provide users the corresponding source. The combined afl-fuzz program is AGPL as a whole. Individual source files marked Apache-2.0 may be reused under that license, while bundled third-party components retain their own licenses.
Organizations that cannot or do not want to comply with AGPL can choose the Commercial license for €20,000 a year. It lasts one year and can be renewed by donating again; the donation is billed to EFF or CCC, and proof of donation must be emailed. This is a substantial annual commitment, but it addresses the stated licensing constraint.
Platforms
AFL++ supports Linux, macOS, Windows, Android, and self-hosted use. On Linux, the installation guide recommends LLVM 18 or newer and sets LLVM 14 as the minimum. macOS builds are documented for x86_64 and arm64, but afl-clang-lto, afl-gcc-fast, and qemu_mode do not work there. That makes macOS a more limited option for workflows relying on those modes.
Who it's for
AFL++ suits teams working with C, C++, Python, or Rust targets that want local mutation-based fuzzing and can configure and provision their own execution environment. Its range of documented target types is valuable for mixed estates. Teams should look elsewhere if they need a hosted fuzzing service, cannot accommodate high memory, disk, or I/O demands, or cannot accept the AGPL terms or commercial-license cost.
Pros and cons
- Pros: Multiple compiler instrumentation modes and mutation features give teams flexibility in how they pursue coverage.
- Pros: Documentation covers source, binary-only, network, and GUI targets, with build options for source-only, binary-only, or combined distributions.
- Pros: Free use under AGPL includes study, modification, and distribution rights.
- Cons: Fuzzing can place heavy demands on hardware, memory, disk, and filesystem I/O.
- Cons: Three named modes do not work on macOS, narrowing the choices for Mac-based workflows.
- Cons: Modified network services must offer corresponding source under the AGPL; the commercial license costs €20,000 a year.
Alternatives
For stream-processing work rather than fuzz testing, Apache Beam offers an open-source programming model, with execution costs depending on the chosen runner and infrastructure. Apache NiFi is a free download under Apache License 2.0. Apache Storm is free and open source under Apache License 2.0. Arroyo is a self-hosted, single-binary engine under Apache 2.0. Feldera offers an open-source edition with a single node and container, full SQL support, all connectors, datasets larger than memory, and community support. Kafka Streams is free to download and has no formal or commercial support. Timeplus offers Proton as an open-source streaming SQL engine in a single binary under 500MB. Apache Spark is an open-source distributed data analytics engine with download, PyPI, Maven Central, and Docker options. These are stream-processing or data-analytics choices, not direct substitutes for AFL++'s fuzzing workflow.
Browse Stream Processing Software, Fuzz Testing Software, or Game Mod Managers to explore related categories.
Verdict
Choose AFL++ if you need a flexible local fuzzer for varied target types and can handle its resource demands and licensing terms. Its instrumentation and mutation breadth is the main reason to choose it; macOS mode gaps, substantial system load, and AGPL obligations are sound reasons to look elsewhere.
Verdict
AFL++ offers multiple instrumentation modes and target types, with free use under AGPL terms. Consider its hardware demands, macOS limitations, and license obligations before choosing a workflow.
Questions
Is AFL++ free?
Yes. The AGPL-3.0-or-later plan is free. A commercial license is also listed at €20,000 a year, with a one-year term that can be renewed by donating again.
What does the AGPL license require for network services?
Modified versions of the combined afl-fuzz program offered as network services must offer users the corresponding source. Individual files marked Apache-2.0 may be reused under that license, and bundled third-party components keep their own licenses.
Which platforms are listed?
AFL++ lists Android, Linux, macOS, self-hosted, and Windows. Its macOS guide covers x86_64 and arm64 builds, but says afl-clang-lto, afl-gcc-fast, and qemu_mode do not work there.
What LLVM version does AFL++ require?
The Linux installation guide recommends LLVM 18 or newer and gives LLVM 14 as the minimum.
What kinds of programs can it fuzz?
Its documentation covers source-available programs, binary-only targets, network services, and GUI programs. Build targets include source-only, binary-only, and combined distribution builds.
Where can users get help?
The maintainers direct users to GitHub issues for defects, the FAQ and best practices, and the Fuzzing Zulip server.
Facts from AFL++'s own pages
- Build modes
- Build targets include source-only fuzzing, binary-only fuzzing, or a distribution build with both. · github.com, 28 Sept 2026
- Compiler instrumentation
- Its central afl-cc compiler supports LTO, LLVM, and GCC_PLUGIN instrumentation modes. · github.com, 28 Sept 2026
- Container image
- The project provides a Docker image for x86_64 and arm64, with the target source mounted at /src in its example command. · github.com, 28 Sept 2026
- Founded
- 2019 · github.com, 28 Sept 2026
- Free plan
- Yes · github.com, 20 Sept 2026
- Hardware and storage limits
- The project warns that fuzzing can strain hardware, consume large amounts of memory or disk, and generate heavy filesystem I/O. · github.com, 28 Sept 2026
- License exceptions
- Individual source files marked Apache-2.0 may be reused under that license, while bundled third-party components retain their own licenses. · github.com, 28 Sept 2026
- License obligations
- The combined afl-fuzz program is AGPL as a whole, and modified versions offered as network services must offer users the corresponding source. · github.com, 28 Sept 2026
- Linux requirements
- The installation guide recommends LLVM 18 or newer and gives LLVM 14 as the minimum. · github.com, 28 Sept 2026
- macOS support
- The guide documents building on macOS x86_64 and arm64, but says afl-clang-lto, afl-gcc-fast, and qemu_mode do not work there. · github.com, 28 Sept 2026
- Mutation and coverage
- The project lists collision-free coverage, AFLfast++ power schedules, MOpt mutators, laf-intel, and redqueen among its features. · github.com, 28 Sept 2026
- Purpose
- AFL++ is a coverage-guided fuzzer that mutates input and checks whether it reaches a new path in the target binary. · github.com, 28 Sept 2026
- Release channels
- The stable branch is described as the stability-focused default, while dev is bleeding edge and may fail to compile or contain bugs. · github.com, 28 Sept 2026
- Support
- The maintainers direct users to GitHub issues for AFL++ defects, the FAQ and best practices, and the Fuzzing Zulip server. · github.com, 28 Sept 2026
- Target types
- The documentation covers fuzzing source-available programs, binary-only targets, network services, and GUI programs. · github.com, 28 Sept 2026
Where AFL++ stands on Freedom251
- Privacy Policy Generator Software#1 of 19
- Fuzz Testing Software#2 of 26
- Stream Processing Software#5 of 26
- Mod managers#35 of 78
- Game Mod Managers#43 of 79