uncrustify VS include-what-you-use

Compare uncrustify vs include-what-you-use and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
uncrustify include-what-you-use
5 39
2,797 3,798
0.6% 1.9%
9.2 9.4
3 days ago 9 days ago
C++ C++
GNU General Public License v3.0 only GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

uncrustify

Posts with mentions or reviews of uncrustify. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-13.

include-what-you-use

Posts with mentions or reviews of include-what-you-use. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-05.
  • Speed Up C++ Compilation
    3 projects | news.ycombinator.com | 5 Aug 2023
    Build Insights in Visual Studio, include-what-you-use).

    Looks like https://include-what-you-use.org/ might do that.

  • Is it good or bad practice to include headers that are indirectly included from other headers?
    2 projects | /r/cpp_questions | 24 Jun 2023
    If you are worried about includes, use https://github.com/include-what-you-use/include-what-you-use and stop thinking about it.
    2 projects | /r/cpp_questions | 24 Jun 2023
    Take a look at https://include-what-you-use.org/ . It sorts out the issue of what to include and where.
  • how do you guys manage a include file mess ?
    2 projects | /r/embedded | 19 Jun 2023
    Getting rid of that is not straightforard, though some tools can help with that
    2 projects | /r/embedded | 19 Jun 2023
    I just recently heard of a tool Include What You Use that is an automation tool to help determine which include files you need and doesn't include files you dont.
  • Is it appropiate to comment what a header is needed for?
    2 projects | /r/cpp_questions | 3 May 2023
    You can use the tool https://github.com/include-what-you-use/include-what-you-use to do this for for. It tracks included files and can give comment for what is used from each file. It also warns you when you include files that you don’t use
  • Hey Rustaceans! Got a question? Ask here (16/2023)!
    15 projects | /r/rust | 17 Apr 2023
    Invisible imports (e.g. traits). In Python, everything is fully namespaced (unless you from import * in which case all bets are off). It's always explicit where a name is coming from. C is the opposite: #include lets you refer to anything defined in the headers with no namespacing. That's why a common strategy (include what you use) has an associated code style: after every non-std #include you have a comment saying which of its definitions you are using. Of course, Rust is much less implicit, but I still sometimes struggle with traits. For example, you can use tokio::net::TcpStream, but you need to also use tokio::io::AsyncReadExt for the .read trait to be defined on TcpStream. This makes it hard (for me) to answer questions like "what traits are currently available in this scope?" and "why is this module being imported?"
  • I implemented a NASA image compression algorithm
    4 projects | /r/programming | 23 Mar 2023
  • IncludeGuardian - improve build times by removing expensive includes
    3 projects | /r/cpp | 21 Mar 2023
    Aside from being closed source and not available on all architectures, how does it compare to iwyu(https://include-what-you-use.org/) or clang's relatively recent include-fixer which is also accessible via clangd?
    3 projects | /r/cpp | 21 Mar 2023
    IWYU will look at the content of your sources and highlight include directives that it believes are unnecessary (and vice versa, recommend including files that you transitively depend on).

What are some alternatives?

When comparing uncrustify and include-what-you-use you can also consider the following projects:

cppinclude - Tool for analyzing includes in C++

coc-clangd - clangd extension for coc.nvim

cpplint - Static code checker for C++

clangd - clangd language server

latexindent.pl - Perl script to add indentation (leading horizontal space) to LaTeX files. It can modify line breaks before, during and after code blocks; it can perform text wrapping and paragraph line break removal. It can also perform string-based and regex-based substitutions/replacements. The script is customisable through its YAML interface.

Cppcheck - static analysis of C/C++ code

pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.

cmake-lint - Fork of https://github.com/richq/cmake-lint to continue maintenance

STL - MSVC's implementation of the C++ Standard Library.