Back to Static Analysis

README

data/render/templates/README.md

latest6.5 KB
Original Source
<!-- 🚨🚨 DON'T EDIT THIS FILE DIRECTLY. Edit `data/tools.yml` instead. 🚨🚨 --> <a href="https://analysis-tools.dev/"> </a>

This repository lists static analysis tools for all programming languages, build tools, config files and more. The focus is on tools which improve code quality such as linters and formatters. The official website, analysis-tools.dev is based on this repository and adds rankings, user comments, and additional resources like videos for each tool.

Sponsors

This project would not be possible without the generous support of our sponsors.

<table> <tr> <td> <a href="https://www.pixee.ai/"> <picture > <source width="200px" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/analysis-tools-dev/assets/master/static/sponsors/pixee-light.png">
        </picture>
     </a>
  </td>
  <td>
     <a href="https://coderabbit.ai">
        
     </a>
  </td>
  <td>
     <a href="https://semgrep.dev/">
        
     </a>
  </td>
  <td>
     <a href="https://offensive360.com/">
        
     </a>
  </td>
</tr> </table>

If you also want to support this project, head over to our Github sponsors page.

Meaning of Symbols:

  • :copyright: stands for proprietary software. All other tools are Open Source.
  • :information_source: indicates that the community does not recommend to use this tool for new projects anymore. The icon links to the discussion issue.
  • :warning: means that this tool was not updated for more than 1 year, or the repo was archived.

Pull requests are very welcome!
Also check out the sister project, awesome-dynamic-analysis.

Table of Contents

Programming Languages

{% for (language, _) in linters %}

  • [{{ language.name }}](#{{ language.value }}) {%- endfor %}

Multiple Languages

Other

<details> <summary>Show Other</summary> {% for (tag, _) in others %} - [{{ tag.name }}](#{{ tag.value }}) {%- endfor %} </details>

Programming Languages

{%- for (language, linters) in linters %}

<a name="{{ language.value }}" /> <h2>{{ language.name }}</h2>

{% for linter in linters %}

  • {% if linter.deprecated.is_some() && linter.deprecated.unwrap() %}{{linter.name }}{% else %}[{{linter.name }}]({{linter.homepage }}){% endif %}{% if linter.discussion.is_some() %} :information_source:{% endif %}{% if linter.deprecated.is_some() && linter.deprecated.unwrap() %} :warning:{% endif %}{% if linter.license == "proprietary" %} :copyright:{% endif %} — {{ linter.description }} {% endfor %}

{%- endfor %}

Multiple languages

{% for linter in multi %}

  • {% if linter.deprecated.is_some() && linter.deprecated.unwrap() %}{{linter.name }}{% else %}[{{linter.name }}]({{linter.homepage }}){% endif %}{% if linter.discussion.is_some() %} :information_source:{% endif %}{% if linter.deprecated.is_some() && linter.deprecated.unwrap() %} :warning:{% endif %}{% if linter.license == "proprietary" %} :copyright:{% endif %} — {{ linter.description }} {% endfor %}

Other

{% for (tag, others) in others %}

<a name="{{ tag.value }}" /> <h2>{{ tag.name }}</h2>

{% for other in others %}

  • {% if other.deprecated.is_some() && other.deprecated.unwrap() %}{{ other.name }}{% else %}[{{ other.name }}]({{ other.homepage }}){% endif %}{% if other.discussion.is_some() %} :information_source:{% endif %}{% if other.deprecated.is_some() && other.deprecated.unwrap() %} :warning:{% endif %}{% if other.license == "proprietary" %} :copyright:{% endif %} — {{ other.description }} {% endfor %}

{%- endfor %}

More Collections

License

To the extent possible under law, Matthias Endler has waived all copyright and related or neighboring rights to this work. The underlying source code used to format and display that content is licensed under the MIT license.

Title image Designed by Freepik.