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
include-what-you-use avatar

include-what-you-use/include-what-you-use

0
View on GitHub↗
4,704 stars·425 forks·C++·18 viewsinclude-what-you-use.org↗

Include What You Use

Include What You Use is a C++ include optimizer and header dependency analyzer. It identifies unused or missing header includes in source files to reduce project bloat and improve compilation performance.

The tool performs static analysis using a Clang-based abstract syntax tree to map symbol usage and track preprocessor effects across different build configurations. It can automatically rewrite source files by inserting or deleting preprocessor directives based on the calculated dependency graph.

The system integrates with compilation databases to determine the exact compiler flags used for each source file, enabling the analysis and pruning of dependencies across an entire project.

Features

  • Header Dependency Analysis - Provides specialized analysis to identify redundant or missing header inclusions to optimize C++ compilation times.
  • Recursive Include Optimization - Reduces project bloat and compilation times by optimizing recursive include paths and pruning unused headers.
  • AST-Based Source Transformations - Implements AST-based source transformations to automatically insert or delete preprocessor directives in source files.
  • C++ Build Optimization - Optimizes C++ build performance by reducing compilation overhead through the pruning of unnecessary header includes.
  • Header - Ensures every source file includes exactly the headers it needs for correct compilation without redundancy.
  • Symbol Usage Tracking - Maps every identifier in a file against declarations provided by included headers to track symbol usage.
  • C++ Header Optimizers - Identifies and removes unused header files to reduce project bloat and accelerate compilation speeds.
  • Preprocessors - Tracks C-family preprocessor macros and conditional compilation to ensure accurate dependency analysis across build configurations.
  • Compiler-Integrated AST Parsing - Utilizes the Clang compiler frontend to parse source code into an abstract syntax tree for precise symbol tracking.
  • Build System Integration - Connects the analysis engine to compilers and compilation databases to automate project-wide header optimization.
  • Automated Fixers - Automatically applies programmatic corrections to source files by adding or removing include directives based on static analysis.
  • Compilation Database Integrations - Integrates with JSON compilation databases to determine the exact compiler flags used for every source file.
  • Automated Code Fixes - Provides a command-line interface to automatically apply source code edits that fix missing or unused includes.
  • Static Analysis - Uses the Clang toolset for static analysis of source code patterns to manage header dependencies.
  • Build Systems - A tool to identify and fix unnecessary header inclusions.
  • Developer Tools - Tool to analyze includes in source files
  • Development Tools - Identify and fix unnecessary header inclusions.
  • Static Analysis - Analyzes include files to optimize build times and dependencies.
  • Windows Environments - Listed in the “Windows Environments” section of the Awesome C awesome list.

Star history

Star history chart for include-what-you-use/include-what-you-useStar history chart for include-what-you-use/include-what-you-use

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

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

Projects sharing features with Include What You Use

These projects share indexed features with Include What You Use. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • federico-busato/modern-cpp-programmingfederico-busato avatar

    federico-busato/Modern-CPP-Programming

    15,808View on GitHub↗

    This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu

    HTMLc-plus-pluscode-qualitycompilers
    View on GitHub↗15,808
  • voidzero-dev/vite-plusvoidzero-dev avatar

    voidzero-dev/vite-plus

    5,007View on GitHub↗

    vite-plus is a unified web development toolchain and command line interface designed to manage Vite builds, JavaScript runtimes, and package managers from a single entry point. It functions as a JavaScript runtime manager for installing and pinning language versions, a monorepo task orchestrator for dependency-aware script execution, and a project scaffolding engine for bootstrapping applications and libraries. The project distinguishes itself by consolidating a full development lifecycle into one tool, featuring a unified static analysis engine that performs type-checking, linting, and forma

    Rust
    View on GitHub↗5,007
  • crate-ci/typoscrate-ci avatar

    crate-ci/typos

    4,002View on GitHub↗

    Typos is a source code spell checker and automated typo fixer designed to detect and correct spelling errors across programming languages and project files. It functions as a CI spelling validator and SARIF compatible linter, allowing projects to prevent misspelled text from reaching production. The tool features a customizable dictionary engine that utilizes TOML configuration and locale-specific dictionaries to manage project-specific terminology. It differentiates itself by splitting programming language identifiers into individual words for validation and verifying the spelling of filenam

    Rust
    View on GitHub↗4,002
  • google/sanitizersgoogle avatar

    google/sanitizers

    12,402View on GitHub↗

    This project is a suite of runtime diagnostic tools designed to detect memory leaks, concurrency races, and language-specification violations during software execution. It provides a collection of dynamic analysis tools that identify addressability issues, uninitialized memory usage, and memory safety bugs in applications. The toolset includes a thread safety analyzer to identify data races and deadlocks in concurrent code, as well as an undefined behavior sanitizer to detect operations that violate language specifications. The system covers broad capabilities in memory safety monitoring and

    C
    View on GitHub↗12,402
Compare all 30 related projects→

Frequently asked questions

What does include-what-you-use/include-what-you-use do?

Include What You Use is a C++ include optimizer and header dependency analyzer. It identifies unused or missing header includes in source files to reduce project bloat and improve compilation performance.

What are the main features of include-what-you-use/include-what-you-use?

The main features of include-what-you-use/include-what-you-use are: Header Dependency Analysis, Recursive Include Optimization, AST-Based Source Transformations, C++ Build Optimization, Header, Symbol Usage Tracking, C++ Header Optimizers, Preprocessors.

Which projects share features with include-what-you-use/include-what-you-use?

Projects with overlapping indexed features include: federico-busato/modern-cpp-programming — This project is a comprehensive educational resource and programming course covering C++ language semantics and… voidzero-dev/vite-plus — vite-plus is a unified web development toolchain and command line interface designed to manage Vite builds, JavaScript… crate-ci/typos — Typos is a source code spell checker and automated typo fixer designed to detect and correct spelling errors across… rhysu/c99sh — A shebang-friendly script for "interpreting" single C99, C11, and C++ files, including rcfile support. gperftools/gperftools — gperftools is a collection of specialized tools for profiling CPU usage, detecting memory errors, and providing… google/sanitizers — This project is a suite of runtime diagnostic tools designed to detect memory leaks, concurrency races, and…