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

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 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++·6 vuesinclude-what-you-use.org↗

Include What You Use

Include What You Use est un optimiseur d'inclusions C++ et un analyseur de dépendances d'en-têtes. Il identifie les inclusions d'en-têtes inutilisées ou manquantes dans les fichiers sources pour réduire l'encombrement du projet et améliorer les performances de compilation.

L'outil effectue une analyse statique en utilisant un arbre de syntaxe abstraite basé sur Clang pour mapper l'utilisation des symboles et suivre les effets du préprocesseur à travers différentes configurations de build. Il peut réécrire automatiquement les fichiers sources en insérant ou supprimant des directives de préprocesseur basées sur le graphe de dépendances calculé.

Le système s'intègre aux bases de données de compilation pour déterminer les flags de compilation exacts utilisés pour chaque fichier source, permettant l'analyse et l'élagage des dépendances à travers un projet entier.

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.
  • Systèmes de build - A tool to identify and fix unnecessary header inclusions.
  • Outils de développement - Tool to analyze includes in source files
  • Outils de développement - 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.

Historique des stars

Graphique de l'historique des stars pour include-what-you-use/include-what-you-useGraphique de l'historique des stars pour include-what-you-use/include-what-you-use

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Questions fréquentes

Que fait include-what-you-use/include-what-you-use ?

Include What You Use est un optimiseur d'inclusions C++ et un analyseur de dépendances d'en-têtes. Il identifie les inclusions d'en-têtes inutilisées ou manquantes dans les fichiers sources pour réduire l'encombrement du projet et améliorer les performances de compilation.

Quelles sont les fonctionnalités principales de include-what-you-use/include-what-you-use ?

Les fonctionnalités principales de include-what-you-use/include-what-you-use sont : Header Dependency Analysis, Recursive Include Optimization, AST-Based Source Transformations, C++ Build Optimization, Header, Symbol Usage Tracking, C++ Header Optimizers, Preprocessors.

Quelles sont les alternatives open-source à include-what-you-use/include-what-you-use ?

Les alternatives open-source à include-what-you-use/include-what-you-use incluent : 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…

Alternatives open source à Include What You Use

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Include What You Use.
  • federico-busato/modern-cpp-programmingAvatar de federico-busato

    federico-busato/Modern-CPP-Programming

    15,808Voir sur 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
    Voir sur GitHub↗15,808
  • voidzero-dev/vite-plusAvatar de voidzero-dev

    voidzero-dev/vite-plus

    5,007Voir sur 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
    Voir sur GitHub↗5,007
  • crate-ci/typosAvatar de crate-ci

    crate-ci/typos

    4,002Voir sur 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
    Voir sur GitHub↗4,002
  • google/sanitizersAvatar de google

    google/sanitizers

    12,402Voir sur 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
    Voir sur GitHub↗12,402
Voir les 30 alternatives à Include What You Use→