awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
dvyukov avatar

dvyukov/go-fuzz

0
View on GitHub↗
4,853 stars·275 forks·Go·Apache-2.0·8 views

Go Fuzz

go-fuzz is a coverage-guided randomized testing tool for identifying crashes and logic bugs in Go code. It consists of a fuzzer that evolves random inputs based on code execution paths, an instrumentation tool that produces binaries for tracking coverage, and a seed corpus manager.

The tool utilizes compile-time binary instrumentation to monitor branch coverage and employs a feedback-driven mutation loop to prioritize inputs that reach new sections of the codebase. It includes capabilities for comparative differential testing to identify logic errors by executing different implementations of the same logic with the same randomized input.

The system handles the generation of randomized inputs to stress test complex format parsers and provides utilities for the minimization and deduplication of seed corpora. It can export instrumented archives for execution within a fuzzing engine on Linux.

Features

  • Coverage-Guided Fuzzing - A coverage-guided randomized testing tool specifically designed to find crashes and memory leaks in Go code.
  • Go Binary Instrumentation - A compiler-level utility that produces instrumented binaries for tracking code coverage during tests.
  • Binary Instrumentation - Instruments Go binaries to enable the tracking of branch coverage during randomized testing.
  • Coverage-Tracking Insertions - Injects coverage-tracking code into the target binary at compile time to monitor execution paths.
  • Fuzzing Mutation Loops - Employs a feedback-driven mutation loop to iteratively modify inputs based on coverage data.
  • Coverage-Guided Mutation - Uses code coverage metrics as a feedback loop to mutate and evolve inputs for deeper exploration.
  • Fuzzing Instrumentation - Generates instrumented binaries from Go packages to enable coverage-guided random testing.
  • Go Fuzzing Tools - Provides a complete coverage-guided randomized testing suite specifically for Go code.
  • Fuzzing Input Generators - Provides a wide variety of randomized data inputs to stress test complex format parsers and uncover edge cases.
  • Corpus Management - Manages and optimizes seed input corpora to increase the efficiency of the fuzzing process.
  • Corpus Minimization - Includes utilities to minimize seed input collections, keeping only those that trigger unique execution paths.
  • Differential Testing - Implements differential testing to find logic bugs by comparing multiple implementations of the same logic.
  • General Bug Detection - Identifies logic bugs in Go programs through differential testing and consistency verification.
  • Parser Fuzzing - Provides capabilities for stress testing complex format parsers with randomized inputs.
  • Fuzzing - Coverage-guided fuzzing tool for testing Go language packages and libraries.
  • Fuzzing Frameworks - Coverage-guided testing tool for Go packages.
  • Fuzzing Tools - Randomized testing system.
  • Testing and QA - Randomized testing system.
  • Testing and Quality Assurance - Randomized testing system.
  • Testing Frameworks - Randomized testing tool.

Star history

Star history chart for dvyukov/go-fuzzStar history chart for dvyukov/go-fuzz

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Go Fuzz

Similar open-source projects, ranked by how many features they share with Go Fuzz.
  • google/fuzzinggoogle avatar

    google/fuzzing

    3,772View on GitHub↗

    This project is a comprehensive software fuzzing knowledge base and technical guide designed for discovering software bugs and vulnerabilities. It serves as a resource for implementing coverage-guided, structure-aware, and hybrid fuzzing across various targets, including compiled binaries and hardware kernels. The resource provides specialized guidance on using grammars and defined data formats to generate syntactically valid inputs for complex APIs. It also details methods for combining grey-box fuzzing with symbolic execution to reach deep execution paths and utilizes binary instrumentation

    C++
    View on GitHub↗3,772
  • google/aflgoogle avatar

    google/AFL

    4,064View on GitHub↗

    AFL is a coverage-guided fuzzer and security vulnerability scanner used to identify software bugs and memory corruption by feeding programs mutated data. It functions as a binary instrumentation tool and a test case minimizer to locate crashes and isolate the smallest set of bytes causing a fault. The project distinguishes itself through its ability to operate as a parallel fuzzing orchestrator, distributing workloads across multiple CPU cores or networked machines. It utilizes dictionary-based mutation for complex file formats and performs input sensitivity analysis to identify critical sect

    C
    View on GitHub↗4,064
  • google/syzkallergoogle avatar

    google/syzkaller

    6,232View on GitHub↗

    Syzkaller is an unsupervised, coverage-guided kernel fuzzer that automatically generates and mutates system call sequences to find bugs in operating system kernels. It operates without human intervention, using a closed feedback loop of input generation, execution, crash detection, and corpus refinement to continuously explore kernel code paths. The fuzzer distinguishes itself by supporting multiple operating system kernels, including Linux, FreeBSD, and Windows, through per-platform syscall harnesses that abstract system call interfaces behind a common driver. It uses declarative description

    Go
    View on GitHub↗6,232
  • aflplusplus/aflplusplusAFLplusplus avatar

    AFLplusplus/AFLplusplus

    6,605View on GitHub↗

    AFL++ is a coverage-guided fuzzing framework that discovers crashes and hangs in software by mutating inputs while tracking which code paths are exercised. It functions as both a fuzzing engine and a campaign manager, supporting targets with or without source code through compile-time instrumentation, dynamic binary instrumentation, and emulation. The framework includes tools for crash triage and analysis, test case minimization, and campaign deployment across local or distributed environments. The framework distinguishes itself through its breadth of instrumentation backends, allowing users

    C
    View on GitHub↗6,605
See all 30 alternatives to Go Fuzz→

Frequently asked questions

What does dvyukov/go-fuzz do?

go-fuzz is a coverage-guided randomized testing tool for identifying crashes and logic bugs in Go code. It consists of a fuzzer that evolves random inputs based on code execution paths, an instrumentation tool that produces binaries for tracking coverage, and a seed corpus manager.

What are the main features of dvyukov/go-fuzz?

The main features of dvyukov/go-fuzz are: Coverage-Guided Fuzzing, Go Binary Instrumentation, Binary Instrumentation, Coverage-Tracking Insertions, Fuzzing Mutation Loops, Coverage-Guided Mutation, Fuzzing Instrumentation, Go Fuzzing Tools.

What are some open-source alternatives to dvyukov/go-fuzz?

Open-source alternatives to dvyukov/go-fuzz include: google/fuzzing — This project is a comprehensive software fuzzing knowledge base and technical guide designed for discovering software… google/afl — AFL is a coverage-guided fuzzer and security vulnerability scanner used to identify software bugs and memory… google/syzkaller — Syzkaller is an unsupervised, coverage-guided kernel fuzzer that automatically generates and mutates system call… aflplusplus/aflplusplus — AFL++ is a coverage-guided fuzzing framework that discovers crashes and hangs in software by mutating inputs while… google/clusterfuzz — ClusterFuzz is an automated platform that runs coverage-guided fuzzers at scale to find security and stability bugs in… appleboy/gofight.