diff --git a/.cursorrules b/.cursorrules new file mode 120000 index 0000000000..47dc3e3d86 --- /dev/null +++ b/.cursorrules @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/--suggest-tool.yaml b/.github/ISSUE_TEMPLATE/--suggest-tool.yaml new file mode 100644 index 0000000000..378b540c76 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/--suggest-tool.yaml @@ -0,0 +1,90 @@ +name: ⚙️ Suggest Tool +description: Suggest a new tool to be added to the list +title: "⚙️ New Tool Suggestion: " +labels: [suggestion] +assignees: +- mre +body: +- type: markdown + attributes: + value: | + ❤️ Thank you for taking the time to suggest a new tool! + +- type: input + attributes: + label: Tool Name? + validations: + required: true + +- type: textarea + attributes: + label: Description + description: What does the tool do? A clear and concise description of what you want to happen. + validations: + required: true + +- type: checkboxes + attributes: + label: Tool category + description: A tool can be a formatter, a linter, or both. + options: + - label: 🌈 Formatter + required: false + - label: 🔍 Linter + required: false + +- type: textarea + attributes: + label: tags + description: A list of tags (languages) that this tool supports. (See [here](https://github.com/analysis-tools-dev/static-analysis/blob/master/data/tags.yml) for a list of options) + placeholder: | + * c + * cpp + * go + * js + validations: + required: true + +- type: input + attributes: + label: License + description: The license of the tool (e.g. MIT, Apache, or proprietary) + validations: + required: false + +- type: checkboxes + attributes: + label: How can the tool be used? + options: + - label: Command Line + required: false + - label: Web Service + required: false + - label: IDE-Plugin + required: false + +- type: input + attributes: + label: Source URL + description: URL to the source code (if the tool is open source) + placeholder: https://github.com/tool/repo + validations: + required: false + +- type: input + attributes: + label: Source URL + description: URL to tool homepage (if any) + placeholder: https://example.com + validations: + required: false + +- type: textarea + attributes: + label: Resources + description: Found a nice product video or a blog post about a tool? Please add it here. + placeholder: | + * [Product Video](https://www.youtube.com/watch?v=dQw4w9WgXcQ) + * [Article](https://analysis-tools.dev/blog/our-mission) + validations: + required: false diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 120000 index 0000000000..be77ac83a1 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1 @@ +../AGENTS.md \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..7f8811b529 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: cargo + directory: "/data/render" + schedule: + interval: daily + time: "11:00" + open-pull-requests-limit: 10 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 04c8589506..d2b816df7a 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,10 +1,21 @@ -- New tools have to be added to `data/tools.yml` (NOT directly in the `README.md`). -- If you propose to deprecate a tool, you have to provide a reason below. -- More details in the contributors guide, `CONTRIBUTING.md` +👋 Thank you for your contribution! We really appreciate your help in keeping the list awesome. +Please make sure to check all the items below before submitting. ---> +### 🛠️ Tool Requirements +- [ ] I have not changed the `README.md` directly. (New tools go in `data/tools/`) +- [ ] The tool has **more than 20 stars** on GitHub (or similar impact). +- [ ] The project has existed for **at least 3 months**. +- [ ] The project is **actively maintained**. +- [ ] The description in the YAML file is **under 500 characters**. diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 0000000000..88babf8424 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,13 @@ +name: auto-merge + +on: + pull_request: + +jobs: + auto-merge: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ahmadnassri/action-dependabot-auto-merge@v2 + with: + github-token: ${{ secrets.AUTOMERGE_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ed6c81e12..3b34bf0fd4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,9 +5,80 @@ on: branches: [master] jobs: - build: + readme-check: runs-on: ubuntu-latest + permissions: + pull-requests: write + contents: read steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check README.md was not edited directly + id: readme + run: | + TRUSTED="mre jakubsacha" + AUTHOR="${{ github.event.pull_request.user.login }}" + for u in $TRUSTED; do + if [ "$AUTHOR" = "$u" ]; then + echo "trusted=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + done + if git diff --name-only origin/master...HEAD | grep -q "^README.md$"; then + echo "modified=true" >> "$GITHUB_OUTPUT" + fi + + - name: Comment and fail on direct README edit + if: steps.readme.outputs.modified == 'true' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR: ${{ github.event.pull_request.number }} + REPO: ${{ github.repository }} + run: | + gh api "repos/$REPO/issues/$PR/comments" \ + -f body="README.md was edited directly. The README is generated from the YAML files in \`data/tools/\`. Please add or edit the corresponding file in \`data/tools/\` instead and do not touch README.md." \ + --silent + echo "README.md must not be edited directly." >&2 + exit 1 + + render: + runs-on: ubuntu-latest + permissions: + pull-requests: write + contents: read + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Render list - run: make render + id: render + run: | + make render-skip-deprecated 2>&1 | tee /tmp/render-output.txt + exit ${PIPESTATUS[0]} + + - name: Comment render error on failure + if: failure() && steps.render.outcome == 'failure' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR: ${{ github.event.pull_request.number }} + REPO: ${{ github.repository }} + run: | + OUTPUT=$(grep -E "^Error" /tmp/render-output.txt | head -20) + { + echo "The render step failed with the following error:" + echo "" + echo '```' + echo "$OUTPUT" + echo '```' + echo "" + echo "Please check your YAML file in \`data/tools/\` against the format used by other tools in that directory." + } > /tmp/render-comment.txt + gh api "repos/$REPO/issues/$PR/comments" \ + -f body=@/tmp/render-comment.txt \ + --silent diff --git a/.github/workflows/links.yml b/.github/workflows/links.yml index b381c8eab9..9e45336da5 100644 --- a/.github/workflows/links.yml +++ b/.github/workflows/links.yml @@ -1,6 +1,8 @@ name: Links on: + repository_dispatch: + workflow_dispatch: schedule: - cron: "00 18 * * *" @@ -9,15 +11,18 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - name: Link Checker - uses: peter-evans/link-checker@v1 + uses: lycheeverse/lychee-action@master with: - # ldra.com sends gzipped content to all clients including curl, which fails the checker - # See https://github.com/analysis-tools-dev/static-analysis/issues/350 - args: README.md --exclude "https://ldra.com$" --timeout 10 --concurrency 5 + args: --accept 200,204,429 README.md + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + - name: Create Issue From File - uses: peter-evans/create-issue-from-file@v2 + if: env.lychee_exit_code != 0 + uses: peter-evans/create-issue-from-file@v4 with: title: Link Checker Report - content-filepath: ./link-checker/out.md + content-filepath: ./lychee/out.md labels: report, automated issue diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 0000000000..109e49f3de --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,108 @@ +name: PR Check + +on: + pull_request: + branches: [master] + paths: + - "data/tools/**.yml" + - "ci/**" + workflow_dispatch: + inputs: + pr_number: + description: "PR number to check" + required: true + tool_files: + description: "Space-separated list of tool YAML files to check (e.g. data/tools/foo.yml)" + required: true + +jobs: + pr-check: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check out PR head for manual runs + if: github.event_name == 'workflow_dispatch' + run: | + git fetch origin "refs/pull/${{ inputs.pr_number }}/head" + git checkout FETCH_HEAD -- ${{ inputs.tool_files }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Get changed tool files + id: changed + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + FILES="${{ inputs.tool_files }}" + else + FILES=$(git diff --name-only --diff-filter=A origin/master...HEAD -- 'data/tools/*.yml' 'data/tools/*.yaml' | tr '\n' ' ') + fi + FILES=$(echo "$FILES" | xargs) # trim leading/trailing whitespace + echo "files=$FILES" >> "$GITHUB_OUTPUT" + echo "has_files=$( [ -n "$FILES" ] && echo true || echo false )" >> "$GITHUB_OUTPUT" + + - name: Skip: no tool files to check + if: steps.changed.outputs.has_files == 'false' + run: | + mkdir -p pr-check-output + echo "${{ github.event_name == 'workflow_dispatch' && inputs.pr_number || github.event.pull_request.number }}" > pr-check-output/pr_number.txt + echo "passed" > pr-check-output/result.txt + + - name: Install Rust toolchain + if: steps.changed.outputs.has_files == 'true' + uses: dtolnay/rust-toolchain@stable + + - name: Cache cargo registry + if: steps.changed.outputs.has_files == 'true' + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + ci/target + key: pr-check-${{ runner.os }}-${{ hashFiles('ci/Cargo.lock') }} + restore-keys: | + pr-check-${{ runner.os }}- + + - name: Build pr-check + if: steps.changed.outputs.has_files == 'true' + run: cargo build --release --manifest-path ci/Cargo.toml -p pr-check + + - name: Run pr-check + if: steps.changed.outputs.has_files == 'true' + id: run-check + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + PR_NUMBER: ${{ github.event_name == 'workflow_dispatch' && inputs.pr_number || github.event.pull_request.number }} + # For pull_request events (including forks), write the comment to a + # file instead of posting it directly. The fork's GITHUB_TOKEN does + # not have write access to the base repository, so direct posting + # returns 403. The pr-comment workflow picks up this artifact and + # posts the comment with the right permissions. + COMMENT_OUTPUT_FILE: ${{ github.event_name == 'pull_request' && 'pr-check-output/comment.md' || '' }} + run: | + mkdir -p pr-check-output + echo "$PR_NUMBER" > pr-check-output/pr_number.txt + if ci/target/release/pr-check ${{ steps.changed.outputs.files }}; then + echo "passed" > pr-check-output/result.txt + else + echo "failed" > pr-check-output/result.txt + fi + + - name: Upload check results + if: always() && github.event_name == 'pull_request' + uses: actions/upload-artifact@v4 + with: + name: pr-check-output + path: pr-check-output/ + + - name: Fail if checks did not pass + if: always() + run: | + result=$(cat pr-check-output/result.txt 2>/dev/null || echo "failed") + [ "$result" = "passed" ] diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml new file mode 100644 index 0000000000..9639652e75 --- /dev/null +++ b/.github/workflows/pr-comment.yml @@ -0,0 +1,40 @@ +name: PR Check Comment + +on: + workflow_run: + workflows: ["PR Check"] + types: [completed] + +jobs: + comment: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Download check results + uses: actions/download-artifact@v4 + with: + name: pr-check-output + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + continue-on-error: true + + - name: Post or update PR comment + if: hashFiles('pr_number.txt') != '' && hashFiles('comment.md') != '' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + run: | + PR_NUMBER=$(cat pr_number.txt) + COMMENT_BODY=$(cat comment.md) + + EXISTING_ID=$(gh api "repos/$GH_REPO/issues/$PR_NUMBER/comments" \ + --jq '[.[] | select(.body | contains(""))] | first | .id // empty') + + if [ -n "$EXISTING_ID" ]; then + gh api --method PATCH "repos/$GH_REPO/issues/comments/$EXISTING_ID" \ + --field body="$COMMENT_BODY" + else + gh api --method POST "repos/$GH_REPO/issues/$PR_NUMBER/comments" \ + --field body="$COMMENT_BODY" + fi diff --git a/.github/workflows/render.yml b/.github/workflows/render.yml index 8d73ab04c4..83df9f2108 100644 --- a/.github/workflows/render.yml +++ b/.github/workflows/render.yml @@ -7,14 +7,33 @@ on: jobs: build: runs-on: ubuntu-latest + + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push the + # added or changed files to the repository. + contents: write + steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Render list run: make render + env: + GITHUB_TOKEN: ${{ github.token }} + - uses: stefanzweifel/git-auto-commit-action@v4.1.2 with: - branch: ${{ github.head_ref }} commit_message: Commit list commit_user_name: Analysis Tools Bot commit_user_email: bot@analysis-tools.dev commit_author: Analysis Tools Bot + + - name: Redeploy website + uses: peter-evans/repository-dispatch@v3 + with: + token: ${{ secrets.REPO_ACCESS_TOKEN }} + repository: analysis-tools-dev/website-next + event-type: rebuild diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 615dcc6740..0e6fdb0d3b 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -7,7 +7,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v1.1.0 + - uses: actions/stale@v4.1.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: > diff --git a/.github/workflows/stats.yml b/.github/workflows/stats.yml new file mode 100644 index 0000000000..e1d622dd83 --- /dev/null +++ b/.github/workflows/stats.yml @@ -0,0 +1,48 @@ +name: Stats + +on: + repository_dispatch: + workflow_dispatch: + # Disable cron for now as we have not migrated our analytics yet + # schedule: + # - cron: "00 22 * * *" + +jobs: + stats: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + token: ${{ secrets.GH_STATS_COMMIT_TOKEN }} + + - name: Install logcli + run: | + rm -rf logcli.zip logcli-linux-amd64 + wget -nc -q -O "logcli.zip" "https://github.com/grafana/loki/releases/download/v2.4.2/logcli-linux-amd64.zip" + unzip logcli.zip + chmod a+x logcli-linux-amd64 + + - name: Run logcli + run: | + mkdir -p data/api/stats/ + ./logcli-linux-amd64 -q --org-id=${ORG_ID} instant-query 'topk(25, sum(count_over_time({path=~"/tool/.*"}[7d])) by (path))' > data/api/stats_tools_raw.json + cat data/api/stats_tools_raw.json | jq '[.[] | {(.metric.path | sub("^\/tool\/"; "")): (.value[1]|tonumber) }] | add' > data/api/stats/tools_unsorted.json + cat data/api/stats/tools_unsorted.json | jq 'to_entries | sort_by(.value) | reverse | from_entries' > data/api/stats/tools.json + rm data/api/stats/tools_unsorted.json + rm data/api/stats_tools_raw.json + ./logcli-linux-amd64 -q --org-id=${ORG_ID} instant-query 'topk(25, sum(count_over_time({path=~"/tag/.*"}[7d])) by (path))' > data/api/stats_tags_raw.json + cat data/api/stats_tags_raw.json | jq '[.[] | {(.metric.path | sub("^\/tool\/"; "")): (.value[1]|tonumber) }] | add' > data/api/stats/tags_unsorted.json + cat data/api/stats/tags_unsorted.json | jq 'to_entries | sort_by(.value) | reverse | from_entries' > data/api/stats/tags.json + rm data/api/stats/tags_unsorted.json + rm data/api/stats_tags_raw.json + env: + ORG_ID: ${{secrets.LOKI_ORG_ID}} + LOKI_ADDR: http://loki.jorgelbg.me + + - uses: stefanzweifel/git-auto-commit-action@v4.1.2 + with: + branch: ${{ github.head_ref }} + commit_message: Commit list + commit_user_name: Analysis Tools Bot + commit_user_email: bot@analysis-tools.dev + commit_author: Analysis Tools Bot diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..c11bed6903 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +logcli-linux-amd64 +logcli.zip +ci/target/ +ci/pr-check/target/ \ No newline at end of file diff --git a/.lycheeignore b/.lycheeignore new file mode 100644 index 0000000000..26a1c98c63 --- /dev/null +++ b/.lycheeignore @@ -0,0 +1,16 @@ +# Bot detection issue +mathworks.com +# Forbidden +https://www.freepik.com/ +# (Occasional) Timeouts +https://npo-echelon.ru/en/solutions/appchecker.php +https://www.qualys.com/apps/container-security +# 415 Unsupported Media Type (site works in browser) +dickgrune.com +zigrin.com +# Cloudflare bot protection +spinroot.com +# npmjs.com blocks automated requests +https://www.npmjs.com/package/tslint-clean-code +# GitHub wiki intermittent 502 +https://github.com/flowr-analysis/flowr/wiki/Terminology#program-slice \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..afbad3d607 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "cSpell.words": [ + "dlang", + "verilog" + ] +} \ No newline at end of file diff --git a/.windsurfrules b/.windsurfrules new file mode 120000 index 0000000000..47dc3e3d86 --- /dev/null +++ b/.windsurfrules @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..bb957fea00 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,14 @@ +# Guidelines for AI Agents and Assistants + +Welcome! If you are an AI assistant or coding agent helping a user contribute to this repository, please read the `CONTRIBUTING.md` file in the root directory first. + +## 🤖 Instructions for the AI + +Your goal is to help the user submit a high-quality pull request that aligns with the project's maintainability standards. + +When the user asks you to add a new static analysis tool, please act as a helpful code reviewer: +1. **Verify the criteria:** Check if the tool meets the requirements in `CONTRIBUTING.md` (e.g., >20 GitHub stars, >3 months old, actively maintained). +2. **Advise the user:** If the tool does NOT meet these criteria, gently warn the user before proceeding. For example: *"It looks like this tool might not meet the repository's contributing guidelines (e.g., it needs >20 stars and >3 months of history). PRs that don't meet these criteria are usually not accepted. Are you sure you'd like to proceed?"* +3. **Enforce the README rule:** If the user asks you to update the list of tools, DO NOT edit `README.md`. Explain to the user that the list of tools in `README.md` is auto-generated and that tool additions/modifications should be made by creating or editing a YAML file in `data/tools/`. The ONLY exception to editing `README.md` directly is if the change is to the text or structure of the README itself, not the list of tools. + +Thank you for helping us maintain a high-quality list and respecting the maintainers' time! diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000000..43c994c2d3 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8246da22ea..fdc5f80ba5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# How to add a new tool to the list +# Thank you for contributing -Please feel free to open a pull request if you know of a code analysis tool that +Please feel free to open a pull request if you know of a static analysis tool that is not mentioned here. If you're in doubt if a tool is a good fit for the list, **don't open an issue, but create a pull request right away** because that's easier to handle. Thanks! @@ -16,34 +16,35 @@ Each tool on the list should be ### Format -The main `README.md` is just a rendered version of the data. To add a new tool, -please edit `data/tools.yml`. +⚠️ **The main `README.md` is just a rendered version of the data. Do not edit it +manually.** -- Make each tool description as precise as possible. - Please limit the description to **500 characters**. -- Please keep the tools in alphabetical order. -- By default, we assume that the tool is open source. - If a tool is proprietary, add `proprietary: true`. -- Please add as many tags as possible. You can choose from the tags - in `data/tags.yml` If a tool does not match any existing tag, feel - free to start a new tag. +To add a new tool, please create a file in the `data/tools` directory like +`data/tools/.yml`. Feel free to check out a few other YAML files in +that directory to see how it should look like. -Finally, create a pull request with all your changes. -You can call `make render` to check for errors before. -This is optional, because it will also be done when creating -a pull request. +- Make each tool description as precise as possible. Please limit the + description to **500 characters**. +- Add a license. If it's a proprietary tool, use `license: proprietary`. +- Please add as many tags as possible. You can choose from the tags in + `data/tags.yml` If a tool does not match any existing tag, feel free to add a + new tag but also add it to `data/tags.yml`. -# How to mark a tool as unmaintained/deprecated +Finally, create a pull request with all your changes. You can call `make +render` to check for errors before. This is optional, because it will also be +done when creating a pull request. + +### How to mark a tool as unmaintained/deprecated Sometimes a tool becomes unmaintained and there's nothing wrong with that. After all, a tool can still be very valuable to the community - even without frequent updates. However, since it is one of the goals of this project to allow people to make an informed decision on what is the best tool for the job, we are marking -unmaintained or deprecated tools. +unmaintained or deprecated tools after a while. [Here](https://github.com/mre/awesome-static-analysis/issues/223) is a nice discussion about why we think this is necessary. If you find a tool, which is -unmaintained, please add `deprecated: true` to the entry in `data/tools.yml` and +unmaintained, please add `deprecated: true` to the entry in `data/tools/` and create a pull request in which you provide an objective explanation as to why you think the tool should be marked deprecated. Every deprecation will be handled on a case-by-case basis. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..66e691e243 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 The analysis tools developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile index b0bebc525e..90b065ab47 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,38 @@ -.PHONY: render +# Static Analysis Tools Repository Makefile + +.PHONY: render render-skip-deprecated check clippy fmt test clean help + +# Default target shows help +help: + @echo "Available targets:" + @echo " render - Render README.md and JSON API from YAML sources" + @echo " render-skip-deprecated - Render without deprecated tools" + @echo " check - Run cargo check" + @echo " clippy - Run clippy lints" + @echo " fmt - Format Rust code" + @echo " test - Run tests" + @echo " clean - Clean build artifacts" + @echo " help - Show this help" + +# Main rendering targets render: - (cd data/render && cargo run -- ../../data/tags.yml ../../data/tools.yml) > README.md + cargo run --manifest-path ci/Cargo.toml -p render -- --tags data/tags.yml --tools data/tools --md-out README.md --json-out data/api + +render-skip-deprecated: + cargo run --manifest-path ci/Cargo.toml -p render -- --tags data/tags.yml --tools data/tools --md-out README.md --json-out data/api --skip-deprecated + +# Development targets +check: + cargo check --manifest-path ci/Cargo.toml + +clippy: + cargo clippy --manifest-path ci/Cargo.toml -- -D warnings + +fmt: + cargo fmt --manifest-path ci/Cargo.toml + +test: + cargo test --manifest-path ci/Cargo.toml + +clean: + cargo clean --manifest-path ci/Cargo.toml \ No newline at end of file diff --git a/README.md b/README.md index bb177a4e18..b0bbfc949d 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,55 @@ - - Analysis Tools + + Analysis Tools Website -This repository lists **static analysis tools** for all programming languages, build tools, config files and more. -The official website, [analysis-tools.dev](https://analysis-tools.dev/) is based on this repository and adds rankings and user comments for each tool. +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](https://analysis-tools.dev/) is based on this repository and adds rankings, user comments, and additional resources like videos for each tool. +[![Website](https://img.shields.io/badge/Website-Online-2B5BAE)](https://analysis-tools.dev) ![CI](https://github.com/analysis-tools-dev/static-analysis/workflows/CI/badge.svg) - -## What is Static Analysis? - -> Static program analysis is the analysis of computer software that is performed without actually executing programs — [Wikipedia](https://en.wikipedia.org/wiki/Static_program_analysis) - -> The most important thing I have done as a programmer in recent years is to aggressively pursue static code analysis. Even more valuable than the hundreds of serious bugs I have prevented with it is the change in mindset about the way I view software reliability and code quality. — [John Carmack (Creator of Doom)](https://www.gamasutra.com/view/news/128836/InDepth_Static_Code_Analysis.php) +[![Links](https://github.com/analysis-tools-dev/static-analysis/actions/workflows/links.yml/badge.svg)](https://github.com/analysis-tools-dev/static-analysis/actions/workflows/links.yml) ## Sponsors This project would not be possible without the generous support of our sponsors. - + + + + + + + +
+ + + + Pixee + + + + + + + + + + + + + + +
If you also want to support this project, head over to our [Github sponsors page](https://github.com/sponsors/analysis-tools-dev). -## Meaning of Symbols: +## 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 6 months, or the repo was archived. +- :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](https://github.com/mre/awesome-dynamic-analysis). @@ -36,840 +58,2365 @@ Also check out the sister project, [awesome-dynamic-analysis](https://github.com #### [Programming Languages](#programming-languages-1) +| | | | +|---|---|---| +| [ABAP](#abap) | [Erlang](#erlang) | [PL/SQL](#plsql) | +| [Ada](#ada) | [F#](#fsharp) | [Perl](#perl) | +| [Assembly](#asm) | [Fortran](#fortran) | [Python](#python) | +| [Awk](#awk) | [Go](#go) | [R](#r) | +| [C](#c) | [Groovy](#groovy) | [Rego](#rego) | +| [C#](#csharp) | [Haskell](#haskell) | [Ruby](#ruby) | +| [C++](#cpp) | [Haxe](#haxe) | [Rust](#rust) | +| [Clojure](#clojure) | [Java](#java) | [SQL](#sql) | +| [CoffeeScript](#coffeescript) | [JavaScript](#javascript) | [Scala](#scala) | +| [ColdFusion](#coldfusion) | [Julia](#julia) | [Shell](#shell) | +| [Crystal](#crystal) | [Kotlin](#kotlin) | [Swift](#swift) | +| [Dart](#dart) | [Lua](#lua) | [Tcl](#tcl) | +| [Delphi](#delphi) | [MATLAB](#matlab) | [TypeScript](#typescript) | +| [Dlang](#dlang) | [Nim](#nim) | [Verilog/SystemVerilog](#verilog) | +| [Elixir](#elixir) | [Ocaml](#ocaml) | [Vim Script](#vim-script) | +| [Elm](#elm) | [PHP](#php) | [WebAssembly](#wasm) | + +#### [Multiple Languages](#multiple-languages-1) + +#### [Other](#other-1)
- Show languages - - + Show Other + +| | | | +|---|---|---| +| [.env](#dotenv) | [Embedded Ruby (a.k.a. ERB, eRuby)](#erb) | [Prometheus](#prometheus) | +| [Ansible](#ansible) | [Gherkin](#gherkin) | [Protocol Buffers](#protobuf) | +| [Archive](#archive) | [HTML](#html) | [Puppet](#puppet) | +| [Azure Resource Manager](#arm) | [JSON](#json) | [Rails](#rails) | +| [Binaries](#binary) | [Kubernetes](#kubernetes) | [Security/SAST](#security) | +| [Build tools](#buildtool) | [LaTeX](#latex) | [Smart Contracts](#smart-contracts) | +| [CSS/SASS/SCSS](#css) | [Laravel](#laravel) | [Support](#support) | +| [Config Files](#configfile) | [Makefiles](#make) | [Template-Languages](#template) | +| [Configuration Management](#configmanagement) | [Markdown](#markdown) | [Terraform](#terraform) | +| [Containers](#container) | [Metalinter](#meta) | [Translation](#translation) | +| [Continuous Integration](#ci) | [Mobile](#mobile) | [Vue.js](#vue) | +| [Deno](#deno) | [Nix](#nix) | [Writing](#writing) | +| [Dockerfile](#dockerfile) | [Node.js](#nodejs) | [YAML](#yaml) | +| [Embedded](#embedded) | [Packages](#package) | [git](#git) | +
-#### [Multiple languages](#multiple-languages-1) +--- -#### [Other](#other-1) +## Programming Languages -- [Binaries](#binary) -- [Build tools](#buildtool) -- [CSS/SASS/SCSS](#css) -- [Config Files](#configfile) -- [Configuration Management](#configmanagement) -- [Containers](#container) -- [Deno](#deno) -- [Gherkin](#gherkin) -- [HTML](#html) -- [IDE Plugins](#ide) -- [LaTeX](#latex) -- [Makefiles](#make) -- [Markdown](#markdown) -- [Mobile](#mobile) -- [Packages](#package) -- [Protocol Buffers](#protobuf) -- [Supporting Tools](#support) -- [Template-Languages](#template) -- [Translation](#translation) -- [Web services](#service) -- [Writing](#writing) + +

ABAP

---- +- [abaplint](https://abaplint.org) — Linter for ABAP, written in TypeScript. -## Programming Languages +- [abapOpenChecks](https://docs.abapopenchecks.org) — Enhances the SAP Code Inspector with new and customizable checks. -

ABAP

-- ![stars](https://img.shields.io/github/stars/larshp/abaplint?style=flat-square&color=ccc) [abaplint](https://abaplint.org/) - Linter for ABAP, written in TypeScript. -- ![stars](https://img.shields.io/github/stars/larshp/abapOpenChecks?style=flat-square&color=ccc) [abapOpenChecks](https://docs.abapopenchecks.org/) - Enhances the SAP Code Inspector with new and customizable checks. +
+

Ada

-

Ada

+- [Polyspace for Ada](https://www.mathworks.com/products/polyspace-ada.html) :copyright: — Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in source code. -- [Codepeer](http://www.adacore.com/codepeer) :copyright: - Detects run-time and logic errors. -- [Polyspace for Ada](https://www.mathworks.com/products/polyspace-ada.html) :copyright: - Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in source code. -- [SPARK](https://www.adacore.com/about-spark) :copyright: - Static analysis and formal verification toolset for Ada. -- [Understand](https://scitools.com/ada-programming-essential/) :copyright: - IDE that provides code analysis, standards testing, metrics, graphing, dependency analysis and more for Ada and VHDL. +- [SPARK](https://www.adacore.com/about-spark) :copyright: — Static analysis and formal verification toolset for Ada. -

Assembly

+
+

Assembly

-- ![stars](https://img.shields.io/github/stars/StanfordPL/stoke?style=flat-square&color=ccc) [STOKE](http://stoke.stanford.edu/) - A programming-language agnostic stochastic optimizer for the x86_64 instruction set. It uses random search to explore the extremely high-dimensional space of all possible program transformations. +- **STOKE** :warning: — A programming-language agnostic stochastic optimizer for the x86_64 instruction set. It uses random search to explore the extremely high-dimensional space of all possible program transformations. -

Awk

-- [gawk --lint](https://www.gnu.org/software/gawk/manual/html_node/Options.html) - Warns about constructs that are dubious or nonportable to other awk implementations. +
+

Awk

-

C

+- [gawk --lint](https://www.gnu.org/software/gawk/manual/html_node/Options.html) — Warns about constructs that are dubious or nonportable to other awk implementations. -- [Astrée](https://www.absint.com/astree/index.htm) :copyright: - Sound static analyzer based on abstract interpretation for C/C++, detecting memory, type and concurrency defects, and MISRA violations. -- ![stars](https://img.shields.io/github/stars/diffblue/cbmc?style=flat-square&color=ccc) [CBMC](http://www.cprover.org/cbmc/) - Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses. -- [clang-tidy](http://clang.llvm.org/extra/clang-tidy/) - clang static analyser. -- ![stars](https://img.shields.io/github/stars/MetricsGrimoire/CMetrics?style=flat-square&color=ccc) [CMetrics](https://github.com/MetricsGrimoire/CMetrics) - Measures size and complexity for C files. -- [CodeSonar from GrammaTech](https://www.grammatech.com/products/codesonar) :copyright: - Advanced, whole program, deep path, static analysis of C and C++ with easy-to-understand explanations and code and path visualization. -- ![stars](https://img.shields.io/github/stars/danmar/cppcheck?style=flat-square&color=ccc) [cppcheck](http://cppcheck.sourceforge.net/) - Static analysis of C/C++ code. -- [CppDepend](https://www.cppdepend.com) :warning: :copyright: - Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. -- [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint) - Automated C++ checker that follows Google's style guide. -- ![stars](https://img.shields.io/github/stars/dspinellis/cqmetrics?style=flat-square&color=ccc) [cqmetrics](https://github.com/dspinellis/cqmetrics) - Quality metrics for C code. -- ![stars](https://img.shields.io/github/stars/dspinellis/cscout?style=flat-square&color=ccc) [CScout](https://www.spinellis.gr/cscout/) - Complexity and quality metrics for for C and C preprocessor code. -- ![stars](https://img.shields.io/github/stars/david-a-wheeler/flawfinder?style=flat-square&color=ccc) [flawfinder](https://www.dwheeler.com/flawfinder/) - Finds possible security weaknesses. -- ![stars](https://img.shields.io/github/stars/JossWhittle/FlintPlusPlus?style=flat-square&color=ccc) [flint++](https://github.com/JossWhittle/FlintPlusPlus) - Cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook. -- [Frama-C](http://frama-c.com/) - A sound and extensible static analyzer for C code. -- [Helix QAC](https://www.perforce.com/products/helix-qac) :copyright: - Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards. -- ![stars](https://img.shields.io/github/stars/nasa-sw-vnv/ikos?style=flat-square&color=ccc) [IKOS](https://github.com/nasa-sw-vnv/ikos) - A sound static analyzer for C/C++ code based on LLVM. -- ![stars](https://img.shields.io/github/stars/feddischson/include_gardener?style=flat-square&color=ccc) [include-gardener](https://github.com/feddischson/include_gardener) - A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files. -- [LDRA](https://ldra.com) :copyright: - A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules. -- ![stars](https://img.shields.io/github/stars/secure-software-engineering/phasar?style=flat-square&color=ccc) [Phasar](https://phasar.org/) - A LLVM-based static analysis framework which comes with a taint and type state analysis. -- [Polyspace Bug Finder](https://www.mathworks.com/products/polyspace-bug-finder.html) :copyright: - Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software. -- [Polyspace Code Prover](https://www.mathworks.com/products/polyspace-code-prover.html) :copyright: - Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code. -- [scan-build](https://clang-analyzer.llvm.org/scan-build.html) - Analyzes C/C++ code using LLVM at compile-time. -- ![stars](https://img.shields.io/github/stars/ravenexp/splint?style=flat-square&color=ccc) [splint](http://splint.org/) - Annotation-assisted static program checker. -- ![stars](https://img.shields.io/github/stars/SVF-tools/SVF?style=flat-square&color=ccc) [SVF](http://svf-tools.github.io/SVF/) - A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs. -- [vera++](https://bitbucket.org/verateam/vera/wiki/Introduction) - Vera++ is a programmable tool for verification, analysis and transformation of C++ source code. +
+

C

-

C#

-- [.NET Analyzers](https://github.com/DotNetAnalyzers) - An organization for the development of analyzers (diagnostics and code fixes) using the .NET Compiler Platform. -- [Code Analysis Rule Collection](https://carc.codeplex.com/) :warning: - Contains a set of diagnostics, code fixes and refactorings built on the Microsoft .NET Compiler Platform "Roslyn". -- ![stars](https://img.shields.io/github/stars/code-cracker/code-cracker?style=flat-square&color=ccc) [code-cracker](http://code-cracker.github.io/) - An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties. -- ![stars](https://img.shields.io/github/stars/DustinCampbell/CSharpEssentials?style=flat-square&color=ccc) [CSharpEssentials](https://github.com/DustinCampbell/CSharpEssentials) - C# Essentials is a collection of Roslyn diagnostic analyzers, code fixes and refactorings that make it easy to work with C# 6 language features. -- [Designite](http://www.designite-tools.com) :copyright: - Designite supports detection of various architecture, design, and implementation smells, computation of various code quality metrics, and trend analysis. -- ![stars](https://img.shields.io/github/stars/mono/mono-tools?style=flat-square&color=ccc) [Gendarme](https://www.mono-project.com/docs/tools+libraries/tools/gendarme/) - Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET). -- [NDepend](http://www.ndepend.com/) :copyright: - Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. -- ![stars](https://img.shields.io/github/stars/JosefPihrt/Roslynator?style=flat-square&color=ccc) [Roslynator](https://github.com/JosefPihrt/Roslynator/) - A collection of 190+ analyzers and 190+ refactorings for C#, powered by Roslyn. -- ![stars](https://img.shields.io/github/stars/Vannevelj/VSDiagnostics?style=flat-square&color=ccc) [VSDiagnostics](https://github.com/Vannevelj/VSDiagnostics) - A collection of static analyzers based on Roslyn that integrates with VS. -- ![stars](https://img.shields.io/github/stars/Wintellect/Wintellect.Analyzers?style=flat-square&color=ccc) [Wintellect.Analyzers](https://github.com/Wintellect/Wintellect.Analyzers) - .NET Compiler Platform ("Roslyn") diagnostic analyzers and code fixes. +- [Astrée](https://www.absint.com/astree/index.htm) :copyright: — Astrée automatically proves the absence of runtime errors and invalid con­current behavior in C/C++ applications. It is sound for floating-point computations, very fast, and exceptionally precise. The analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules and supports qualification for ISO 26262, DO-178C level A, and other safety standards. Jenkins and Eclipse plugins are available. +- [CBMC](http://www.cprover.org/cbmc) — Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses. -

C++

+- [clang-tidy](https://clang.llvm.org/extra/clang-tidy) — Clang-based C++ linter tool with the (limited) ability to fix issues, too. -- [Astrée](https://www.absint.com/astree/index.htm) :copyright: - Sound static analyzer based on abstract interpretation for C/C++, detecting memory, type and concurrency defects, and MISRA violations. -- ![stars](https://img.shields.io/github/stars/diffblue/cbmc?style=flat-square&color=ccc) [CBMC](http://www.cprover.org/cbmc/) - Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses. -- [clang-tidy](http://clang.llvm.org/extra/clang-tidy/) - clang static analyser. -- ![stars](https://img.shields.io/github/stars/MetricsGrimoire/CMetrics?style=flat-square&color=ccc) [CMetrics](https://github.com/MetricsGrimoire/CMetrics) - Measures size and complexity for C files. -- [CodeSonar from GrammaTech](https://www.grammatech.com/products/codesonar) :copyright: - Advanced, whole program, deep path, static analysis of C and C++ with easy-to-understand explanations and code and path visualization. -- ![stars](https://img.shields.io/github/stars/danmar/cppcheck?style=flat-square&color=ccc) [cppcheck](http://cppcheck.sourceforge.net/) - Static analysis of C/C++ code. -- [CppDepend](https://www.cppdepend.com) :warning: :copyright: - Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. -- [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint) - Automated C++ checker that follows Google's style guide. -- ![stars](https://img.shields.io/github/stars/dspinellis/cqmetrics?style=flat-square&color=ccc) [cqmetrics](https://github.com/dspinellis/cqmetrics) - Quality metrics for C code. -- ![stars](https://img.shields.io/github/stars/dspinellis/cscout?style=flat-square&color=ccc) [CScout](https://www.spinellis.gr/cscout/) - Complexity and quality metrics for for C and C preprocessor code. -- ![stars](https://img.shields.io/github/stars/david-a-wheeler/flawfinder?style=flat-square&color=ccc) [flawfinder](https://www.dwheeler.com/flawfinder/) - Finds possible security weaknesses. -- ![stars](https://img.shields.io/github/stars/JossWhittle/FlintPlusPlus?style=flat-square&color=ccc) [flint++](https://github.com/JossWhittle/FlintPlusPlus) - Cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook. -- [Frama-C](http://frama-c.com/) - A sound and extensible static analyzer for C code. -- [Helix QAC](https://www.perforce.com/products/helix-qac) :copyright: - Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards. -- ![stars](https://img.shields.io/github/stars/nasa-sw-vnv/ikos?style=flat-square&color=ccc) [IKOS](https://github.com/nasa-sw-vnv/ikos) - A sound static analyzer for C/C++ code based on LLVM. -- ![stars](https://img.shields.io/github/stars/feddischson/include_gardener?style=flat-square&color=ccc) [include-gardener](https://github.com/feddischson/include_gardener) - A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files. -- [LDRA](https://ldra.com) :copyright: - A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules. -- ![stars](https://img.shields.io/github/stars/secure-software-engineering/phasar?style=flat-square&color=ccc) [Phasar](https://phasar.org/) - A LLVM-based static analysis framework which comes with a taint and type state analysis. -- [Polyspace Bug Finder](https://www.mathworks.com/products/polyspace-bug-finder.html) :copyright: - Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software. -- [Polyspace Code Prover](https://www.mathworks.com/products/polyspace-code-prover.html) :copyright: - Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code. -- [scan-build](https://clang-analyzer.llvm.org/scan-build.html) - Analyzes C/C++ code using LLVM at compile-time. -- ![stars](https://img.shields.io/github/stars/ravenexp/splint?style=flat-square&color=ccc) [splint](http://splint.org/) - Annotation-assisted static program checker. -- ![stars](https://img.shields.io/github/stars/SVF-tools/SVF?style=flat-square&color=ccc) [SVF](http://svf-tools.github.io/SVF/) - A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs. -- [vera++](https://bitbucket.org/verateam/vera/wiki/Introduction) - Vera++ is a programmable tool for verification, analysis and transformation of C++ source code. +- [clazy](https://github.com/KDE/clazy) — Qt-oriented static code analyzer based on the Clang framework. clazy is a compiler plugin which allows clang to understand Qt semantics. You get more than 50 Qt related compiler warnings, ranging from unneeded memory allocations to misusage of API, including fix-its for automatic refactoring. +- [CMetrics](https://github.com/MetricsGrimoire/CMetrics) — Measures size and complexity for C files. -

CoffeeScript

+- [CPAchecker](https://cpachecker.sosy-lab.org) — A tool for configurable software verification of C programs. The name CPAchecker was chosen to reflect that the tool is based on the CPA concepts and is used for checking software programs. -- ![stars](https://img.shields.io/github/stars/clutchski/coffeelint?style=flat-square&color=ccc) [coffeelint](http://www.coffeelint.org/) - A style checker that helps keep CoffeeScript code clean and consistent. +- [cppcheck](https://cppcheck.sourceforge.io) — Static analysis of C/C++ code. +- [CppDepend](https://www.cppdepend.com) :copyright: — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. -

Crystal

+- [cpplint](https://github.com/cpplint/cpplint) — Automated C++ checker that follows Google's style guide. -- ![stars](https://img.shields.io/github/stars/veelenga/ameba?style=flat-square&color=ccc) [ameba](https://crystal-ameba.github.io/) - A static code analysis tool for Crystal. -- ![stars](https://img.shields.io/github/stars/crystal-lang/crystal?style=flat-square&color=ccc) [crystal](https://crystal-lang.org/) - The Crystal compiler has built-in linting functionality. +- [cqmetrics](https://github.com/dspinellis/cqmetrics) — Quality metrics for C code. +- [CScout](https://www.spinellis.gr/cscout) — Complexity and quality metrics for C and C preprocessor code. -

Dart

+- **ENRE-cpp** :warning: — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-cpp is a ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development) -- ![stars](https://img.shields.io/github/stars/dart-lang/linter?style=flat-square&color=ccc) [Linter for dart](https://dart-lang.github.io/linter/) - Style linter for Dart. +- [ESBMC](http://esbmc.org) — ESBMC is an open source, permissively licensed, context-bounded model checker based on satisfiability modulo theories for the verification of single- and multi-threaded C/C++ programs. +- [flawfinder](http://dwheeler.com/flawfinder/) — Finds possible security weaknesses. -

Delphi

+- **flint++** :warning: — Cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook. -- [Fix Insight](https://www.tmssoftware.com/site/fixinsight.asp) :copyright: - A free IDE Plugin for static code analysis. A _Pro_ edition includes a command line tool for automation purposes. -- [Pascal Analyzer](https://peganza.com/products_pal.html) :copyright: - A static code analysis tool with numerous reports. A free _Lite_ version is available with limited reporting. -- [Pascal Expert](https://peganza.com/products_pex.html) :copyright: - IDE plugin for code analysis. Includes a subset of Pascal Analyzer reporting capabilities and is available for Delphi versions 2007 and later. +- [Frama-C](https://www.frama-c.com) — A sound and extensible static analyzer for C code. +- [GCC](https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html) — The GCC compiler has static analysis capabilities since version 10. This option is only available if GCC was configured with analyzer support enabled. It can also output its diagnostics to a JSON file in the SARIF format (from v13). -

Dlang

+- [Goblint](https://goblint.in.tum.de) — A static analyzer for the analysis of multi-threaded C programs. Its primary focus is the detection of data races, but it also reports other runtime errors, such as buffer overflows and null-pointer dereferences. -- ![stars](https://img.shields.io/github/stars/dlang-community/D-Scanner?style=flat-square&color=ccc) [D-scanner](https://github.com/dlang-community/D-Scanner) - D-Scanner is a tool for analyzing D source code. +- [Helix QAC](https://www.perforce.com/products/helix-qac) :copyright: — Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards. +- [IKOS](https://github.com/nasa-sw-vnv/ikos) — A sound static analyzer for C/C++ code based on LLVM. -

Elixir

+- [KLEE](http://klee.github.io/) — A dynamic symbolic execution engine built on top of the LLVM compiler infrastructure. It can auto-generate test cases for programs such that the test cases exercise as much of the program as possible. -- ![stars](https://img.shields.io/github/stars/rrrene/credo?style=flat-square&color=ccc) [credo](http://credo-ci.org/) - A static code analysis tool with a focus on code consistency and teaching. -- ![stars](https://img.shields.io/github/stars/nccgroup/sobelow?style=flat-square&color=ccc) [sobelow](https://github.com/nccgroup/sobelow) - Security-focused static analysis for the Phoenix Framework. +- [LDRA](https://ldra.com) :copyright: — A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules. +- **MATE** :warning: — A suite of tools for interactive program analysis with a focus on hunting for bugs in C and C++ code. MATE unifies application-specific and low-level vulnerability analysis using code property graphs (CPGs), enabling the discovery of highly application-specific vulnerabilities that depend on both implementation details and the high-level semantics of target C/C++ programs. -

Elm

+- [PC-lint](https://pclintplus.com/) :copyright: — Static analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes code for virtually any platform, supporting C11/C18 and C++17. -- ![stars](https://img.shields.io/github/stars/stil4m/elm-analyse?style=flat-square&color=ccc) [elm-analyse](https://stil4m.github.io/elm-analyse/) - A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices. +- [Phasar](https://phasar.org) — A LLVM-based static analysis framework which comes with a taint and type state analysis. +- [Polyspace Bug Finder](https://www.mathworks.com/products/polyspace-bug-finder.html) :copyright: — Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software. -

Erlang

+- [Polyspace Code Prover](https://www.mathworks.com/products/polyspace-code-prover.html) :copyright: — Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code. -- ![stars](https://img.shields.io/github/stars/inaka/elvis?style=flat-square&color=ccc) [elvis](https://github.com/inaka/elvis) - Erlang Style Reviewer. -- ![stars](https://img.shields.io/github/stars/okeuday/pest?style=flat-square&color=ccc) [Primitive Erlang Security Tool (PEST)](https://github.com/okeuday/pest) - A tool to do a basic scan of Erlang source code and report any function calls that may cause Erlang source code to be insecure. +- [scan-build](https://clang-analyzer.llvm.org/scan-build.html) — Frontend to drive the Clang Static Analyzer built into Clang via a regular build. +- [splint](http://splint.org) — Annotation-assisted static program checker. -

F#

+- [SVF](https://svf-tools.github.io/SVF) — A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs. -- ![stars](https://img.shields.io/github/stars/fsprojects/FSharpLint?style=flat-square&color=ccc) [FSharpLint](http://fsprojects.github.io/FSharpLint/) - Lint tool for F#. +- [TrustInSoft Analyzer](https://trust-in-soft.com) :copyright: — Exhaustive detection of coding errors and their associated security vulnerabilities. This encompasses a sound undefined behavior detection (buffer overflows, out-of-bounds array accesses, null-pointer dereferences, use-after-free, divide-by-zeros, uninitialized memory accesses, signed overflows, invalid pointer arithmetic, etc.), data flow and control flow verification as well as full functional verification of formal specifications. All versions of C up to C18 and C++ up to C++20 are supported. TrustInSoft Analyzer will acquire ISO 26262 qualification in Q2'2023 (TCL3). A MISRA C checker is also bundled. +- **vera++** :warning: — Vera++ is a programmable tool for verification, analysis and transformation of C++ source code. -

Fortran

-- ![stars](https://img.shields.io/github/stars/lequal/i-CodeCNES?style=flat-square&color=ccc) [i-Code CNES for Fortran](https://github.com/lequal/i-CodeCNES) - An open source static code analysis tool for Fortran 77, Fortran 90 and Shell. +
+

C#

-

Go

+- [.NET Analyzers](https://github.com/DotNetAnalyzers) — An organization for the development of analyzers (diagnostics and code fixes) using the .NET Compiler Platform. -- [aligncheck](https://gitlab.com/opennota/check) - Find inefficiently packed structs. -- ![stars](https://img.shields.io/github/stars/timakin/bodyclose?style=flat-square&color=ccc) [bodyclose](https://github.com/timakin/bodyclose) - Checks whether HTTP response body is closed. -- ![stars](https://img.shields.io/github/stars/tsenart/deadcode?style=flat-square&color=ccc) [deadcode](https://github.com/tsenart/deadcode) - Finds unused code. -- ![stars](https://img.shields.io/github/stars/nickng/dingo-hunter?style=flat-square&color=ccc) [dingo-hunter](https://github.com/nickng/dingo-hunter) - Static analyser for finding deadlocks in Go. -- ![stars](https://img.shields.io/github/stars/alexkohler/dogsled?style=flat-square&color=ccc) [dogsled](https://github.com/alexkohler/dogsled) - Finds assignments/declarations with too many blank identifiers. -- ![stars](https://img.shields.io/github/stars/mibk/dupl?style=flat-square&color=ccc) [dupl](https://github.com/mibk/dupl) - Reports potentially duplicated code. -- ![stars](https://img.shields.io/github/stars/kisielk/errcheck?style=flat-square&color=ccc) [errcheck](https://github.com/kisielk/errcheck) - Check that error return values are used. -- ![stars](https://img.shields.io/github/stars/lafolle/flen?style=flat-square&color=ccc) [flen](https://github.com/lafolle/flen) - Get info on length of functions in a Go package. -- [go tool vet --shadow](https://golang.org/cmd/vet/#hdr-Shadowed_variables) - Reports variables that may have been unintentionally shadowed. -- [go vet](https://golang.org/cmd/vet/) - Examines Go source code and reports suspicious. -- ![stars](https://img.shields.io/github/stars/Quasilyte/go-consistent?style=flat-square&color=ccc) [go-consistent](https://github.com/Quasilyte/go-consistent) - Analyzer that helps you to make your Go programs more consistent. -- ![stars](https://img.shields.io/github/stars/go-critic/go-critic?style=flat-square&color=ccc) [go-critic](https://github.com/go-critic/go-critic) - Go source code linter that maintains checks which are currently not implemented in other linters. -- [go/ast](https://golang.org/pkg/go/ast/) - Package ast declares the types used to represent syntax trees for Go packages. -- ![stars](https://img.shields.io/github/stars/leighmcculloch/gochecknoglobals?style=flat-square&color=ccc) [gochecknoglobals](https://github.com/leighmcculloch/gochecknoglobals) - Checks that no globals are present. -- ![stars](https://img.shields.io/github/stars/jgautheron/goconst?style=flat-square&color=ccc) [goconst](https://github.com/jgautheron/goconst) - Finds repeated strings that could be replaced by a constant. -- ![stars](https://img.shields.io/github/stars/fzipp/gocyclo?style=flat-square&color=ccc) [gocyclo](https://github.com/fzipp/gocyclo) - Calculate cyclomatic complexities of functions in Go source code. -- [gofmt -s](https://golang.org/cmd/gofmt/) - Checks if the code is properly formatted and could not be further simplified. -- [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) - Checks missing or unreferenced package imports. -- ![stars](https://img.shields.io/github/stars/golangci/golangci-lint?style=flat-square&color=ccc) [GolangCI-Lint](https://golangci-lint.run/) - Alternative to `Go Meta Linter`: GolangCI-Lint is a linters aggregator. -- ![stars](https://img.shields.io/github/stars/golang/lint?style=flat-square&color=ccc) [golint](https://github.com/golang/lint) - Prints out coding style mistakes in Go source code. -- ![stars](https://img.shields.io/github/stars/linuxerwang/goroutine-inspect?style=flat-square&color=ccc) [goroutine-inspect](https://github.com/linuxerwang/goroutine-inspect) - An interactive tool to analyze Golang goroutine dump. -- ![stars](https://img.shields.io/github/stars/securego/gosec?style=flat-square&color=ccc) [gosec (gas)](https://securego.io/) - Inspects source code for security problems by scanning the Go AST. -- [gotype](https://pkg.go.dev/golang.org/x/tools/cmd/gotype) - Syntactic and semantic analysis similar to the Go compiler. -- ![stars](https://img.shields.io/github/stars/gordonklaus/ineffassign?style=flat-square&color=ccc) [ineffassign](https://github.com/gordonklaus/ineffassign) - Detect ineffectual assignments in Go code. -- ![stars](https://img.shields.io/github/stars/mvdan/interfacer?style=flat-square&color=ccc) [interfacer](https://github.com/mvdan/interfacer) :warning: - Suggest narrower interfaces that can be used. -- ![stars](https://img.shields.io/github/stars/walle/lll?style=flat-square&color=ccc) [lll](https://github.com/walle/lll) - Report long lines. -- ![stars](https://img.shields.io/github/stars/mdempsky/maligned?style=flat-square&color=ccc) [maligned](https://github.com/mdempsky/maligned) - Detect structs that would take less memory if their fields were sorted. -- ![stars](https://img.shields.io/github/stars/client9/misspell?style=flat-square&color=ccc) [misspell](https://github.com/client9/misspell) - Finds commonly misspelled English words. -- ![stars](https://img.shields.io/github/stars/alexkohler/nakedret?style=flat-square&color=ccc) [nakedret](https://github.com/alexkohler/nakedret) - Finds naked returns. -- ![stars](https://img.shields.io/github/stars/alexkohler/nargs?style=flat-square&color=ccc) [nargs](https://github.com/alexkohler/nargs) - Finds unused arguments in function declarations. -- ![stars](https://img.shields.io/github/stars/alexkohler/prealloc?style=flat-square&color=ccc) [prealloc](https://github.com/alexkohler/prealloc) - Finds slice declarations that could potentially be preallocated. -- ![stars](https://img.shields.io/github/stars/mgechev/revive?style=flat-square&color=ccc) [revive](https://revive.run/) - Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. -- ![stars](https://img.shields.io/github/stars/stripe/safesql?style=flat-square&color=ccc) [safesql](https://github.com/stripe/safesql) - Static analysis tool for Golang that protects against SQL injections. -- ![stars](https://img.shields.io/github/stars/dominikh/go-tools?style=flat-square&color=ccc) [staticcheck](https://staticcheck.io/) - Go static analysis that specialises in finding bugs, simplifying code and improving performance. -- [structcheck](https://gitlab.com/opennota/check) - Find unused struct fields. -- [test](http://golang.org/pkg/testing/) - Show location of test failures from the stdlib testing module. -- ![stars](https://img.shields.io/github/stars/mdempsky/unconvert?style=flat-square&color=ccc) [unconvert](https://github.com/mdempsky/unconvert) - Detect redundant type conversions. -- ![stars](https://img.shields.io/github/stars/alexkohler/unimport?style=flat-square&color=ccc) [unimport](https://github.com/alexkohler/unimport) - Finds unnecessary import aliases. -- ![stars](https://img.shields.io/github/stars/mvdan/unparam?style=flat-square&color=ccc) [unparam](https://github.com/mvdan/unparam) - Find unused function parameters. -- [varcheck](https://gitlab.com/opennota/check) - Find unused global variables and constants. -- ![stars](https://img.shields.io/github/stars/bombsimon/wsl?style=flat-square&color=ccc) [wsl](https://github.com/bombsimon/wsl) - Enforces empty lines at the right places. +- [ArchUnitNET](https://github.com/TNG/ArchUnitNET) — A C# architecture test library to specify and assert architecture rules in C# for automated testing. +- [code-cracker](https://code-cracker.github.io) — An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties. -

Groovy

+- **CSharpEssentials** :warning: — C# Essentials is a collection of Roslyn diagnostic analyzers, code fixes and refactorings that make it easy to work with C# 6 language features. -- ![stars](https://img.shields.io/github/stars/CodeNarc/CodeNarc?style=flat-square&color=ccc) [CodeNarc](https://codenarc.github.io/CodeNarc/) - A static analysis tool for Groovy source code, enabling monitoring and enforcement of many coding standards and best practices. +- [Designite](http://www.designite-tools.com) :copyright: — Designite supports detection of various architecture, design, and implementation smells, computation of various code quality metrics, and trend analysis. +- [Gendarme](https://www.mono-project.com/docs/tools+libraries/tools/gendarme) — Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET). -

Haskell

+- **Infer#** :warning: — InferSharp (also referred to as Infer#) is an interprocedural and scalable static code analyzer for C#. Via the capabilities of Facebook's Infer, this tool detects null pointer dereferences and resource leaks. -- ![stars](https://img.shields.io/github/stars/ndmitchell/hlint?style=flat-square&color=ccc) [HLint](https://github.com/ndmitchell/hlint) - HLint is a tool for suggesting possible improvements to Haskell code. -- ![stars](https://img.shields.io/github/stars/ocharles/weeder?style=flat-square&color=ccc) [Weeder](https://github.com/ocharles/weeder) - A tool for detecting dead exports or package imports in Haskell code. +- [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) — A Roslyn analyzer to enforce some good practices in C# in terms of design, usage, security, performance, and style. +- [NDepend](http://www.ndepend.com) :copyright: — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. -

Haxe

+- [Puma Scan](https://pumasecurity.io) — Puma Scan provides real time secure code analysis for common vulnerabilities (XSS, SQLi, CSRF, LDAPi, crypto, deserialization, etc.) as development teams write code in Visual Studio. -- ![stars](https://img.shields.io/github/stars/HaxeCheckstyle/haxe-checkstyle?style=flat-square&color=ccc) [Haxe Checkstyle](http://haxecheckstyle.github.io/docs/haxe-checkstyle/home.html) - A static analysis tool to help developers write Haxe code that adheres to a coding standard. +- [Roslynator](https://github.com/JosefPihrt/Roslynator) — A collection of 190+ analyzers and 190+ refactorings for C#, powered by Roslyn. +- [SonarAnalyzer.CSharp](https://github.com/SonarSource/sonar-dotnet) — These Roslyn analyzers allow you to produce Clean Code that is safe, reliable, and maintainable by helping you find and correct bugs, vulnerabilities, and code smells in your codebase. -

Java

+- **VSDiagnostics** :warning: — A collection of static analyzers based on Roslyn that integrates with VS. -- ![stars](https://img.shields.io/github/stars/typetools/checker-framework?style=flat-square&color=ccc) [Checker Framework](https://checkerframework.org/) - Pluggable type-checking for Java. -- ![stars](https://img.shields.io/github/stars/checkstyle/checkstyle?style=flat-square&color=ccc) [checkstyle](https://checkstyle.org/) - Checking Java source code for adherence to a Code Standard or set of validation rules (best practices). -- ![stars](https://img.shields.io/github/stars/mauricioaniche/ck?style=flat-square&color=ccc) [ck](https://github.com/mauricioaniche/ck) - Calculates Chidamber and Kemerer object-oriented metrics by processing the source Java files. -- ![stars](https://img.shields.io/github/stars/dspinellis/ckjm?style=flat-square&color=ccc) [ckjm](http://www.spinellis.gr/sw/ckjm/) - Calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files. -- ![stars](https://img.shields.io/github/stars/eclipse-cognicrypt/CogniCrypt?style=flat-square&color=ccc) [CogniCrypt](https://www.eclipse.org/cognicrypt/) - Checks Java source and byte code for incorrect uses of cryptographic APIs. -- [DesigniteJava](http://www.designite-tools.com/designitejava) :copyright: - DesigniteJava supports detection of various architecture, design, and implementation smells along with computation of various code quality metrics. -- ![stars](https://img.shields.io/github/stars/google/error-prone?style=flat-square&color=ccc) [Error-prone](https://errorprone.info/) - Catch common Java mistakes as compile-time errors. -- ![stars](https://img.shields.io/github/stars/mebigfatguy/fb-contrib?style=flat-square&color=ccc) [fb-contrib](http://fb-contrib.sourceforge.net/) - A plugin for FindBugs with additional bug detectors. -- ![stars](https://img.shields.io/github/stars/policeman-tools/forbidden-apis?style=flat-square&color=ccc) [forbidden-apis](https://github.com/policeman-tools/forbidden-apis) - Detects and forbids invocations of specific method/class/field (like reading from a text stream without a charset). Maven/Gradle/Ant compatible. -- ![stars](https://img.shields.io/github/stars/google/google-java-format?style=flat-square&color=ccc) [google-java-format](https://github.com/google/google-java-format) - Google Style Reformat. -- ![stars](https://img.shields.io/github/stars/amaembo/huntbugs?style=flat-square&color=ccc) [HuntBugs](https://github.com/amaembo/huntbugs) :warning: - Bytecode static analyzer tool based on Procyon Compiler Tools aimed to supersede FindBugs. -- [JArchitect](https://www.jarchitect.com) :copyright: - Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. -- [JBMC](https://www.cprover.org/jbmc/) - Bounded model-checker for Java (bytecode), verifies user-defined assertions, standard assertions, several coverage metric analyses. -- ![stars](https://img.shields.io/github/stars/uber/NullAway?style=flat-square&color=ccc) [NullAway](https://github.com/uber/NullAway) - Type-based null-pointer checker with low build-time overhead; an [Error Prone](http://errorprone.info/) plugin. -- ![stars](https://img.shields.io/github/stars/jeremylong/DependencyCheck?style=flat-square&color=ccc) [OWASP Dependency Check](https://owasp.org/www-project-dependency-check/) - Checks dependencies for known, publicly disclosed, vulnerabilities. -- ![stars](https://img.shields.io/github/stars/teamed/qulice?style=flat-square&color=ccc) [qulice](https://www.qulice.com/) - Combines a few (pre-configured) static analysis tools (checkstyle, PMD, Findbugs, ...). -- ![stars](https://img.shields.io/github/stars/soot-oss/soot?style=flat-square&color=ccc) [Soot](https://soot-oss.github.io/soot/) - A framework for analyzing and transforming Java and Android applications. -- ![stars](https://img.shields.io/github/stars/INRIA/spoon?style=flat-square&color=ccc) [Spoon](http://spoon.gforge.inria.fr/) - Spoon is a metaprogramming library to analyze and transform Java source code (incl Java 9, 10, 11, 12, 13, 14). It parses source files to build a well-designed AST with powerful analysis and transformation API. Can be integrated in Maven and Gradle. -- ![stars](https://img.shields.io/github/stars/spotbugs/spotbugs?style=flat-square&color=ccc) [SpotBugs](https://spotbugs.github.io/) - SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code. - - -

JavaScript

- -- ![stars](https://img.shields.io/github/stars/codecombat/aether?style=flat-square&color=ccc) [aether](http://aetherjs.com/) - Lint, analyze, normalize, transform, sandbox, run, step through, and visualize user JavaScript, in node or the browser. -- ![stars](https://img.shields.io/github/stars/google/closure-compiler?style=flat-square&color=ccc) [Closure Compiler](https://developers.google.com/closure/compiler/) - A compiler tool to increase efficiency, reduce size, and provide code warnings in JavaScript files. -- ![stars](https://img.shields.io/github/stars/google/closure-linter?style=flat-square&color=ccc) [ClosureLinter](https://github.com/google/closure-linter) :warning: - Ensures that all of your project's JavaScript code follows the guidelines in the Google JavaScript Style Guide. It can also automatically fix many common errors. -- ![stars](https://img.shields.io/github/stars/jared-stilwell/complexity-report?style=flat-square&color=ccc) [complexity-report](https://github.com/jared-stilwell/complexity-report) :warning: - Software complexity analysis for JavaScript projects. -- [DeepScan](https://deepscan.io) :copyright: - An analyzer for JavaScript which targets runtime errors and quality issues rather than coding conventions. -- ![stars](https://img.shields.io/github/stars/the-simian/es6-plato?style=flat-square&color=ccc) [es6-plato](https://github.com/the-simian/es6-plato) - Visualize JavaScript (ES6) source complexity. -- ![stars](https://img.shields.io/github/stars/jared-stilwell/escomplex?style=flat-square&color=ccc) [escomplex](https://github.com/jared-stilwell/escomplex) - Software complexity analysis of JavaScript-family abstract syntax trees. -- ![stars](https://img.shields.io/github/stars/eslint/eslint?style=flat-square&color=ccc) [eslint](https://eslint.org/) - A fully pluggable tool for identifying and reporting on patterns in JavaScript. -- ![stars](https://img.shields.io/github/stars/jquery/esprima?style=flat-square&color=ccc) [Esprima](https://esprima.org/) - ECMAScript parsing infrastructure for multipurpose analysis. -- ![stars](https://img.shields.io/github/stars/facebook/flow?style=flat-square&color=ccc) [flow](https://flow.org/) - A static type checker for JavaScript. -- ![stars](https://img.shields.io/github/stars/JSMonk/hegel?style=flat-square&color=ccc) [hegel](https://hegel.js.org/) - A static type checker for JavaScript with a bias on type inference and strong type systems. -- ![stars](https://img.shields.io/github/stars/jshint/jshint?style=flat-square&color=ccc) [jshint](https://jshint.com/about/) [:information_source:](https://github.com/analysis-tools-dev/static-analysis/issues/223) - Detect errors and potential problems in JavaScript code and enforce your team's coding conventions. -- ![stars](https://img.shields.io/github/stars/douglascrockford/JSLint?style=flat-square&color=ccc) [JSLint](https://github.com/douglascrockford/JSLint) [:information_source:](https://github.com/analysis-tools-dev/static-analysis/issues/223) - The JavaScript Code Quality Tool. -- ![stars](https://img.shields.io/github/stars/dpnishant/jsprime?style=flat-square&color=ccc) [JSPrime](http://dpnishant.github.io/jsprime/) :warning: - Static security analysis tool. -- ![stars](https://img.shields.io/github/stars/es-analysis/plato?style=flat-square&color=ccc) [plato](https://github.com/es-analysis/plato) :warning: - Visualize JavaScript source complexity. -- ![stars](https://img.shields.io/github/stars/jden/quality?style=flat-square&color=ccc) [quality](https://github.com/jden/quality) :warning: - Zero configuration code and module linting. -- ![stars](https://img.shields.io/github/stars/RetireJS/retire.js?style=flat-square&color=ccc) [retire.js](http://retirejs.github.io/retire.js/) - Scanner detecting the use of JavaScript libraries with known vulnerabilities. -- ![stars](https://img.shields.io/github/stars/ternjs/tern?style=flat-square&color=ccc) [tern](https://ternjs.net/) - A JavaScript code analyzer for deep, cross-editor language support. -- ![stars](https://img.shields.io/github/stars/xojs/xo?style=flat-square&color=ccc) [xo](https://github.com/xojs/xo) - Opinionated but configurable ESLint wrapper with lots of goodies included. Enforces strict and readable code. -- ![stars](https://img.shields.io/github/stars/calmh/yardstick?style=flat-square&color=ccc) [yardstick](https://github.com/calmh/yardstick) :warning: - Javascript code metrics. - - -

Kotlin

- -- ![stars](https://img.shields.io/github/stars/detekt/detekt?style=flat-square&color=ccc) [detekt](https://detekt.github.io/detekt/) - Static code analysis for Kotlin code. - - -

Lua

- -- ![stars](https://img.shields.io/github/stars/mpeterv/luacheck?style=flat-square&color=ccc) [luacheck](https://github.com/mpeterv/luacheck) - A tool for linting and static analysis of Lua code. - - -

MATLAB

- -- [mlint](https://mathworks.com/help/matlab/ref/mlint.html) :copyright: - Check MATLAB code files for possible problems. - - -

PHP

- -- ![stars](https://img.shields.io/github/stars/bmitch/churn-php?style=flat-square&color=ccc) [churn-php](https://github.com/bmitch/churn-php) :warning: - Helps discover good candidates for refactoring. -- ![stars](https://img.shields.io/github/stars/mihaeu/dephpend?style=flat-square&color=ccc) [dephpend](https://dephpend.com/) - Dependency analysis tool. -- ![stars](https://img.shields.io/github/stars/sensiolabs-de/deprecation-detector?style=flat-square&color=ccc) [deprecation-detector](https://github.com/sensiolabs-de/deprecation-detector) - Finds usages of deprecated (Symfony) code. -- ![stars](https://img.shields.io/github/stars/sensiolabs-de/deptrac?style=flat-square&color=ccc) [deptrac](https://github.com/sensiolabs-de/deptrac) - Enforce rules for dependencies between software layers. -- ![stars](https://img.shields.io/github/stars/Halleck45/DesignPatternDetector?style=flat-square&color=ccc) [DesignPatternDetector](https://github.com/Halleck45/DesignPatternDetector) - Detection of design patterns in PHP code. -- ![stars](https://img.shields.io/github/stars/Symplify/EasyCodingStandard?style=flat-square&color=ccc) [EasyCodingStandard](https://www.tomasvotruba.com/blog/2017/05/03/combine-power-of-php-code-sniffer-and-php-cs-fixer-in-3-lines/) - Combine [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) and [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer). -- ![stars](https://img.shields.io/github/stars/phpro/grumphp?style=flat-square&color=ccc) [GrumPHP](https://github.com/phpro/grumphp) - Checks code on every commit. -- ![stars](https://img.shields.io/github/stars/Trismegiste/Mondrian?style=flat-square&color=ccc) [Mondrian](http://trismegiste.github.io/Mondrian/) - A set of static analysis and refactoring tools which use graph theory. -- ![stars](https://img.shields.io/github/stars/php-parallel-lint/PHP-Parallel-Lint?style=flat-square&color=ccc) [parallel-lint](https://github.com/php-parallel-lint/PHP-Parallel-Lint) - This tool checks syntax of PHP files faster than serial check with a fancier output. -- ![stars](https://img.shields.io/github/stars/psecio/parse?style=flat-square&color=ccc) [Parse](https://github.com/psecio/parse) - A Static Security Scanner. -- ![stars](https://img.shields.io/github/stars/pdepend/pdepend?style=flat-square&color=ccc) [pdepend](https://pdepend.org/) - Calculates software metrics like cyclomatic complexity for PHP code. -- ![stars](https://img.shields.io/github/stars/etsy/phan?style=flat-square&color=ccc) [phan](https://github.com/phan/phan/wiki) - A modern static analyzer from etsy. -- ![stars](https://img.shields.io/github/stars/carlosas/phpat?style=flat-square&color=ccc) [PHP Architecture Tester](https://github.com/carlosas/phpat) - Easy to use architecture testing tool for PHP. -- ![stars](https://img.shields.io/github/stars/rskuipers/php-assumptions?style=flat-square&color=ccc) [PHP Assumptions](https://github.com/rskuipers/php-assumptions) - Checks for weak assumptions. -- ![stars](https://img.shields.io/github/stars/FriendsOfPHP/PHP-CS-Fixer?style=flat-square&color=ccc) [PHP Coding Standards Fixer](https://cs.symfony.com/) - Fixes your code according to standards like PSR-1, PSR-2, and the Symfony standard. -- ![stars](https://img.shields.io/github/stars/nunomaduro/phpinsights?style=flat-square&color=ccc) [PHP Insights](https://phpinsights.com/) - Instant PHP quality checks from your console. Analysis of code quality and coding style as well as overview of code architecture and its complexity. - -- ![stars](https://img.shields.io/github/stars/kalessil/phpinspectionsea?style=flat-square&color=ccc) [Php Inspections (EA Extended)](https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-) - A Static Code Analyzer for PHP. -- ![stars](https://img.shields.io/github/stars/QafooLabs/php-refactoring-browser?style=flat-square&color=ccc) [PHP Refactoring Browser](http://qafoolabs.github.io/php-refactoring-browser/) - Refactoring helper. -- ![stars](https://img.shields.io/github/stars/tomzx/php-semver-checker?style=flat-square&color=ccc) [PHP Semantic Versioning Checker](https://github.com/tomzx/php-semver-checker) - Suggests a next version according to semantic versioning. -- ![stars](https://img.shields.io/github/stars/nikic/PHP-Parser?style=flat-square&color=ccc) [PHP-Parser](https://github.com/nikic/PHP-Parser) - A PHP parser written in PHP. -- ![stars](https://img.shields.io/github/stars/mekras/php-speller?style=flat-square&color=ccc) [php-speller](https://github.com/mekras/php-speller) - PHP spell check library. -- ![stars](https://img.shields.io/github/stars/Andrewsville/PHP-Token-Reflection?style=flat-square&color=ccc) [PHP-Token-Reflection](https://github.com/Andrewsville/PHP-Token-Reflection) - Library emulating the PHP internal reflection. -- ![stars](https://img.shields.io/github/stars/sstalle/php7cc?style=flat-square&color=ccc) [php7cc](https://github.com/sstalle/php7cc) :warning: - PHP 7 Compatibility Checker. -- ![stars](https://img.shields.io/github/stars/Alexia/php7mar?style=flat-square&color=ccc) [php7mar](https://github.com/Alexia/php7mar) :warning: - Assist developers in porting their code quickly to PHP 7. -- ![stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?style=flat-square&color=ccc) [PHP_CodeSniffer](https://pear.php.net/package/PHP_CodeSniffer) - Detects violations of a defined set of coding standards. -- ![stars](https://img.shields.io/github/stars/wapmorgan/PhpCodeAnalyzer?style=flat-square&color=ccc) [phpca](https://github.com/wapmorgan/PhpCodeAnalyzer) - Finds usage of non-built-in extensions. -- ![stars](https://img.shields.io/github/stars/wapmorgan/PhpCodeFixer?style=flat-square&color=ccc) [phpcf](http://wapmorgan.github.io/PhpCodeFixer/) - Finds usage of deprecated PHP features. -- ![stars](https://img.shields.io/github/stars/sebastianbergmann/phpcpd?style=flat-square&color=ccc) [phpcpd](https://github.com/sebastianbergmann/phpcpd) - Copy/Paste Detector for PHP code. -- ![stars](https://img.shields.io/github/stars/sebastianbergmann/phpdcd?style=flat-square&color=ccc) [phpdcd](https://github.com/sebastianbergmann/phpdcd) :warning: - Dead Code Detector (DCD) for PHP code. -- ![stars](https://img.shields.io/github/stars/mamuz/PhpDependencyAnalysis?style=flat-square&color=ccc) [PhpDependencyAnalysis](https://mamuz.github.io/PhpDependencyAnalysis/) - Builds a dependency graph for a project. -- ![stars](https://img.shields.io/github/stars/dunglas/phpdoc-to-typehint?style=flat-square&color=ccc) [phpdoc-to-typehint](https://github.com/dunglas/phpdoc-to-typehint) - Add scalar type hints and return types to existing PHP projects using PHPDoc annotations. -- ![stars](https://img.shields.io/github/stars/phpDocumentor/phpDocumentor?style=flat-square&color=ccc) [phpDocumentor](https://www.phpdoc.org/) - Analyzes PHP source code to generate documentation. -- ![stars](https://img.shields.io/github/stars/sebastianbergmann/phploc?style=flat-square&color=ccc) [phploc](https://github.com/sebastianbergmann/phploc) - A tool for quickly measuring the size and analyzing the structure of a PHP project. -- ![stars](https://img.shields.io/github/stars/phpmd/phpmd?style=flat-square&color=ccc) [PHPMD](https://phpmd.org/) - Finds possible bugs in your code. -- ![stars](https://img.shields.io/github/stars/phpmetrics/PhpMetrics?style=flat-square&color=ccc) [PhpMetrics](http://www.phpmetrics.org/) - Calculates and visualizes various code quality metrics. -- ![stars](https://img.shields.io/github/stars/povils/phpmnd?style=flat-square&color=ccc) [phpmnd](https://github.com/povils/phpmnd) - Helps to detect magic numbers. -- ![stars](https://img.shields.io/github/stars/EdgedesignCZ/phpqa?style=flat-square&color=ccc) [PHPQA](https://edgedesigncz.github.io/phpqa/) - A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics). -- ![stars](https://img.shields.io/github/stars/jakzal/phpqa?style=flat-square&color=ccc) [phpqa - jakzal](https://github.com/jakzal/phpqa) - Many tools for PHP static analysis in one container. -- ![stars](https://img.shields.io/github/stars/jmolivas/phpqa?style=flat-square&color=ccc) [phpqa - jmolivas](https://github.com/jmolivas/phpqa) - PHPQA all-in-one Analyzer CLI tool. -- ![stars](https://img.shields.io/github/stars/ovr/phpsa?style=flat-square&color=ccc) [phpsa](https://github.com/ovr/phpsa) - Static analysis tool for PHP. -- ![stars](https://img.shields.io/github/stars/phpstan/phpstan?style=flat-square&color=ccc) [PHPStan](https://phpstan.org/) - PHP Static Analysis Tool - discover bugs in your code without running it! -- ![stars](https://img.shields.io/github/stars/designsecurity/progpilot?style=flat-square&color=ccc) [Progpilot](https://github.com/designsecurity/progpilot) - A static analysis tool for security purposes. -- ![stars](https://img.shields.io/github/stars/vimeo/psalm?style=flat-square&color=ccc) [Psalm](https://psalm.dev/) - Static analysis tool for finding type errors in PHP applications. -- ![stars](https://img.shields.io/github/stars/Qafoo/QualityAnalyzer?style=flat-square&color=ccc) [Qafoo Quality Analyzer](https://github.com/Qafoo/QualityAnalyzer) - Visualizes metrics and source code. -- ![stars](https://img.shields.io/github/stars/ircmaxell/Tuli?style=flat-square&color=ccc) [Tuli](https://github.com/ircmaxell/Tuli) - A static analysis engine. -- ![stars](https://img.shields.io/github/stars/asm89/twig-lint?style=flat-square&color=ccc) [twig-lint](https://github.com/asm89/twig-lint) - twig-lint is a lint tool for your twig files. -- [WAP](https://securityonline.info/owasp-wap-web-application-protection-project/) - Tool to detect and correct input validation vulnerabilities in PHP (4.0 or higher) web applications and predicts false positives by combining static analysis and data mining. - - -

Perl

- -- [Perl::Critic](https://metacpan.org/pod/Perl::Critic) - Critique Perl source code for best-practices. - - -

Python

- -- ![stars](https://img.shields.io/github/stars/PyCQA/bandit?style=flat-square&color=ccc) [bandit](https://bandit.readthedocs.io/en/latest/) - A tool to find common security issues in Python code. -- ![stars](https://img.shields.io/github/stars/hchasestevens/bellybutton?style=flat-square&color=ccc) [bellybutton](https://github.com/hchasestevens/bellybutton) - A linting engine supporting custom project-specific rules. -- ![stars](https://img.shields.io/github/stars/mschwager/cohesion?style=flat-square&color=ccc) [cohesion](https://github.com/mschwager/cohesion) - A tool for measuring Python class cohesion. -- ![stars](https://img.shields.io/github/stars/dlint-py/dlint?style=flat-square&color=ccc) [Dlint](https://github.com/dlint-py/dlint) - A tool for ensuring Python code is secure. -- ![stars](https://img.shields.io/github/stars/feddischson/include_gardener?style=flat-square&color=ccc) [include-gardener](https://github.com/feddischson/include_gardener) - A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files. -- ![stars](https://img.shields.io/github/stars/davidhalter/jedi?style=flat-square&color=ccc) [jedi](https://jedi.readthedocs.io/en/latest/) - Autocompletion/static analysis library for Python. -- ![stars](https://img.shields.io/github/stars/lyft/linty_fresh?style=flat-square&color=ccc) [linty fresh](https://github.com/lyft/linty_fresh) - Parse lint errors and report them to Github as comments on a pull request. -- ![stars](https://img.shields.io/github/stars/PyCQA/mccabe?style=flat-square&color=ccc) [mccabe](https://pypi.org/project/mccabe/) - Check McCabe complexity. -- ![stars](https://img.shields.io/github/stars/python/mypy?style=flat-square&color=ccc) [mypy](http://www.mypy-lang.org/) - A static type checker that aims to combine the benefits of duck typing and static typing, frequently used with [MonkeyType](https://github.com/Instagram/MonkeyType). -- ![stars](https://img.shields.io/github/stars/uber/py-find-injection?style=flat-square&color=ccc) [py-find-injection](https://github.com/uber/py-find-injection) :warning: - Find SQL injection vulnerabilities in Python code. -- ![stars](https://img.shields.io/github/stars/PyCQA/pycodestyle?style=flat-square&color=ccc) [pycodestyle](https://pycodestyle.pycqa.org/en/latest/) - (Formerly `pep8`) Check Python code against some of the style conventions in PEP 8. -- ![stars](https://img.shields.io/github/stars/PyCQA/pydocstyle?style=flat-square&color=ccc) [pydocstyle](http://www.pydocstyle.org) - Check compliance with Python docstring conventions. -- ![stars](https://img.shields.io/github/stars/pyflakes/pyflakes?style=flat-square&color=ccc) [pyflakes](https://pypi.org/project/pyflakes/) - Check Python source files for errors. -- ![stars](https://img.shields.io/github/stars/PyCQA/pylint?style=flat-square&color=ccc) [pylint](http://pylint.pycqa.org/en/latest/) - Looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. It additionally includes `pyreverse` (an UML diagram generator) and `symilar` (a similarities checker). -- ![stars](https://img.shields.io/github/stars/facebook/pyre-check?style=flat-square&color=ccc) [pyre-check](https://pyre-check.org/) - A fast, scalable type checker for large Python codebases. -- ![stars](https://img.shields.io/github/stars/Microsoft/pyright?style=flat-square&color=ccc) [pyright](https://github.com/Microsoft/pyright) - Static type checker for Python, created to address gaps in existing tools like mypy. -- ![stars](https://img.shields.io/github/stars/regebro/pyroma?style=flat-square&color=ccc) [pyroma](https://github.com/regebro/pyroma) - Rate how well a Python project complies with the best practices of the Python packaging ecosystem, and list issues that could be improved. -- ![stars](https://img.shields.io/github/stars/python-security/pyt?style=flat-square&color=ccc) [PyT - Python Taint](https://github.com/python-security/pyt) :warning: - A static analysis tool for detecting security vulnerabilities in Python web applications. -- ![stars](https://img.shields.io/github/stars/google/pytype?style=flat-square&color=ccc) [pytype](https://google.github.io/pytype/) - A static type analyzer for Python code. -- ![stars](https://img.shields.io/github/stars/rubik/radon?style=flat-square&color=ccc) [radon](https://radon.readthedocs.io/en/latest/) - A Python tool that computes various metrics from the source code. -- ![stars](https://img.shields.io/github/stars/jendrikseipp/vulture?style=flat-square&color=ccc) [vulture](https://github.com/jendrikseipp/vulture) - Find unused classes, functions and variables in Python code. -- ![stars](https://img.shields.io/github/stars/wemake-services/wemake-python-styleguide?style=flat-square&color=ccc) [wemake-python-styleguide](https://wemake-python-stylegui.de) - The strictest and most opinionated python linter ever. -- ![stars](https://img.shields.io/github/stars/tonybaloney/wily?style=flat-square&color=ccc) [wily](https://github.com/tonybaloney/wily) - A command-line tool for archiving, exploring and graphing the complexity of Python source code. -- ![stars](https://img.shields.io/github/stars/rubik/xenon?style=flat-square&color=ccc) [xenon](https://xenon.readthedocs.io/) - Monitor code complexity using [`radon`](https://github.com/rubik/radon). +- [Wintellect.Analyzers](https://github.com/Wintellect/Wintellect.Analyzers) — .NET Compiler Platform ("Roslyn") diagnostic analyzers and code fixes. -

R

+
+

C++

-- ![stars](https://img.shields.io/github/stars/MangoTheCat/cyclocomp?style=flat-square&color=ccc) [cyclocomp](https://github.com/MangoTheCat/cyclocomp) - Quantifies the cyclomatic complexity of R functions / expressions. -- ![stars](https://img.shields.io/github/stars/mangothecat/goodpractice?style=flat-square&color=ccc) [goodpractice](http://mangothecat.github.io/goodpractice/) - Analyses the source code for R packages and provides best-practice recommendations. -- ![stars](https://img.shields.io/github/stars/jimhester/lintr?style=flat-square&color=ccc) [lintr](https://github.com/jimhester/lintr) - Static Code Analysis for R. +- [Astrée](https://www.absint.com/astree/index.htm) :copyright: — Astrée automatically proves the absence of runtime errors and invalid con­current behavior in C/C++ applications. It is sound for floating-point computations, very fast, and exceptionally precise. The analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules and supports qualification for ISO 26262, DO-178C level A, and other safety standards. Jenkins and Eclipse plugins are available. -

RPG

+- [CBMC](http://www.cprover.org/cbmc) — Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses. -- [SourceMeter](https://www.sourcemeter.com/resources/rpg/) :copyright: - Static Code Analysis for RPG III and RPG IV versions (including free-form). +- [clang-tidy](https://clang.llvm.org/extra/clang-tidy) — Clang-based C++ linter tool with the (limited) ability to fix issues, too. +- [clazy](https://github.com/KDE/clazy) — Qt-oriented static code analyzer based on the Clang framework. clazy is a compiler plugin which allows clang to understand Qt semantics. You get more than 50 Qt related compiler warnings, ranging from unneeded memory allocations to misusage of API, including fix-its for automatic refactoring. -

Ruby

+- [CMetrics](https://github.com/MetricsGrimoire/CMetrics) — Measures size and complexity for C files. -- ![stars](https://img.shields.io/github/stars/presidentbeef/brakeman?style=flat-square&color=ccc) [brakeman](https://brakemanscanner.org/) - A static analysis security vulnerability scanner for Ruby on Rails applications. -- ![stars](https://img.shields.io/github/stars/square/cane?style=flat-square&color=ccc) [cane](https://github.com/square/cane) - Code quality threshold checking as part of your build. -- ![stars](https://img.shields.io/github/stars/seattlerb/flay?style=flat-square&color=ccc) [flay](https://ruby.sadi.st/Flay.html) - Flay analyzes code for structural similarities. -- ![stars](https://img.shields.io/github/stars/seattlerb/flog?style=flat-square&color=ccc) [flog](https://ruby.sadi.st/Flog.html) - Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in. -- ![stars](https://img.shields.io/github/stars/feddischson/include_gardener?style=flat-square&color=ccc) [include-gardener](https://github.com/feddischson/include_gardener) - A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files. -- ![stars](https://img.shields.io/github/stars/michaeledgar/laser?style=flat-square&color=ccc) [laser](https://github.com/michaeledgar/laser) :warning: - Static analysis and style linter for Ruby code. -- ![stars](https://img.shields.io/github/stars/codegram/pelusa?style=flat-square&color=ccc) [pelusa](https://github.com/codegram/pelusa) - Static analysis Lint-type tool to improve your OO Ruby code. -- ![stars](https://img.shields.io/github/stars/soutaro/querly?style=flat-square&color=ccc) [Querly](https://github.com/soutaro/querly) - Pattern Based Checking Tool for Ruby. -- ![stars](https://img.shields.io/github/stars/david-a-wheeler/railroader?style=flat-square&color=ccc) [Railroader](https://railroader.org/) - An open source static analysis security vulnerability scanner for Ruby on Rails applications. -- ![stars](https://img.shields.io/github/stars/troessner/reek?style=flat-square&color=ccc) [reek](https://github.com/troessner/reek) - Code smell detector for Ruby. -- ![stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?style=flat-square&color=ccc) [RuboCop](https://docs.rubocop.org/rubocop/) - A Ruby static code analyzer, based on the community Ruby style guide. -- ![stars](https://img.shields.io/github/stars/blazeeboy/rubrowser?style=flat-square&color=ccc) [Rubrowser](http://www.emadelsaid.com/rubrowser/) - Ruby classes interactive dependency graph generator. -- [ruby-lint](http://code.yorickpeterse.com/ruby-lint/latest/) :warning: - Static code analysis for Ruby. -- ![stars](https://img.shields.io/github/stars/whitesmith/rubycritic?style=flat-square&color=ccc) [rubycritic](https://github.com/whitesmith/rubycritic) - A Ruby code quality reporter. -- ![stars](https://img.shields.io/github/stars/makaroni4/sandi_meter?style=flat-square&color=ccc) [SandiMeter](https://rubygems.org/gems/sandi_meter) :warning: - Static analysis tool for checking Ruby code for Sandi Metz' rules. -- ![stars](https://img.shields.io/github/stars/sorbet/sorbet?style=flat-square&color=ccc) [Sorbet](https://sorbet.org/) - A fast, powerful type checker designed for Ruby. +- [cppcheck](https://cppcheck.sourceforge.io) — Static analysis of C/C++ code. +- [CppDepend](https://www.cppdepend.com) :copyright: — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. -

Rust

+- [cpplint](https://github.com/cpplint/cpplint) — Automated C++ checker that follows Google's style guide. -- ![stars](https://img.shields.io/github/stars/RustSec/cargo-audit?style=flat-square&color=ccc) [cargo-audit](https://rustsec.org/) - Audit Cargo.lock for crates with security vulnerabilities reported to the [RustSec Advisory Database](https://github.com/RustSec/advisory-db/). -- ![stars](https://img.shields.io/github/stars/mre/cargo-inspect?style=flat-square&color=ccc) [cargo-inspect](https://github.com/mre/cargo-inspect) - Inspect Rust code without syntactic sugar to see what the compiler does behind the curtains. -- ![stars](https://img.shields.io/github/stars/rust-lang/rust-clippy?style=flat-square&color=ccc) [clippy](https://rust-lang.github.io/rust-clippy/) - A code linter to catch common mistakes and improve your Rust code. -- ![stars](https://img.shields.io/github/stars/Kha/electrolysis?style=flat-square&color=ccc) [electrolysis](http://kha.github.io/electrolysis/) - A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover. -- ![stars](https://img.shields.io/github/stars/mcarton/rust-herbie-lint?style=flat-square&color=ccc) [herbie](https://github.com/mcarton/rust-herbie-lint) - Adds warnings or errors to your crate when using a numerically unstable floating point expression. -- ![stars](https://img.shields.io/github/stars/AtomLinter/linter-rust?style=flat-square&color=ccc) [linter-rust](https://github.com/AtomLinter/linter-rust) - Linting your Rust-files in Atom, using rustc and cargo. -- ![stars](https://img.shields.io/github/stars/facebookexperimental/MIRAI?style=flat-square&color=ccc) [MIRAI](https://github.com/facebookexperimental/MIRAI) - And abstract interpreter operating on Rust's mid-level intermediate language, and providing warnings based on taint analysis. -- ![stars](https://img.shields.io/github/stars/rust-lang-nursery/rls?style=flat-square&color=ccc) [Rust Language Server](https://github.com/rust-lang-nursery/rls) - Supports functionality such as 'goto definition', symbol search, reformatting, and code completion, and enables renaming and refactorings. -- ![stars](https://img.shields.io/github/stars/rust-lang/rustfix?style=flat-square&color=ccc) [rustfix](https://github.com/rust-lang/rustfix) - Read and apply the suggestions made by rustc (and third-party lints, like those offered by clippy). +- [cqmetrics](https://github.com/dspinellis/cqmetrics) — Quality metrics for C code. +- [CScout](https://www.spinellis.gr/cscout) — Complexity and quality metrics for C and C preprocessor code. -

SQL

+- **ENRE-cpp** :warning: — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-cpp is a ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development) -- ![stars](https://img.shields.io/github/stars/jarulraj/sqlcheck?style=flat-square&color=ccc) [sqlcheck](https://github.com/jarulraj/sqlcheck) - Automatically identify anti-patterns in SQL queries. -- ![stars](https://img.shields.io/github/stars/purcell/sqlint?style=flat-square&color=ccc) [sqlint](https://github.com/purcell/sqlint) - Simple SQL linter. -- ![stars](https://img.shields.io/github/stars/tsqllint/tsqllint?style=flat-square&color=ccc) [tsqllint](https://github.com/tsqllint/tsqllint) - T-SQL-specific linter. -- ![stars](https://img.shields.io/github/stars/ashleyglee/TSqlRules?style=flat-square&color=ccc) [TSqlRules](https://github.com/ashleyglee/TSqlRules) - TSQL Static Code Analysis Rules for SQL Server. +- [ESBMC](http://esbmc.org) — ESBMC is an open source, permissively licensed, context-bounded model checker based on satisfiability modulo theories for the verification of single- and multi-threaded C/C++ programs. +- [flawfinder](http://dwheeler.com/flawfinder/) — Finds possible security weaknesses. -

Scala

+- **flint++** :warning: — Cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook. -- ![stars](https://img.shields.io/github/stars/HairyFotr/linter?style=flat-square&color=ccc) [linter](https://github.com/HairyFotr/linter) - Linter is a Scala static analysis compiler plugin which adds compile-time checks for various possible bugs, inefficiencies, and style problems. -- ![stars](https://img.shields.io/github/stars/scalastyle/scalastyle?style=flat-square&color=ccc) [Scalastyle](http://www.scalastyle.org) - Scalastyle examines your Scala code and indicates potential problems with it. -- ![stars](https://img.shields.io/github/stars/sksamuel/scapegoat?style=flat-square&color=ccc) [scapegoat](https://github.com/sksamuel/scapegoat) - Scala compiler plugin for static code analysis. -- ![stars](https://img.shields.io/github/stars/puffnfresh/wartremover?style=flat-square&color=ccc) [WartRemover](https://www.wartremover.org/) - A flexible Scala code linting tool. +- [GCC](https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html) — The GCC compiler has static analysis capabilities since version 10. This option is only available if GCC was configured with analyzer support enabled. It can also output its diagnostics to a JSON file in the SARIF format (from v13). +- [Helix QAC](https://www.perforce.com/products/helix-qac) :copyright: — Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards. -

Shell

+- [IKOS](https://github.com/nasa-sw-vnv/ikos) — A sound static analyzer for C/C++ code based on LLVM. -- ![stars](https://img.shields.io/github/stars/lequal/i-CodeCNES?style=flat-square&color=ccc) [i-Code CNES for Shell](https://github.com/lequal/i-CodeCNES) - An open source static code analysis tool for Shell and Fortran (77 and 90). -- ![stars](https://img.shields.io/github/stars/koalaman/shellcheck?style=flat-square&color=ccc) [shellcheck](https://www.shellcheck.net/) - ShellCheck, a static analysis tool that gives warnings and suggestions for bash/sh shell scripts. +- [KLEE](http://klee.github.io/) — A dynamic symbolic execution engine built on top of the LLVM compiler infrastructure. It can auto-generate test cases for programs such that the test cases exercise as much of the program as possible. +- [LDRA](https://ldra.com) :copyright: — A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules. -

Solidity

+- **MATE** :warning: — A suite of tools for interactive program analysis with a focus on hunting for bugs in C and C++ code. MATE unifies application-specific and low-level vulnerability analysis using code property graphs (CPGs), enabling the discovery of highly application-specific vulnerabilities that depend on both implementation details and the high-level semantics of target C/C++ programs. -- ![stars](https://img.shields.io/github/stars/trailofbits/slither?style=flat-square&color=ccc) [slither](https://github.com/trailofbits/slither) - Static analysis framework that runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses. -- ![stars](https://img.shields.io/github/stars/protofire/solhint?style=flat-square&color=ccc) [solhint](https://protofire.github.io/solhint/) - Solhint is an open source project created by https://protofire.io. Its goal is to provide a linting utility for Solidity code. -- ![stars](https://img.shields.io/github/stars/duaraghav8/Solium?style=flat-square&color=ccc) [solium](https://ethlint.readthedocs.io/en/latest/) - Solium is a linter to identify and fix style and security issues in Solidity smart contracts. +- [PC-lint](https://pclintplus.com/) :copyright: — Static analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes code for virtually any platform, supporting C11/C18 and C++17. +- [Phasar](https://phasar.org) — A LLVM-based static analysis framework which comes with a taint and type state analysis. -

Swift

+- [Polyspace Bug Finder](https://www.mathworks.com/products/polyspace-bug-finder.html) :copyright: — Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software. -- ![stars](https://img.shields.io/github/stars/realm/SwiftLint?style=flat-square&color=ccc) [SwiftLint](https://realm.github.io/SwiftLint/) - A tool to enforce Swift style and conventions. -- ![stars](https://img.shields.io/github/stars/sleekbyte/tailor?style=flat-square&color=ccc) [Tailor](https://tailor.sh/) :warning: - A static analysis and lint tool for source code written in Apple's Swift programming language. +- [Polyspace Code Prover](https://www.mathworks.com/products/polyspace-code-prover.html) :copyright: — Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code. +- [scan-build](https://clang-analyzer.llvm.org/scan-build.html) — Frontend to drive the Clang Static Analyzer built into Clang via a regular build. -

Tcl

+- [splint](http://splint.org) — Annotation-assisted static program checker. -- [Frink](https://catless.ncl.ac.uk/Programs/Frink/) - A Tcl formatting and static check program (can prettify the program, minimise, obfuscate or just sanity check it). -- [Nagelfar](https://sourceforge.net/projects/nagelfar/) - A static syntax checker for Tcl. -- [tclchecker](https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt) - A static syntax analysis module (as part of [TDK](https://github.com/ActiveState/tdk)). +- [SVF](https://svf-tools.github.io/SVF) — A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs. +- [TrustInSoft Analyzer](https://trust-in-soft.com) :copyright: — Exhaustive detection of coding errors and their associated security vulnerabilities. This encompasses a sound undefined behavior detection (buffer overflows, out-of-bounds array accesses, null-pointer dereferences, use-after-free, divide-by-zeros, uninitialized memory accesses, signed overflows, invalid pointer arithmetic, etc.), data flow and control flow verification as well as full functional verification of formal specifications. All versions of C up to C18 and C++ up to C++20 are supported. TrustInSoft Analyzer will acquire ISO 26262 qualification in Q2'2023 (TCL3). A MISRA C checker is also bundled. -

TypeScript

+- **vera++** :warning: — Vera++ is a programmable tool for verification, analysis and transformation of C++ source code. -- ![stars](https://img.shields.io/github/stars/mgechev/codelyzer?style=flat-square&color=ccc) [Codelyzer](http://codelyzer.com/) - A set of tslint rules for static code analysis of Angular 2 TypeScript projects. -- ![stars](https://img.shields.io/github/stars/typescript-eslint/typescript-eslint?style=flat-square&color=ccc) [ESLint](https://github.com/typescript-eslint/typescript-eslint) - An extensible linter for the TypeScript language. -- ![stars](https://img.shields.io/github/stars/Glavin001/tslint-clean-code?style=flat-square&color=ccc) [tslint-clean-code](https://www.npmjs.com/package/tslint-clean-code) - A set of TSLint rules inspired by the Clean Code handbook. -- ![stars](https://img.shields.io/github/stars/Microsoft/tslint-microsoft-contrib?style=flat-square&color=ccc) [tslint-microsoft-contrib](https://github.com/Microsoft/tslint-microsoft-contrib) - A set of tslint rules for static code analysis of TypeScript projects maintained by Microsoft. +
+

Clojure

-

VBScript

-- [Test Design Studio](http://patterson-consulting.net/tds) :copyright: - A full IDE with static code analysis for Micro Focus Unified Functional Testing VBScript-based automated tests. +- [clj-kondo](https://github.com/borkdude/clj-kondo) — A linter for Clojure code that sparks joy. It informs you about potential errors while you are typing. -## Multiple languages +
+

CoffeeScript

-- [AppChecker](https://npo-echelon.ru/en/solutions/appchecker.php) :copyright: - Static analysis for C/C++/C#, PHP and Java. -- [Application Inspector](https://www.ptsecurity.com/ww-en/products/ai/) :copyright: - Commercial Static Code Analysis which generates exploits to verify vulnerabilities. -- ![stars](https://img.shields.io/github/stars/microsoft/ApplicationInspector?style=flat-square&color=ccc) [ApplicationInspector](https://github.com/microsoft/ApplicationInspector) - Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps). -- [AppScan Source](https://www.hcltechsw.com/wps/portal/products/appscan/home) :copyright: - Commercial Static Code Analysis. -- [APPscreener](https://solarappscreener.com/) :copyright: - Static code analysis for binary and source code - Java/Scala, PHP, Javascript, C#, PL/SQL, Python, T-SQL, C/C++, ObjectiveC/Swift, Visual Basic 6.0, Ruby, Delphi, ABAP, HTML5 and Solidity. -- ![stars](https://img.shields.io/github/stars/TNG/ArchUnit?style=flat-square&color=ccc) [ArchUnit](https://www.archunit.org/) - Unit test your Java or Kotlin architecture. -- ![stars](https://img.shields.io/github/stars/Glavin001/atom-beautify?style=flat-square&color=ccc) [Atom-Beautify](https://atom.io/packages/atom-beautify) - Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor. -- [Axivion Bauhaus Suite](https://www.axivion.com/en/products-services-9#products_bauhaussuite) :copyright: - Tracks down error-prone code locations, style violations, cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95. -- ![stars](https://img.shields.io/github/stars/ambv/black?style=flat-square&color=ccc) [Black](https://black.readthedocs.io/en/stable/) - The uncompromising Python code formatter. -- [CAST Highlight](https://www.castsoftware.com/products/highlight) :copyright: - Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation. -- [Checkmarx CxSAST](https://www.checkmarx.com/products/static-application-security-testing/) :copyright: - Commercial Static Code Analysis which doesn't require pre-compilation. -- ![stars](https://img.shields.io/github/stars/ContinuumIO/ciocheck?style=flat-square&color=ccc) [ciocheck](https://github.com/ContinuumIO/ciocheck) - Linter, formatter and test suite helper. As a linter, it is a wrapper around `pep8`, `pydocstyle`, `flake8`, and `pylint`. -- ![stars](https://img.shields.io/github/stars/classgraph/classgraph?style=flat-square&color=ccc) [ClassGraph](https://github.com/classgraph/classgraph) - A classpath and module path scanner for querying or visualizing class metadata or class relatedness. -- ![stars](https://img.shields.io/github/stars/coala/coala?style=flat-square&color=ccc) [coala](https://coala.io/) - Language independent framework for creating code analysis - supports [over 60 languages](https://coala.io/languages) by default. -- [Cobra](http://spinroot.com/cobra/) :copyright: - Structural source code analyzer by NASA's Jet Propulsion Laboratory. -- [Codeac](https://www.codeac.io?ref=awesome-static-analysis) :copyright: - Automated code review tool integrates with GitHub, Bitbucket and GitLab (even self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source free) -- ![stars](https://img.shields.io/github/stars/groupon/codeburner?style=flat-square&color=ccc) [codeburner](http://groupon.github.io/codeburner/) - Provides a unified interface to sort and act on the issues it finds. -- ![stars](https://img.shields.io/github/stars/Ericsson/codechecker?style=flat-square&color=ccc) [codechecker](https://codechecker.readthedocs.io/en/latest/) - A defect database and viewer extension for the Clang Static Analyzer with web GUI. -- [CodeFactor](https://codefactor.io) :copyright: - Static Code Analysis for C#, C, C++, CoffeeScript, CSS, Groovy, GO, JAVA, JavaScript, Less, Python, Ruby, Scala, SCSS, TypeScript. -- [CodeIt.Right](https://submain.com/products/codeit.right.aspx) :copyright: - CodeIt.Right™ provides a fast, automated way to ensure that your source code adheres to (your) predefined design and style guidelines as well as best coding practices. -- [CodePatrol](https://cyber-security.claranet.fr/en/codepatrol) :copyright: - Automated SAST code reviews driven by security, supports 15+ languages and includes security training. -- [CodeRush](https://www.devexpress.com/products/coderush/) :copyright: - Code creation, debugging, navigation, refactoring, analysis and visualization tools that use the Roslyn engine in Visual Studio 2015 and up. -- [CodeScene](https://empear.com/) :copyright: - CodeScene prioritizes technical debt, finds social patterns and identifies hidden risks in your code. -- ![stars](https://img.shields.io/github/stars/jameysharp/corrode?style=flat-square&color=ccc) [Corrode](https://github.com/jameysharp/corrode) - Semi-automatic translation from C to Rust. Could reveal bugs in the original implementation by showing Rust compiler warnings and errors. -- [Coverity](https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html) :copyright: - Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET. -- ![stars](https://img.shields.io/github/stars/xcatliu/cqc?style=flat-square&color=ccc) [cqc](https://github.com/xcatliu/cqc) - Check your code quality for js, jsx, vue, css, less, scss, sass and styl files. -- ![stars](https://img.shields.io/github/stars/csscomb/csscomb.js?style=flat-square&color=ccc) [CSScomb](https://github.com/csscomb/csscomb.js) - A coding style formatter for CSS. Supports own configurations to make style sheets beautiful and consistent. -- ![stars](https://img.shields.io/github/stars/thesp0nge/dawnscanner?style=flat-square&color=ccc) [dawnscanner](https://github.com/thesp0nge/dawnscanner) - A static analysis security scanner for ruby written web applications. It supports Sinatra, Padrino and Ruby on Rails frameworks. -- [DeepCode](https://www.deepcode.ai/) :copyright: - DeepCode finds bugs, security vulnerabilities, performance and API issues based on AI. DeepCode's speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, C/C++, JavaScript, Python, and TypeScript. Integrations with GitHub, BitBucket and Gitlab. -- [DeepSource](https://deepsource.io/) :copyright: - In-depth static analysis to monitor source code quality and security. Supports Python and Go and can detect 600+ types of issues in verticals of bug risks, security, anti-patterns, performance, documentation and style. Native integration with GitHub. -- ![stars](https://img.shields.io/github/stars/multilang-depends/depends?style=flat-square&color=ccc) [Depends](https://github.com/multilang-depends/depends) - Analyses the comprehensive dependencies of code elements for Java, C/C++, Ruby. -- ![stars](https://img.shields.io/github/stars/microsoft/devskim?style=flat-square&color=ccc) [DevSkim](https://github.com/microsoft/devskim) - Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others. -- [Embold](https://embold.io) :copyright: - Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more. -- ![stars](https://img.shields.io/github/stars/exakat/exakat?style=flat-square&color=ccc) [exakat](https://www.exakat.io/) - An automated code reviewing engine for PHP. -- ![stars](https://img.shields.io/github/stars/find-sec-bugs/find-sec-bugs?style=flat-square&color=ccc) [Find Security Bugs](https://find-sec-bugs.github.io/) - The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects) -- ![stars](https://img.shields.io/github/stars/PyCQA/flake8?style=flat-square&color=ccc) [flake8](https://github.com/PyCQA/flake8) - A wrapper around `pyflakes`, `pycodestyle` and `mccabe`. -- [Fortify](https://software.microfocus.com/en-us/products/static-code-analysis-sast/overview) :copyright: - A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML. -- ![stars](https://img.shields.io/github/stars/alecthomas/gometalinter?style=flat-square&color=ccc) [Go Meta Linter](https://github.com/alecthomas/gometalinter) :warning: - Concurrently run Go lint tools and normalise their output. Use `golangci-lint` for new projects. -- ![stars](https://img.shields.io/github/stars/sideci/goodcheck?style=flat-square&color=ccc) [Goodcheck](https://sider.github.io/goodcheck/) - Regexp based customizable linter. -- ![stars](https://img.shields.io/github/stars/360EntSecGroup-Skylar/goreporter?style=flat-square&color=ccc) [goreporter](https://github.com/360EntSecGroup-Skylar/goreporter) - Concurrently runs many linters and normalises their output to a report. -- ![stars](https://img.shields.io/github/stars/wireghoul/graudit?style=flat-square&color=ccc) [graudit](http://www.justanotherhacker.com/) - Grep rough audit - source code auditing tool. -- ![stars](https://img.shields.io/github/stars/cuplv/hopper?style=flat-square&color=ccc) [Hopper](https://github.com/cuplv/hopper) :warning: - A static analysis tool written in scala for languages that run on JVM. -- ![stars](https://img.shields.io/github/stars/houndci/hound?style=flat-square&color=ccc) [Hound CI](https://houndci.com/) - Comments on style violations in GitHub pull requests. Supports Coffeescript, Go, HAML, JavaScript, Ruby, SCSS and Swift. -- ![stars](https://img.shields.io/github/stars/justinabrahms/imhotep?style=flat-square&color=ccc) [imhotep](https://github.com/justinabrahms/imhotep) - Comment on commits coming into your repository and check for syntactic errors and general lint warnings. -- ![stars](https://img.shields.io/github/stars/facebook/infer?style=flat-square&color=ccc) [Infer](https://fbinfer.com/) - A static analyzer for Java, C and Objective-C -- ![stars](https://img.shields.io/github/stars/insidersec/insider?style=flat-square&color=ccc) [InsiderSec](https://insidersec.io/) - A open source Static Application Security Testing tool (SAST) written in GoLang for Java (Maven and Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# and Javascript (Node.js). -- [Kiuwan](https://www.kiuwan.com/code-security-sast/) :copyright: - Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, C\C++, Java, C#, PHP and more. -- [Klocwork](https://www.perforce.com/products/klocwork) :copyright: - Quality and Security Static analysis for C/C++, Java and C#. -- ![stars](https://img.shields.io/github/stars/shyiko/ktlint?style=flat-square&color=ccc) [ktlint](https://ktlint.github.io/) - An anti-bikeshedding Kotlin linter with built-in formatter. -- [LGTM.com](https://lgtm.com/) :copyright: - Deep code analysis for GitHub and Bitbucket to find security vulnerabilities and critical code quality issues (using Semmle QL). Automatic code review for pull requests; free for public repositories. -- ![stars](https://img.shields.io/github/stars/adamchainz/multilint?style=flat-square&color=ccc) [multilint](https://github.com/adamchainz/multilint) - A wrapper around `flake8`, `isort` and `modernize`. -- [Nitpick CI](https://nitpick-ci.com) :copyright: - Automated PHP code review. -- ![stars](https://img.shields.io/github/stars/ajinabraham/NodeJsScan?style=flat-square&color=ccc) [NodeJSScan](https://opensecurity.in/) - NodeJsScan is a static security code scanner for Node.js applications. -- ![stars](https://img.shields.io/github/stars/oclint/oclint?style=flat-square&color=ccc) [oclint](http://oclint.org/) - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. -- ![stars](https://img.shields.io/github/stars/returntocorp/pfff?style=flat-square&color=ccc) [pfff](https://github.com/facebookarchive/pfff/wiki/Main) :warning: - Facebook's tools for code analysis, visualizations, or style-preserving source transformation for many languages. -- ![stars](https://img.shields.io/github/stars/pmd/pmd?style=flat-square&color=ccc) [PMD](https://pmd.github.io/) - A source code analyzer for Java, Javascript, PLSQL, XML, XSL and others. -- [Polymer-analyzer](https://github.com/Polymer/tools/tree/master/packages/analyzer) - A static analysis framework for Web Components. -- ![stars](https://img.shields.io/github/stars/pre-commit/pre-commit?style=flat-square&color=ccc) [pre-commit](https://pre-commit.com/) - A framework for managing and maintaining multi-language pre-commit hooks. -- ![stars](https://img.shields.io/github/stars/prettier/prettier?style=flat-square&color=ccc) [Prettier](https://prettier.io/) - An opinionated code formatter. -- ![stars](https://img.shields.io/github/stars/prontolabs/pronto?style=flat-square&color=ccc) [Pronto](https://github.com/prontolabs/pronto) - Quick automated code review of your changes. Supports more than 40 runners for various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more. -- ![stars](https://img.shields.io/github/stars/PyCQA/prospector?style=flat-square&color=ccc) [prospector](https://github.com/PyCQA/prospector) - A wrapper around `pylint`, `pep8`, `mccabe` and others. -- ![stars](https://img.shields.io/github/stars/PositiveTechnologies/PT.PM?style=flat-square&color=ccc) [PT.PM](https://github.com/PositiveTechnologies/PT.PM) :warning: - An engine for searching patterns in the source code, based on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, and JavaScript are supported. Patterns can be described within the code or using a DSL. -- [PullRequest](https://www.pullrequest.com) :copyright: - Code review as a service with built-in static analysis. -- ![stars](https://img.shields.io/github/stars/pumasecurity/puma-scan?style=flat-square&color=ccc) [Puma Scan](https://pumasecurity.io/) - Puma Scan provides real time secure code analysis for common vulnerabilities (XSS, SQLi, CSRF, LDAPi, crypto, deserialization, etc.) as development teams write code in Visual Studio. -- [PVS-Studio](https://www.viva64.com/en/pvs-studio/) :copyright: - A ([conditionally free](https://www.viva64.com/en/b/0614/) for FOSS and individual developers) static analysis of C, C++, C# and Java code. For advertising purposes [you can propose a large FOSS project for analysis by PVS employees](https://github.com/viva64/pvs-studio-check-list). Supports CWE mapping, MISRA and CERT coding standards. -- ![stars](https://img.shields.io/github/stars/apiology/quality?style=flat-square&color=ccc) [quality](https://github.com/apiology/quality) - Runs quality checks on your code using community tools, and makes sure your numbers don't get any worse over time. -- [Qualys Container Security](https://www.qualys.com/apps/container-security/) :copyright: - Container native application protection to provide visibility and control of containerized applications. -- ![stars](https://img.shields.io/github/stars/quantifiedcode/quantifiedcode?style=flat-square&color=ccc) [QuantifiedCode](https://github.com/quantifiedcode/quantifiedcode) :warning: - Automated code review & repair. -- ![stars](https://img.shields.io/github/stars/icsharpcode/RefactoringEssentials?style=flat-square&color=ccc) [Refactoring Essentials](https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.RefactoringEssentialsforVisualStudio) - The free Visual Studio 2015 extension for C# and VB.NET refactorings, including code best practice analyzers. -- ![stars](https://img.shields.io/github/stars/codingjoe/relint?style=flat-square&color=ccc) [relint](https://github.com/codingjoe/relint) - A static file linter that allows you to write custom rules using regular expressions (RegEx). -- [ReSharper](https://www.jetbrains.com/resharper/) :copyright: - Extends Visual Studio with on-the-fly code inspections for C#, VB.NET, ASP.NET, JavaScript, TypeScript and other technologies. -- ![stars](https://img.shields.io/github/stars/haya14busa/reviewdog?style=flat-square&color=ccc) [Reviewdog](https://github.com/haya14busa/reviewdog) - A tool for posting review comments from any linter in any code hosting service. -- [RIPS](https://www.ripstech.com/) :copyright: - A static source code analyser for vulnerabilities in PHP scripts. -- ![stars](https://img.shields.io/github/stars/dotnet/roslyn-analyzers?style=flat-square&color=ccc) [Roslyn Analyzers](https://github.com/dotnet/roslyn-analyzers) - Roslyn-based implementation of FxCop analyzers. -- ![stars](https://img.shields.io/github/stars/security-code-scan/security-code-scan?style=flat-square&color=ccc) [Roslyn Security Guard](https://security-code-scan.github.io/) - Project that focuses on the identification of potential vulnerabilities such as SQL injection, cross-site scripting (XSS), CSRF, cryptography weaknesses, hardcoded passwords and many more. -- ![stars](https://img.shields.io/github/stars/security-code-scan/security-code-scan?style=flat-square&color=ccc) [Security Code Scan](https://security-code-scan.github.io/) - Security code analyzer for C# and VB.NET. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates into Visual Studio 2015 and newer. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. -- ![stars](https://img.shields.io/github/stars/returntocorp/semgrep?style=flat-square&color=ccc) [Semgrep](https://semgrep.live) - Free, open-source lightweight static analysis for many languages. Find and block bug variants with patterns that look like source code. -- [Semmle QL and LGTM](https://semmle.com/) :copyright: - Find security vulnerabilities, variants, and critical code quality issues using queries over source code. Automatic PR code review; free for public GitHub/Bitbucket repo: [LGTM.com](https://LGTM.com). -- [SensioLabs Insight](https://insight.sensiolabs.com/) :copyright: - Detect security risks, find bugs and provide actionable metrics for PHP projects. -- ![stars](https://img.shields.io/github/stars/ShiftLeftSecurity/sast-scan?style=flat-square&color=ccc) [ShiftLeft Scan](https://slscan.io) - Scan is a free open-source DevSecOps platform for detecting security issues in source code and dependencies. It supports a broad range of languages and CI/CD pipelines. -- ![stars](https://img.shields.io/github/stars/google/shipshape?style=flat-square&color=ccc) [shipshape](https://github.com/google/shipshape) :warning: - Static program analysis platform that allows custom analyzers to plug in through a common interface. -- [Sider](https://sider.review) :copyright: - An automated code reviewing tool. Improving developers' productivity. -- [SmartDec Scanner](https://smartdecscanner.com/) :copyright: - SAST tool which is capable of identifying vulnerabilities and undocumented features. The analyzer scans the source code and executables without debug info (i.e. binaries). Supports: Java/Scala/Kotlin, PHP, C#, JavaScript, TypeScript, VBScript, HTML5, Python, Perl, C/C++, Objective-C/Swift, PL/SQL, T-SQL, ABAP, 1C, Apex, Go, Ruby, Groovy, Delphi, VBA, Visual Basic 6, Solidity, Vyper, COBOL. -- [Snyk](https://snyk.io/) :copyright: - Vulnerability scanner for dependencies of node.js apps (free for Open Source Projects). -- [SonarCloud](https://sonarcloud.io) :copyright: - Multilanguage cloud-based static code analysis. History, trends, security hot-spots, pull request analysis and more. Free for open source. -- ![stars](https://img.shields.io/github/stars/SonarSource/sonarlint-visualstudio?style=flat-square&color=ccc) [SonarLint for Visual Studio](https://vs.sonarlint.org/) - SonarLint is an extension for Visual Studio 2015 and 2017 that provides on-the-fly feedback to developers on new bugs and quality issues injected into .NET code. -- ![stars](https://img.shields.io/github/stars/SonarSource/sonarqube?style=flat-square&color=ccc) [SonarQube](http://www.sonarqube.org/) - SonarQube is an open platform to manage code quality. -- ![stars](https://img.shields.io/github/stars/stoplightio/spectral?style=flat-square&color=ccc) [Spectral](https://stoplight.io/open-source/spectral) - A flexible JSON/YAML linter, with out of the box support for OpenAPI v2/v3 and AsyncAPI v2. -- ![stars](https://img.shields.io/github/stars/standard/standard?style=flat-square&color=ccc) [standard](http://standardjs.com/) - An npm module that checks for Javascript Styleguide issues. -- ![stars](https://img.shields.io/github/stars/r-lib/styler?style=flat-square&color=ccc) [styler](https://styler.r-lib.org/) - Formatting of R source code files and pretty-printing of R code. -- ![stars](https://img.shields.io/github/stars/github/super-linter?style=flat-square&color=ccc) [Super-Linter](https://github.com/github/super-linter) - Combination of multiple linters to install as a GitHub Action. -- ![stars](https://img.shields.io/github/stars/nicklockwood/SwiftFormat?style=flat-square&color=ccc) [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) - A library and command-line formatting tool for reformatting Swift code. -- [Synopsys](https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html) :copyright: - A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift). -- [Teamscale](http://www.teamscale.com/) :copyright: - Static and dynamic analysis tool supporting more than 25 languages and direct IDE integration. Free hosting for Open Source projects available on request. Free academic licenses available. -- ![stars](https://img.shields.io/github/stars/Tencent/TscanCode?style=flat-square&color=ccc) [TscanCode](https://github.com/Tencent/TscanCode) - A fast and accurate static analysis solution for C/C++, C#, Lua codes provided by Tencent. Using GPLv3 license. -- ![stars](https://img.shields.io/github/stars/Yelp/undebt?style=flat-square&color=ccc) [Undebt](https://github.com/Yelp/undebt) - Language-independent tool for massive, automatic, programmable refactoring based on simple pattern definitions. -- ![stars](https://img.shields.io/github/stars/unibeautify/unibeautify?style=flat-square&color=ccc) [Unibeautify](https://unibeautify.com/) - Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more. -- [Upsource](https://www.jetbrains.com/upsource/) :copyright: - Code review tool with static code analysis and code-aware navigation for Java, PHP, JavaScript and Kotlin. -- [Veracode](http://www.veracode.com/products/static-analysis-sast/static-code-analysis) :copyright: - Find flaws in binaries and bytecode without requiring source. Support all major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, C++ and more. -- ![stars](https://img.shields.io/github/stars/tomasbjerre/violations-lib?style=flat-square&color=ccc) [Violations Lib](https://github.com/tomasbjerre/violations-lib) - Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins. -- ![stars](https://img.shields.io/github/stars/wala/WALA?style=flat-square&color=ccc) [WALA](http://wala.sourceforge.net) - Static analysis capabilities for Java bytecode and related languages and for JavaScript. -- [WhiteHat Application Security Platform](https://www.whitehatsec.com/platform/static-application-security-testing/) :copyright: - WhiteHat Scout (for Developers) combined with WhiteHat Sentinel Source (for Operations) supporting WhiteHat Top 40 and OWASP Top 10. -- ![stars](https://img.shields.io/github/stars/fimbullinter/wotan?style=flat-square&color=ccc) [Wotan](https://github.com/fimbullinter/wotan) - Pluggable TypeScript and JavaScript linter. -- [Xanitizer](https://xanitizer.com/) :copyright: - Xanitizer finds security vulnerabilities in Java/Scala web applications. -- [XCode](https://developer.apple.com/xcode/) :copyright: - XCode provides a pretty decent UI for [Clang's](http://clang-analyzer.llvm.org/xcode.html) static code analyzer (C/C++, Obj-C). -- ![stars](https://img.shields.io/github/stars/adrienverge/yamllint?style=flat-square&color=ccc) [yamllint](https://yamllint.readthedocs.io/) - Checks YAML files for syntax validity, key repetition and cosmetic problems such as lines length, trailing spaces, and indentation. +- **coffeelint** :warning: — A style checker that helps keep CoffeeScript code clean and consistent. -## Other +
+

ColdFusion

-

Binaries

+- [Fixinator](https://fixinator.app) :copyright: — Static security code analysis for ColdFusion or CFML code. Designed to work within a CI pipeline or from the developers terminal. -- ![stars](https://img.shields.io/github/stars/Microsoft/binskim?style=flat-square&color=ccc) [BinSkim](https://github.com/Microsoft/binskim) - A binary static analysis tool that provides security and correctness results for Windows portable executables. -- ![stars](https://img.shields.io/github/stars/fkie-cad/cwe_checker?style=flat-square&color=ccc) [cwe_checker](https://github.com/fkie-cad/cwe_checker) - cwe_checker finds vulnerable patterns in binary executables. -- ![stars](https://img.shields.io/github/stars/NationalSecurityAgency/ghidra?style=flat-square&color=ccc) [Ghidra](https://ghidra-sre.org) - A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission -- [IDA Free](https://www.hex-rays.com/products/ida/support/download_freeware/) :copyright: - Binary code analysis tool. -- ![stars](https://img.shields.io/github/stars/jkinder/jakstab?style=flat-square&color=ccc) [Jakstab](https://github.com/jkinder/jakstab) - Jakstab is an Abstract Interpretation-based, integrated disassembly and static analysis framework for designing analyses on executables and recovering reliable control flow graphs. -- ![stars](https://img.shields.io/github/stars/JusticeRage/Manalyze?style=flat-square&color=ccc) [Manalyze](https://github.com/JusticeRage/Manalyze) - A static analyzer, which checks portable executables for malicious content. -- ![stars](https://img.shields.io/github/stars/rustwasm/twiggy?style=flat-square&color=ccc) [Twiggy](https://rustwasm.github.io/twiggy/) - Analyzes a binary's call graph to profile code size. The goal is to slim down binaries. +
+

Crystal

-

Build tools

-- ![stars](https://img.shields.io/github/stars/mrtazz/checkmake?style=flat-square&color=ccc) [checkmake](https://github.com/mrtazz/checkmake) - Linter / Analyzer for Makefiles. +- [ameba](https://crystal-ameba.github.io) — A static code analysis tool for Crystal. +- [crystal](https://crystal-lang.org) — The Crystal compiler has built-in linting functionality. -

CSS/SASS/SCSS

-- ![stars](https://img.shields.io/github/stars/cssstats/cssstats?style=flat-square&color=ccc) [CSS Stats](https://cssstats.com/) - Potentially interesting stats on stylesheets. -- ![stars](https://img.shields.io/github/stars/CSSLint/csslint?style=flat-square&color=ccc) [CSSLint](http://csslint.net/) - Does basic syntax checking and finds problematic patterns or signs of inefficiency. -- ![stars](https://img.shields.io/github/stars/TheJaredWilcurt/itcss-specificity-graph?style=flat-square&color=ccc) [GraphMyCSS.com](https://graphmycss.com) - CSS Specificity Graph Generator. -- ![stars](https://img.shields.io/github/stars/katiefenn/parker?style=flat-square&color=ccc) [Parker](https://github.com/katiefenn/parker) - Stylesheet analysis tool. -- ![stars](https://img.shields.io/github/stars/postcss/postcss?style=flat-square&color=ccc) [PostCSS](https://postcss.org/) - A tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more. -- ![stars](https://img.shields.io/github/stars/projectwallace/css-analyzer?style=flat-square&color=ccc) [Project Wallace CSS Analyzer](https://www.projectwallace.com/) - Analytics for CSS, part of [Project Wallace](https://www.projectwallace.com). -- ![stars](https://img.shields.io/github/stars/sasstools/sass-lint?style=flat-square&color=ccc) [sass-lint](https://github.com/sasstools/sass-lint) :warning: - A Node-only Sass linter for both sass and scss syntax. -- ![stars](https://img.shields.io/github/stars/brigade/scss-lint?style=flat-square&color=ccc) [scsslint](https://github.com/brigade/scss-lint) :warning: - Linter for SCSS files. -- ![stars](https://img.shields.io/github/stars/pocketjoso/specificity-graph?style=flat-square&color=ccc) [Specificity Graph](https://jonassebastianohlsson.com/specificity-graph/) - CSS Specificity Graph Generator. -- ![stars](https://img.shields.io/github/stars/stylelint/stylelint?style=flat-square&color=ccc) [Stylelint](http://stylelint.io/) - Linter for SCSS/CSS files. +
+

Dart

-

Config Files

+- **Dart Code Metrics** :warning: — Additional linter for Dart. Reports code metrics, checks for anti-patterns and provides additional rules for Dart analyzer. -- ![stars](https://img.shields.io/github/stars/wemake-services/dotenv-linter?style=flat-square&color=ccc) [dotenv-linter](https://dotenv-linter.readthedocs.io/en/latest/) - Linting dotenv files like a charm. -- ![stars](https://img.shields.io/github/stars/yandex/gixy?style=flat-square&color=ccc) [gixy](https://github.com/yandex/gixy) - A tool to analyze Nginx configuration. The main goal is to prevent misconfiguration and automate flaw detection. +- [effective_dart](https://pub.dev/packages/effective_dart) — Linter rules corresponding to the guidelines in Effective Dart +- **lint** :warning: — An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter -

Configuration Management

+- **Linter for dart** :warning: — Style linter for Dart. -- ![stars](https://img.shields.io/github/stars/willthames/ansible-lint?style=flat-square&color=ccc) [ansible-lint](https://docs.ansible.com/ansible-lint/) - Checks playbooks for practices and behaviour that could potentially be improved. -- ![stars](https://img.shields.io/github/stars/awslabs/cfn-python-lint?style=flat-square&color=ccc) [cfn-lint](https://github.com/awslabs/cfn-python-lint) - AWS Labs CloudFormation linter. -- ![stars](https://img.shields.io/github/stars/stelligent/cfn_nag?style=flat-square&color=ccc) [cfn_nag](https://github.com/stelligent/cfn_nag) - A linter for AWS CloudFormation templates. -- ![stars](https://img.shields.io/github/stars/bridgecrewio/checkov?style=flat-square&color=ccc) [checkov](https://www.checkov.io/) - Static analysis tool for Terraform files (tf>=v0.12), preventing cloud misconfigs at build time. -- ![stars](https://img.shields.io/github/stars/chef/cookstyle?style=flat-square&color=ccc) [cookstyle](https://docs.chef.io/cookstyle.html) - Cookstyle is a linting tool based on the RuboCop Ruby linting tool for Chef cookbooks. -- ![stars](https://img.shields.io/github/stars/foodcritic/foodcritic?style=flat-square&color=ccc) [foodcritic](http://www.foodcritic.io/) - A lint tool that checks Chef cookbooks for common problems. -- ![stars](https://img.shields.io/github/stars/rodjek/puppet-lint?style=flat-square&color=ccc) [Puppet Lint](https://github.com/rodjek/puppet-lint) - Check that your Puppet manifests conform to the style guide. -- ![stars](https://img.shields.io/github/stars/eerkunt/terraform-compliance?style=flat-square&color=ccc) [terraform-compliance](https://terraform-compliance.com) - A lightweight, compliance- and security focused, BDD test framework against Terraform. -- ![stars](https://img.shields.io/github/stars/cesar-rodriguez/terrascan?style=flat-square&color=ccc) [terrascan](https://github.com/cesar-rodriguez/terrascan) - Collection of security and best practice tests for static code analysis of Terraform templates. -- ![stars](https://img.shields.io/github/stars/wata727/tflint?style=flat-square&color=ccc) [tflint](https://github.com/wata727/tflint) - A Terraform linter for detecting errors that can not be detected by `terraform plan`. +
+

Delphi

-

Containers

-- ![stars](https://img.shields.io/github/stars/anchore/anchore-engine?style=flat-square&color=ccc) [anchore](https://anchore.io/) - Discover, analyze, and certify container images. -- ![stars](https://img.shields.io/github/stars/coreos/clair?style=flat-square&color=ccc) [clair](https://github.com/coreos/clair) - Vulnerability Static Analysis for Containers. -- ![stars](https://img.shields.io/github/stars/banyanops/collector?style=flat-square&color=ccc) [collector](https://github.com/banyanops/collector) - Run arbitrary scripts inside containers, and gather useful information. -- ![stars](https://img.shields.io/github/stars/eliasgranderubio/dagda?style=flat-square&color=ccc) [dagda](https://github.com/eliasgranderubio/dagda) - Perform static analysis of known vulnerabilities in docker images/containers. -- ![stars](https://img.shields.io/github/stars/garethr/docker-label-inspector?style=flat-square&color=ccc) [Docker Label Inspector](https://github.com/garethr/docker-label-inspector) - Lint and validate Dockerfile labels. -- ![stars](https://img.shields.io/github/stars/lukasmartinelli/hadolint?style=flat-square&color=ccc) [Haskell Dockerfile Linter](https://github.com/lukasmartinelli/hadolint) - A smarter Dockerfile linter that helpsyou build best practice Docker images. -- ![stars](https://img.shields.io/github/stars/zegl/kube-score?style=flat-square&color=ccc) [kube-score](https://kube-score.com/) - Static code analysis of your Kubernetes object definitions. -- ![stars](https://img.shields.io/github/stars/instrumenta/kubeval?style=flat-square&color=ccc) [kubeval](https://kubeval.instrumenta.dev/) - Validates your Kubernetes configuration files and supports multiple Kubernetes versions. +- [DelphiLint](https://github.com/integrated-application-development/delphilint) — A Delphi IDE package providing on-the-fly code analysis and linting, powered by SonarDelphi. +- [Fix Insight](https://www.tmssoftware.com/site/fixinsight.asp) :copyright: — A free IDE Plugin for static code analysis. A _Pro_ edition includes a command line tool for automation purposes. -

Deno

+- [Pascal Analyzer](https://peganza.com/products_pal.html) :copyright: — A static code analysis tool with numerous reports. A free _Lite_ version is available with limited reporting. -- ![stars](https://img.shields.io/github/stars/denoland/deno_lint?style=flat-square&color=ccc) [deno_lint](https://github.com/denoland/deno_lint) - Official linter for Deno. +- [Pascal Expert](https://peganza.com/products_pex.html) :copyright: — IDE plugin for code analysis. Includes a subset of Pascal Analyzer reporting capabilities and is available for Delphi versions 2007 and later. +- [SonarDelphi](https://github.com/integrated-application-development/sonar-delphi) — Delphi static analyzer for the SonarQube code quality platform. -

Gherkin

-- ![stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?style=flat-square&color=ccc) [gherkin-lint](https://github.com/vsiakka/gherkin-lint) - A linter for the Gherkin-Syntax written in Javascript. +
+

Dlang

-

HTML

+- [D-scanner](https://github.com/dlang-community/D-Scanner) — D-Scanner is a tool for analyzing D source code. -- ![stars](https://img.shields.io/github/stars/twbs/bootlint?style=flat-square&color=ccc) [Bootlint](https://github.com/twbs/bootlint) - An HTML linter for Bootstrap projects. -- ![stars](https://img.shields.io/github/stars/twbs/grunt-bootlint?style=flat-square&color=ccc) [grunt-bootlint](https://github.com/twbs/grunt-bootlint) - A Grunt wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects. -- ![stars](https://img.shields.io/github/stars/tschortsch/gulp-bootlint?style=flat-square&color=ccc) [gulp-bootlint](https://github.com/tschortsch/gulp-bootlint) - A gulp wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects. -- ![stars](https://img.shields.io/github/stars/philipwalton/html-inspector?style=flat-square&color=ccc) [HTML Inspector](https://github.com/philipwalton/html-inspector) :warning: - HTML Inspector is a code quality tool to help you and your team write better markup. -- ![stars](https://img.shields.io/github/stars/htacg/tidy-html5?style=flat-square&color=ccc) [HTML Tidy](http://www.html-tidy.org/) - Corrects and cleans up HTML and XML documents by fixing markup errors and upgrading legacy code to modern standards. -- ![stars](https://img.shields.io/github/stars/yaniswang/HTMLHint?style=flat-square&color=ccc) [HTMLHint](https://htmlhint.com/) - A Static Code Analysis Tool for HTML. +
+

Elixir

-

IDE Plugins

-- ![stars](https://img.shields.io/github/stars/w0rp/ale?style=flat-square&color=ccc) [ale](https://github.com/w0rp/ale) - Asynchronous Lint Engine for Vim and NeoVim with support for many languages. -- [Android Studio](https://developer.android.com/studio) - Based on IntelliJ IDEA, and comes bundled with tools for Android including Android Lint. -- [Attackflow Extension](https://www.attackflow.com/Extension) :copyright: - Attackflow plugin for Visual Studio, which enables developers to find critical security bugs at real time in the source code without any prior knowledge. -- ![stars](https://img.shields.io/github/stars/Microsoft/DevSkim?style=flat-square&color=ccc) [DevSkim](https://github.com/Microsoft/DevSkim) - Inline, realtime security analysis. Works with multiple programming languages and IDEs (VS, VS Code, Sublime Text, ...). -- [IntelliJ IDEA](https://www.jetbrains.com/idea/) :copyright: - Comes bundled with a lot of inspections for Java and Kotlin and includes tools for refactoring, formatting and more. -- ![stars](https://img.shields.io/github/stars/Kuniwak/vint?style=flat-square&color=ccc) [vint](https://github.com/Kuniwak/vint) - Fast and Highly Extensible Vim script Language Lint implemented by Python. +- [credo](https://github.com/rrrene/credo) — A static code analysis tool with a focus on code consistency and teaching. +- [dialyxir](https://github.com/jeremyjh/dialyxir) — Mix tasks to simplify use of Dialyzer in Elixir projects. -

LaTeX

+- [sobelow](https://github.com/nccgroup/sobelow) — Security-focused static analysis for the Phoenix Framework. -- [ChkTeX](http://www.nongnu.org/chktex/) - A linter for LaTex which catches some typographic errors LaTeX oversees. -- [lacheck](https://www.ctan.org/pkg/lacheck) - A tool for finding common mistakes in LaTeX documents. -- ![stars](https://img.shields.io/github/stars/latex-lsp/texlab?style=flat-square&color=ccc) [TeXLab](https://texlab.netlify.app) - A Language Server Protocol implementation for TeX/LaTeX, including lint capabilities. +
+

Elm

-

Makefiles

-- [portlint](https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports) - A verifier for FreeBSD and DragonFlyBSD port directories. +- **elm-analyse** :warning: — A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices. +- [elm-review](https://package.elm-lang.org/packages/jfmengels/elm-review/latest) — Analyzes whole Elm projects, with a focus on shareable and custom rules written in Elm that add guarantees the Elm compiler doesn't give you. -

Markdown

-- ![stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?style=flat-square&color=ccc) [markdownlint](https://github.com/DavidAnson/markdownlint) - Node.js -based style checker and lint tool for Markdown/CommonMark files. -- ![stars](https://img.shields.io/github/stars/mivok/markdownlint?style=flat-square&color=ccc) [mdl](https://github.com/mivok/markdownlint) - A tool to check Markdown files and flag style issues. -- ![stars](https://img.shields.io/github/stars/remarkjs/remark-lint?style=flat-square&color=ccc) [remark-lint](https://remark.js.org/) - Pluggable Markdown code style linter written in JavaScript. +
+

Erlang

-

Mobile

+- [dialyzer](https://www.erlang.org/doc/man/dialyzer.html) — The DIALYZER, a DIscrepancy AnaLYZer for ERlang programs. Dialyzer is a static analysis tool that identifies software discrepancies, such as definite type errors, code that has become dead or unreachable because of programming error, and unnecessary tests, in single Erlang modules or entire (sets of) applications. +Dialyzer starts its analysis from either debug-compiled BEAM bytecode or from Erlang source code. The file and line number of a discrepancy is reported along with an indication of what the discrepancy is about. Dialyzer bases its analysis on the concept of success typings, which allows for sound warnings (no false positives). -- [Android Lint](http://tools.android.com/tips/lint) - Run static analysis on Android projects. -- ![stars](https://img.shields.io/github/stars/passy/android-lint-summary?style=flat-square&color=ccc) [android-lint-summary](https://passy.github.io/android-lint-summary/) - Combines lint errors of multiple projects into one output, check lint results of multiple sub-projects at once. -- ![stars](https://img.shields.io/github/stars/secure-software-engineering/FlowDroid?style=flat-square&color=ccc) [FlowDroid](https://github.com/secure-software-engineering/FlowDroid) - Static taint analysis tool for Android applications. -- ![stars](https://img.shields.io/github/stars/GeoffreyHecht/paprika?style=flat-square&color=ccc) [paprika](https://github.com/GeoffreyHecht/paprika) - A toolkit to detect some code smells in analyzed Android applications. -- ![stars](https://img.shields.io/github/stars/linkedin/qark?style=flat-square&color=ccc) [qark](https://github.com/linkedin/qark) - Tool to look for several security related Android application vulnerabilities. +- [elvis](https://github.com/inaka/elvis) — Erlang Style Reviewer. +- **Primitive Erlang Security Tool (PEST)** :warning: — A tool to do a basic scan of Erlang source code and report any function calls that may cause Erlang source code to be insecure. -

Packages

-- ![stars](https://img.shields.io/github/stars/Debian/lintian?style=flat-square&color=ccc) [lintian](https://lintian.debian.org/) - Static analysis tool for Debian packages. -- ![stars](https://img.shields.io/github/stars/rpm-software-management/rpmlint?style=flat-square&color=ccc) [rpmlint](https://github.com/rpm-software-management/rpmlint) - Tool for checking common errors in rpm packages. +
+

F#

-

Protocol Buffers

+- [fantomas](https://fsprojects.github.io/fantomas/) — F# source code formatter. -- ![stars](https://img.shields.io/github/stars/yoheimuta/protolint?style=flat-square&color=ccc) [protolint](https://github.com/yoheimuta/protolint) - Pluggable linter and fixer to enforce Protocol Buffer style and conventions. +- [FSharpLint](https://github.com/fsprojects/FSharpLint) — Lint tool for F#. +- [ionide-analyzers](https://ionide.io/ionide-analyzers/) — A collection of F# analyzers, built with the FSharp.Analyzers.SDK. -

Supporting Tools

-- ![stars](https://img.shields.io/github/stars/uni-bremen-agst/libvcs4j?style=flat-square&color=ccc) [LibVCS4j](https://github.com/uni-bremen-agst/libvcs4j) - A Java library that allows existing tools to analyse the evolution of software systems by providing a common API for different version control systems and issue trackers. +
+

Fortran

-

Template-Languages

+- [Fortitude](https://fortitude.readthedocs.io) — Fortran linter, inspired by (and built on) Ruff, and based on community best practices. Supports latest Fortran (2023) standard. -- ![stars](https://img.shields.io/github/stars/ember-template-lint/ember-template-lint?style=flat-square&color=ccc) [ember-template-lint](https://github.com/ember-template-lint/ember-template-lint) - Linter for Ember or Handlebars templates. -- ![stars](https://img.shields.io/github/stars/sds/haml-lint?style=flat-square&color=ccc) [haml-lint](https://github.com/sds/haml-lint) - Tool for writing clean and consistent HAML. -- ![stars](https://img.shields.io/github/stars/sds/slim-lint?style=flat-square&color=ccc) [slim-lint](https://github.com/sds/slim-lint) - Configurable tool for analyzing Slim templates. +- [fprettify](https://pypi.python.org/pypi/fprettify) — Auto-formatter for modern fortran source code, written in Python. +Fprettify is a tool that provides consistent whitespace, indentation, and delimiter alignment in code, including the ability to change letter case and handle preprocessor directives, all while preserving revision history and tested for editor integration. +- **i-Code CNES for Fortran** :warning: — An open source static code analysis tool for Fortran 77, Fortran 90 and Shell. -

Translation

-- ![stars](https://img.shields.io/github/stars/willkg/dennis?style=flat-square&color=ccc) [dennis](https://github.com/willkg/dennis/) - A set of utilities for working with PO files to ease development and improve quality. +
+

Go

-

Web services

+- [aligncheck](https://gitlab.com/opennota/check) — Find inefficiently packed structs. -- [Codacy](https://www.codacy.com/) :copyright: - Code Analysis to ship Better Code, Faster. -- [Code Climate](https://codeclimate.com/) :copyright: - The open and extensible static analysis platform, for everyone. -- [Code Inspector](https://www.code-inspector.com) :copyright: - Code quality and technical debt management platform that supports 10+ languages. -- [CodeFactor](https://codefactor.io) :copyright: - Automated Code Analysis for repos on GitHub or BitBucket. -- [CodeFlow](https://www.getcodeflow.com) :copyright: - Automated code analysis tool to deal with technical depth. Integrates with Bitbucket and Gitlab. (free for Open Source Projects) -- [kiuwan](https://www.kiuwan.com/) :copyright: - Software Analytics in the Cloud supporting more than 22 programming languages. -- [Landscape](https://landscape.io/) :warning: :copyright: - Static code analysis for Python. -- [Reshift](https://www.reshiftsecurity.com/) :copyright: - A source code analysis tool for detecting and managing Java security vulnerabilities. -- [Scrutinizer](https://scrutinizer-ci.com/) :copyright: - A proprietary code quality checker that can be integrated with GitHub. +- [bodyclose](https://github.com/timakin/bodyclose) — Checks whether HTTP response body is closed. +- [deadcode](https://github.com/tsenart/deadcode) — Finds unused code. -

Writing

+- **dingo-hunter** :warning: — Static analyser for finding deadlocks in Go. -- [After the Deadline](https://afterthedeadline.com/) :warning: - Spell, style and grammar checker. -- ![stars](https://img.shields.io/github/stars/codespell-project/codespell?style=flat-square&color=ccc) [codespell](https://github.com/codespell-project/codespell) - Check code for common misspellings. -- ![stars](https://img.shields.io/github/stars/languagetool-org/languagetool?style=flat-square&color=ccc) [languagetool](https://languagetool.org/) - Style and grammar checker for 25+ languages. It finds many errors that a simple spell checker cannot detect. -- ![stars](https://img.shields.io/github/stars/vlajos/misspell-fixer?style=flat-square&color=ccc) [misspell-fixer](https://github.com/vlajos/misspell-fixer) - Quick tool for fixing common misspellings, typos in source code. -- ![stars](https://img.shields.io/github/stars/jwilk/mwic?style=flat-square&color=ccc) [Misspelled Words In Context](http://jwilk.net/software/mwic) - A spell-checker that groups possible misspellings and shows them in their contexts. -- ![stars](https://img.shields.io/github/stars/amperser/proselint?style=flat-square&color=ccc) [proselint](http://proselint.com/) - A linter for English prose with a focus on writing style instead of grammar. -- ![stars](https://img.shields.io/github/stars/ValeLint/vale?style=flat-square&color=ccc) [vale](https://errata-ai.gitbook.io/vale/) - A customizable, syntax-aware linter for prose. -- ![stars](https://img.shields.io/github/stars/btford/write-good?style=flat-square&color=ccc) [write-good](https://github.com/btford/write-good) - A linter with a focus on eliminating "weasel words". +- [dogsled](https://github.com/alexkohler/dogsled) — Finds assignments/declarations with too many blank identifiers. +- [dupl](https://github.com/mibk/dupl) — Reports potentially duplicated code. -## More Collections +- [errcheck](https://github.com/kisielk/errcheck) — Check that error return values are used. -- [go-tools](https://github.com/dominikh/go-tools) - A collection of tools and libraries for working with Go code, including linters and static analysis -- [linters](https://github.com/mcandre/linters/tree/b044f0628c4a96dfea869cf61e0e96cf4c49cf6b) - An introduction to static code analysis -- [php-static-analysis-tools](https://github.com/exakat/php-static-analysis-tools) - A reviewed list of useful PHP static analysis tools -- [Tools for C/C++](https://www.peerlyst.com/posts/a-list-of-static-analysis-tools-for-c-c-peerlyst?utm_source=twitter&utm_medium=social&utm_content=peerlyst_post&utm_campaign=peerlyst_resources) - A list of static analysis tools for C/C++ -- [Wikipedia](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis) - A list of tools for static code analysis. +- **errwrap** :warning: — Wrap and fix Go errors with the new %w verb directive. This tool analyzes fmt.Errorf() calls and reports calls that contain a verb directive that is different than the new %w verb directive introduced in Go v1.13. It's also capable of rewriting calls to use the new %w wrap verb directive. -## License +- [flen](https://github.com/lafolle/flen) — Get info on length of functions in a Go package. -[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) +- **Go Meta Linter** :warning: — Concurrently run Go lint tools and normalise their output. Use `golangci-lint` for new projects. -To the extent possible under law, [Matthias Endler](https://endler.dev) has waived all copyright and related or neighboring rights to this work. -Title image [Designed by Freepik](http://www.freepik.com). +- [go tool vet --shadow](https://golang.org/cmd/vet#hdr-Shadowed_variables) — Reports variables that may have been unintentionally shadowed. + +- [go vet](https://golang.org/cmd/vet) — Examines Go source code and reports suspicious. + +- **go-consistent** :warning: — Analyzer that helps you to make your Go programs more consistent. + +- [go-critic](https://github.com/go-critic/go-critic) — Go source code linter that maintains checks which are currently not implemented in other linters. + +- [go/ast](https://golang.org/pkg/go/ast) — Package ast declares the types used to represent syntax trees for Go packages. + +- [goast](https://github.com/m-mizutani/goast) — Go AST (Abstract Syntax Tree) based static analysis tool with Rego. + +- **gochecknoglobals** :warning: — Checks that no globals are present. + +- [goconst](https://github.com/jgautheron/goconst) — Finds repeated strings that could be replaced by a constant. + +- [gocyclo](https://github.com/fzipp/gocyclo) — Calculate cyclomatic complexities of functions in Go source code. + +- [gofmt -s](https://golang.org/cmd/gofmt) — Checks if the code is properly formatted and could not be further simplified. + +- [gofumpt](https://github.com/mvdan/gofumpt) — Enforce a stricter format than `gofmt`, while being backwards-compatible. That is, `gofumpt` is happy with a subset of the formats that `gofmt` is happy with. +The tool is a fork of `gofmt` as of Go 1.19, and requires Go 1.18 or later. It can be used as a drop-in replacement to format your Go code, and running gofmt after gofumpt should produce no changes. +`gofumpt` will never add rules which disagree with `gofmt` formatting. So we extend `gofmt` rather than compete with it. + +- [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) — Checks missing or unreferenced package imports. + +- [gokart](https://github.com/praetorian-inc/gokart) — Golang security analysis with a focus on minimizing false positives. It is capable of tracing the source of variables and function arguments to determine whether input sources are safe. + +- [GolangCI-Lint](https://golangci-lint.run) — Fast linters runner for Go. It aggregates multiple Go linters and provides a unified configuration, caching, and output format. Alternative to `Go Meta Linter`. + +- [golint](https://github.com/golang/lint) — Prints out coding style mistakes in Go source code. + +- [goreporter](https://github.com/360EntSecGroup-Skylar/goreporter) — Concurrently runs many linters and normalises their output to a report. + +- [goroutine-inspect](https://github.com/linuxerwang/goroutine-inspect) — An interactive tool to analyze Golang goroutine dump. + +- [gosec (gas)](https://securego.io) — Inspects source code for security problems by scanning the Go AST. + +- [gotype](https://pkg.go.dev/golang.org/x/tools/cmd/gotype) — Syntactic and semantic analysis similar to the Go compiler. + +- [govulncheck](https://go.dev/blog/vuln) — Govulncheck reports known vulnerabilities that affect Go code. It uses static analysis of source code or a binary's symbol table to narrow down reports to only those that could affect the application. +By default, govulncheck makes requests to the Go vulnerability database at https://vuln.go.dev. Requests to the vulnerability database contain only module paths, not code or other properties of your program. + +- [ineffassign](https://github.com/gordonklaus/ineffassign) — Detect ineffectual assignments in Go code. + +- **interfacer** :warning: — Suggest narrower interfaces that can be used. + +- [lll](https://github.com/walle/lll) — Report long lines. + +- **maligned** :warning: — Detect structs that would take less memory if their fields were sorted. + +- [misspell](https://github.com/client9/misspell) — Finds commonly misspelled English words. + +- **nakedret** :warning: — Finds naked returns. + +- [nargs](https://github.com/alexkohler/nargs) — Finds unused arguments in function declarations. + +- [OSV-Scanner](https://osv.dev/) — Vulnerability scanner written in Go which uses the data provided by OSV.dev. Developed by Google to scan dependencies across multiple languages and package managers for known vulnerabilities. Supports container scanning, license scanning, and guided remediation. Works with lockfiles, SBOMs, and container images to identify security issues. + +- [prealloc](https://github.com/alexkohler/prealloc) — Finds slice declarations that could potentially be preallocated. + +- [Reviewdog](https://github.com/haya14busa/reviewdog) — A tool for posting review comments from any linter in any code hosting service. + +- [revive](https://revive.run) — Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. + +- **safesql** :warning: — Static analysis tool for Golang that protects against SQL injections. + +- **shisho** :warning: — A lightweight static code analyzer designed for developers and security teams. It allows you to analyze and transform source code with an intuitive DSL similar to sed, but for code. + +- [staticcheck](https://staticcheck.io) — Go static analysis that specialises in finding bugs, simplifying code and improving performance. + +- [structcheck](https://gitlab.com/opennota/check) — Find unused struct fields. + +- [structslop](https://github.com/orijtech/structslop) — Static analyzer for Go that recommends struct field rearrangements to provide for maximum space/allocation efficiency + +- [test](https://pkg.go.dev/testing) — Show location of test failures from the stdlib testing module. + +- **unconvert** :warning: — Detect redundant type conversions. + +- [unparam](https://github.com/mvdan/unparam) — Find unused function parameters. + +- [varcheck](https://gitlab.com/opennota/check) — Find unused global variables and constants. + +- [wsl](https://github.com/bombsimon/wsl) — Enforces empty lines at the right places. + + +
+

Groovy

+ + +- [CodeNarc](https://codenarc.github.io/CodeNarc) — A static analysis tool for Groovy source code, enabling monitoring and enforcement of many coding standards and best practices. + + +
+

Haskell

+ + +- **brittany** :warning: — Haskell source code formatter + +- [HLint](https://github.com/ndmitchell/hlint) — HLint is a tool for suggesting possible improvements to Haskell code. + +- [Liquid Haskell](https://ucsd-progsys.github.io/liquidhaskell-blog/) — Liquid Haskell is a refinement type checker for Haskell programs. + +- [Stan](https://kowainik.github.io/projects/stan) — Stan is a command-line tool for analysing Haskell projects and outputting discovered vulnerabilities in a helpful way with possible solutions for detected problems. + +- [Weeder](https://github.com/ocharles/weeder) — A tool for detecting dead exports or package imports in Haskell code. + + +
+

Haxe

+ + +- [Haxe Checkstyle](https://haxecheckstyle.github.io/docs/haxe-checkstyle/home.html) — A static analysis tool to help developers write Haxe code that adheres to a coding standard. + + +
+

Java

+ + +- [Checker Framework](https://checkerframework.org) — Pluggable type-checking for Java. This is not just a bug-finder, but a verification tool that gives a guarantee of correctness. It comes with 27 pre-built type systems, and it enables users to define their own type system; the manual lists over 30 user-contributed type systems. + +- [checkstyle](https://checkstyle.org) — Checking Java source code for adherence to a Code Standard or set of validation rules (best practices). + +- [ck](https://github.com/mauricioaniche/ck) — Calculates Chidamber and Kemerer object-oriented metrics by processing the source Java files. + +- [ckjm](http://www.spinellis.gr/sw/ckjm) — Calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files. + +- **CogniCrypt** :warning: — Checks Java source and byte code for incorrect uses of cryptographic APIs. + +- [Dataflow Framework](https://github.com/typetools/checker-framework) — An industrial-strength dataflow framework for Java. The Dataflow Framework is used in the Checker Framework, Google’s Error Prone, Uber’s NullAway, Meta’s Nullsafe, and in other contexts. It is distributed with the Checker Framework. + +- [DesigniteJava](http://www.designite-tools.com/designitejava) :copyright: — DesigniteJava supports detection of various architecture, design, and implementation smells along with computation of various code quality metrics. + +- [Diffblue](https://www.diffblue.com/) :copyright: — Diffblue is a software company that provides AI-powered code analysis and testing solutions for software development teams. +Its technology helps developers automate testing, find bugs, and reduce manual labor in their software development processes. The company's main product, Diffblue Cover, uses AI to generate and run unit tests for Java code, helping to catch errors and improve code quality. + +- [Doop](https://plast-lab.github.io/doop-pldi15-tutorial/) — Doop is a declarative framework for static analysis of Java/Android programs, centered on pointer analysis algorithms. Doop provides a large variety of analyses and also the surrounding scaffolding to run an analysis end-to-end (fact generation, processing, statistics, etc.). + +- **ENRE-java** :warning: — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-java is a ENtity Relationship Extractor for Java projects based on @Eclipse JDT/parser. + +- [Error Prone](https://errorprone.info) — Catch common Java mistakes as compile-time errors. + +- [fb-contrib](http://fb-contrib.sourceforge.net) — A plugin for FindBugs with additional bug detectors. + +- [forbidden-apis](https://github.com/policeman-tools/forbidden-apis) — Detects and forbids invocations of specific method/class/field (like reading from a text stream without a charset). Maven/Gradle/Ant compatible. + +- [google-java-format](https://github.com/google/google-java-format) — Reformats Java source code to comply with Google Java Style + +- **HuntBugs** :warning: — Bytecode static analyzer tool based on Procyon Compiler Tools aimed to supersede FindBugs. + +- [IntelliJ IDEA](https://www.jetbrains.com/idea) :copyright: — Comes bundled with a lot of inspections for Java and Kotlin and includes tools for refactoring, formatting and more. + +- [JArchitect](https://www.jarchitect.com) :copyright: — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity. + +- [JBMC](https://www.cprover.org/jbmc) — Bounded model-checker for Java (bytecode), verifies user-defined assertions, standard assertions, several coverage metric analyses. + +- [JLiSA](https://github.com/lisa-analyzer/jlisa) — An abstract interpretation-based static analyzer for Java build upon the [LiSA](https://github.com/lisa-analyzer/lisa) framekwork. + +- [Mariana Trench](https://mariana-tren.ch/) — Our security focused static analysis tool for Android and Java applications. Mariana Trench analyzes Dalvik bytecode and is built to run fast on large codebases (10s of millions of lines of code). It can find vulnerabilities as code changes, before it ever lands in your repository. + +- [NullAway](https://github.com/uber/NullAway) — Type-based null-pointer checker with low build-time overhead; an [Error Prone](http://errorprone.info/) plugin. + +- **OWASP Dependency Check** :warning: — Checks dependencies for known, publicly disclosed, vulnerabilities. + +- [qulice](https://www.qulice.com) — Combines a few (pre-configured) static analysis tools (checkstyle, PMD, Findbugs, ...). + +- [RefactorFirst](https://github.com/jimbethancourt/RefactorFirst) — Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first. + +- [Soot](https://soot-oss.github.io/soot) — A framework for analyzing and transforming Java and Android applications. + +- [Spoon](https://spoon.gforge.inria.fr) — Spoon is a metaprogramming library to analyze and transform Java source code (incl Java 9, 10, 11, 12, 13, 14). It parses source files to build a well-designed AST with powerful analysis and transformation API. Can be integrated in Maven and Gradle. + +- [SpotBugs](https://spotbugs.github.io) — SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code. + +- **steady** :warning: — Analyses your Java applications for open-source dependencies with known vulnerabilities, using both static analysis and testing to determine code context and usage for greater accuracy. + +- [Violations Lib](https://github.com/tomasbjerre/violations-lib) — Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins. + + +
+

JavaScript

+ + +- **aether** :warning: — Lint, analyze, normalize, transform, sandbox, run, step through, and visualize user JavaScript, in node or the browser. + +- [Closure Compiler](https://developers.google.com/closure/compiler) — A compiler tool to increase efficiency, reduce size, and provide code warnings in JavaScript files. + +- **ClosureLinter** :warning: — Ensures that all of your project's JavaScript code follows the guidelines in the Google JavaScript Style Guide. It can also automatically fix many common errors. + +- **complexity-report** :warning: — Software complexity analysis for JavaScript projects. + +- [DeepScan](https://deepscan.io) :copyright: — An analyzer for JavaScript which targets runtime errors and quality issues rather than coding conventions. + +- **es6-plato** :warning: — Visualize JavaScript (ES6) source complexity. + +- [escomplex](https://github.com/jared-stilwell/escomplex) — Software complexity analysis of JavaScript-family abstract syntax trees. + +- **Esprima** :warning: — ECMAScript parsing infrastructure for multipurpose analysis. + +- [flow](https://flow.org) — A static type checker for JavaScript. + +- **hegel** :warning: — A static type checker for JavaScript with a bias on type inference and strong type systems. + +- [jshint](https://jshint.com/about) [:information_source:]() — Detect errors and potential problems in JavaScript code and enforce your team's coding conventions. + +- [JSLint](https://github.com/douglascrockford/JSLint) [:information_source:]() — The JavaScript Code Quality Tool. + +- **JSPrime** :warning: — Static security analysis tool. + +- **NodeJSScan** :warning: — A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. It features a UI with various dashboards about an application's security status. + +- **plato** :warning: — Visualize JavaScript source complexity. + +- [Polymer-analyzer](https://github.com/Polymer/tools/tree/master/packages/analyzer) — A static analysis framework for Web Components. + +- [retire.js](https://retirejs.github.io/retire.js) — Scanner detecting the use of JavaScript libraries with known vulnerabilities. + +- **RSLint** :warning: — A (WIP) JavaScript linter written in Rust designed to be as fast as possible, customizable, and easy to use. + +- [standard](http://standardjs.com) — An npm module that checks for Javascript Styleguide issues. + +- [tern](https://ternjs.net) — A JavaScript code analyzer for deep, cross-editor language support. + +- **TypL** :warning: — With TypL, you just write completely standard JS, and the tool figures out your types via powerful inferencing. + +- [xo](https://github.com/xojs/xo) — Opinionated but configurable ESLint wrapper with lots of goodies included. Enforces strict and readable code. + +- **yardstick** :warning: — Javascript code metrics. + + +
+

Julia

+ + +- [JET](https://github.com/aviatesk/JET.jl) — Static type inference system to detect bugs and type instabilities. + +- [StaticLint](https://github.com/julia-vscode/StaticLint.jl) — Static Code Analysis for Julia + + +
+

Kotlin

+ + +- [detekt](https://detekt.github.io/detekt) — Static code analysis for Kotlin code. + +- **diktat** :warning: — Strict coding standard for Kotlin and a linter that detects and auto-fixes code smells. + +- [ktfmt](https://facebook.github.io/ktfmt/) — A program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions. +A ktfmt IntelliJ plugin is available from the plugin repository. To install it, go to your IDE's settings and select the Plugins category. Click the Marketplace tab, search for the ktfmt plugin, and click the Install button. + +- [ktlint](https://ktlint.github.io) — An anti-bikeshedding Kotlin linter with built-in formatter. + + +
+

Lua

+ + +- [luacheck](https://github.com/lunarmodules/luacheck) — A tool for linting and static analysis of Lua code. + +- [lualint](https://github.com/philips/lualint) — lualint performs luac-based static analysis of global variable usage in Lua source code. + +- **Luanalysis** :warning: — An IDE for statically typed Lua development. + + +
+

MATLAB

+ + +- **MISS_HIT** :warning: — MISS_HIT is a free, open-source code quality toolset for MATLAB, Simulink, and Octave. It includes MH Style (style checker and formatter), MH Metrics (complexity metrics), MH Lint (static analysis), MH Trace (requirements traceability), and MH Copyright (copyright management). Designed to work standalone without requiring MATLAB/Octave installation. + +- [mlint](https://www.mathworks.com/help/matlab/ref/mlint.html) :copyright: — Check MATLAB code files for possible problems. + + +
+

Nim

+ + +- [DrNim](https://nim-lang.org/docs/drnim.html) — DrNim combines the Nim frontend with the Z3 proof engine in order to allow verify / validate software written in Nim. + +- **nimfmt** :warning: — Nim code formatter / linter / style checker + + +
+

Ocaml

+ + +- [Sys](https://github.com/PLSysSec/sys) — A static/symbolic Tool for finding bugs in (browser) code. It uses the LLVM AST to find bugs like uninitialized memory access. + +- [VeriFast](https://github.com/verifast/verifast) — A tool for modular formal verification of correctness properties of single-threaded and multithreaded C and Java programs annotated with preconditions and postconditions written in separation logic. To express rich specifications, the programmer can define inductive datatypes, primitive recursive pure functions over these datatypes, and abstract separation logic predicates. + + +
+

PHP

+ + +- [CakeFuzzer](https://zigrin.com/tools/cake-fuzzer/) — Web application security testing tool for CakePHP-based web applications. CakeFuzzer employs a predefined set of attacks that are randomly modified before execution. Leveraging its deep understanding of the Cake PHP framework, Cake Fuzzer launches attacks on all potential application entry points. + +- [churn-php](https://github.com/bmitch/churn-php) — Helps discover good candidates for refactoring. + +- [composer-dependency-analyser](https://github.com/shipmonk-rnd/composer-dependency-analyser) — Fast detection of composer dependency issues. + +* 💪 Powerful: Detects unused, shadow and misplaced composer dependencies +* ⚡ Performant: Scans 15 000 files in 2s! +* ⚙️ Configurable: Fine-grained ignores via PHP config +* 🕸️ Lightweight: No composer dependencies +* 🍰 Easy-to-use: No config needed for first try +* ✨ Compatible: PHP >= 7.2 + + +- [dephpend](https://github.com/mihaeu/dephpend) — Dependency analysis tool. + +- [deprecation-detector](https://github.com/sensiolabs-de/deprecation-detector) — Finds usages of deprecated (Symfony) code. + +- [deptrac](https://github.com/sensiolabs-de/deptrac) — Enforce rules for dependencies between software layers. + +- [DesignPatternDetector](https://github.com/Halleck45/DesignPatternDetector) — Detection of design patterns in PHP code. + +- [EasyCodingStandard](https://www.tomasvotruba.com/blog/2017/05/03/combine-power-of-php-code-sniffer-and-php-cs-fixer-in-3-lines) — Combine [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) and [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer). + +- **Enlightn** :warning: — A static and dynamic analysis tool for Laravel applications that provides recommendations to improve the performance, security and code reliability of Laravel apps. Contains 120 automated checks. + +- [exakat](https://www.exakat.io) — An automated code reviewing engine for PHP. + +- [GrumPHP](https://github.com/phpro/grumphp) — Checks code on every commit. + +- [larastan](https://github.com/larastan/larastan) — Adds static analysis to Laravel improving developer productivity and code quality. It is a wrapper around PHPStan. + +- [mago](https://mago.carthage.software) — Mago is a complete toolchain for PHP, written in Rust, designed from the ground up for maximum performance. +- ✨ A blazing-fast formatter that automatically formats your code according to PER-CS, ending style debates forever. - 🔎 An intelligent linter that catches stylistic issues, inconsistencies, and code smells before they become problems. - 🔬 A powerful static analyzer that finds type errors and logical bugs in your code without you ever having to run it. - 🛡️ A robust architectural guard that enforces dependency rules and structural conventions. + +- **Mondrian** :warning: — A set of static analysis and refactoring tools which use graph theory. + +- [parallel-lint](https://github.com/php-parallel-lint/PHP-Parallel-Lint) — This tool checks syntax of PHP files faster than serial check with a fancier output. + +- [Parse](https://github.com/psecio/parse) — A Static Security Scanner. + +- [pdepend](https://pdepend.org) — Calculates software metrics like cyclomatic complexity for PHP code. + +- [phan](https://github.com/phan/phan/wiki) — A modern static analyzer from etsy. + +- [PHP Architecture Tester](https://github.com/carlosas/phpat) — Easy to use architecture testing tool for PHP. + +- [PHP Assumptions](https://github.com/rskuipers/php-assumptions) — Checks for weak assumptions. + +- [PHP Coding Standards Fixer](https://cs.symfony.com) — Fixes your code according to standards like PSR-1, PSR-2, and the Symfony standard. + +- [PHP Insights](https://github.com/nunomaduro/phpinsights) — Instant PHP quality checks from your console. Analysis of code quality and coding style as well as overview of code architecture and its complexity. + +- [Php Inspections (EA Extended)](https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-) — A Static Code Analyzer for PHP. + +- [PHP Refactoring Browser](https://qafoolabs.github.io/php-refactoring-browser) — Refactoring helper. + +- [PHP Semantic Versioning Checker](https://github.com/tomzx/php-semver-checker) — Suggests a next version according to semantic versioning. + +- [PHP-Parser](https://github.com/nikic/PHP-Parser) — A PHP parser written in PHP. + +- [php-speller](https://github.com/mekras/php-speller) — PHP spell check library. + +- **PHP-Token-Reflection** :warning: — Library emulating the PHP internal reflection. + +- **php7cc** :warning: — PHP 7 Compatibility Checker. + +- **php7mar** :warning: — Assist developers in porting their code quickly to PHP 7. + +- **PHP_CodeSniffer** :warning: — Detects violations of a defined set of coding standards. + +- [PHPArkitect](https://github.com/phparkitect/arkitect) — PHPArkitect helps you to keep your PHP codebase coherent and solid, by permitting to add some architectural constraint check to your workflow. You can express the constraint that you want to enforce, in simple and readable PHP code. + +- **phpca** :warning: — Finds usage of non-built-in extensions. + +- **phpcpd** :warning: — Copy/Paste Detector for PHP code. + +- **phpdcd** :warning: — Dead Code Detector (DCD) for PHP code. + +- **PhpDependencyAnalysis** :warning: — Builds a dependency graph for a project. + +- **PhpDeprecationDetector** :warning: — Analyzer of PHP code to search issues with deprecated functionality in newer interpreter versions. It finds removed objects (functions, variables, constants and ini-directives), deprecated functions functionality, and usage of forbidden names or tricks (e.g. reserved identifiers in newer versions). + +- **phpdoc-to-typehint** :warning: — Add scalar type hints and return types to existing PHP projects using PHPDoc annotations. + +- [phpDocumentor](https://www.phpdoc.org) — Analyzes PHP source code to generate documentation. + +- **phploc** :warning: — A tool for quickly measuring the size and analyzing the structure of a PHP project. + +- [PHPMD](https://phpmd.org) — Finds possible bugs in your code. + +- [PhpMetrics](http://www.phpmetrics.org) — Calculates and visualizes various code quality metrics. + +- [phpmnd](https://github.com/povils/phpmnd) — Helps to detect magic numbers. + +- [PHPQA](https://edgedesigncz.github.io/phpqa) — A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics). + +- [phpqa - jakzal](https://github.com/jakzal/phpqa) — Many tools for PHP static analysis in one container. + +- [phpqa - jmolivas](https://github.com/jmolivas/phpqa) — PHPQA all-in-one Analyzer CLI tool. + +- **phpsa** :warning: — Static analysis tool for PHP. + +- [PHPStan](https://phpstan.org) — PHP Static Analysis Tool - discover bugs in your code without running it! + +- [Progpilot](https://github.com/designsecurity/progpilot) — A static analysis tool for security purposes. + +- [Psalm](https://psalm.dev) — Static analysis tool for finding type errors in PHP applications. + +- **Qafoo Quality Analyzer** :warning: — Visualizes metrics and source code. + +- [rector](https://getrector.org) — Instant Upgrades and Automated Refactoring of any PHP 5.3+ code. It upgrades your code for PHP 7.4, 8.0 and beyond. Rector promises a low false-positive rate because it looks for narrowly defined AST (abstract syntax tree) patterns. The main use-case are tackling technical debt in your legacy code and removing dead code. Rector provides a set of special rules for Symfony, Doctrine, PHPUnit, and many more. + +- [Reflection](https://github.com/phpDocumentor/Reflection) — Reflection library to do Static Analysis for PHP Projects + +- [Symfony Insight](https://insight.symfony.com/) :copyright: — Detect security risks, find bugs and provide actionable metrics for PHP projects. + +- [Tuli](https://github.com/ircmaxell/Tuli) — A static analysis engine. + +- [twig-lint](https://github.com/asm89/twig-lint) — twig-lint is a lint tool for your twig files. + +- [WAP](https://securityonline.info/owasp-wap-web-application-protection-project) — Tool to detect and correct input validation vulnerabilities in PHP (4.0 or higher) web applications and predicts false positives by combining static analysis and data mining. + + +
+

PL/SQL

+ + +- [ZPA](https://zpa.felipebz.com) — An open source parser and code analyzer for PL/SQL and Oracle SQL code. + + +
+

Perl

+ + +- [Perl::Analyzer](https://technix.github.io/Perl-Analyzer/) — Perl-Analyzer is a set of programs and modules that allow users to analyze and visualize Perl codebases by providing information about namespaces and their relations, dependencies, inheritance, and methods implemented, inherited, and redefined in packages, as well as calls to methods from parent packages via SUPER. + +- [Perl::Critic](https://metacpan.org/pod/Perl::Critic) — Critique Perl source code for best-practices. + +- [perltidy](https://perltidy.sourceforge.net/) — Perltidy is a Perl script which indents and reformats Perl scripts to make them easier to read. +The formatting can be controlled with command line parameters. The default parameter settings approximately follow the suggestions in the Perl Style Guide. +Besides reformatting scripts, Perltidy can be a great help in tracking down errors with missing or extra braces, parentheses, and square brackets because it is very good at localizing errors. + +- [zarn](https://github.com/htrgouvea/zarn) — A lightweight static security analysis tool for modern Perl Apps + + +
+

Python

+ + +- [autoflake](https://github.com/PyCQA/autoflake) — Autoflake removes unused imports and unused variables from Python code. + +- [autopep8](https://pypi.org/project/autopep8/) — A tool that automatically formats Python code to conform to the PEP 8 style guide. +It uses the pycodestyle utility to determine what parts of the code needs to be formatted. + +- [bandit](https://bandit.readthedocs.io/en/latest) — A tool to find common security issues in Python code. + +- [bellybutton](https://github.com/hchasestevens/bellybutton) — A linting engine supporting custom project-specific rules. + +- [Black](https://black.readthedocs.io/en/stable) — The uncompromising Python code formatter. + +- [Bowler](https://pybowler.io/) — Safe code refactoring for modern Python. Bowler is a refactoring tool for manipulating Python at the syntax tree level. It enables safe, large scale code modifications while guaranteeing that the resulting code compiles and runs. It provides both a simple command line interface and a fluent API in Python for generating complex code modifications in code. + +- **ciocheck** :warning: — Linter, formatter and test suite helper. As a linter, it is a wrapper around `pep8`, `pydocstyle`, `flake8`, and `pylint`. + +- **cohesion** :warning: — A tool for measuring Python class cohesion. + +- [deal](https://deal.readthedocs.io/) — Design by contract for Python. Write bug-free code. By adding a few decorators to your code, you get for free tests, static analysis, formal verification, and much more. + +- [Dlint](https://github.com/dlint-py/dlint) — A tool for ensuring Python code is secure. + +- [Dodgy](https://github.com/landscapeio/dodgy) — Dodgy is a very basic tool to run against your codebase to search for "dodgy" looking values. It is a series of simple regular expressions designed to detect things such as accidental SCM diff checkins, or passwords or secret keys hard coded into files. + +- **ENRE-py** :warning: — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-py is a ENtity Relationship Extractor for Python based on Python Language Services of The Standard Library. + +- [fixit](https://pypi.org/project/fixit) — A framework for creating lint rules and corresponding auto-fixes for source code. + +- [flake8](https://github.com/PyCQA/flake8) — A wrapper around `pyflakes`, `pycodestyle` and `mccabe`. + +- [flakeheaven](https://pypi.org/project/flakeheaven/) — flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration. + +- [Griffe](https://mkdocstrings.github.io/griffe/) — Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API. + +- **InspectorTiger** :warning: — IT, Inspector Tiger, is a modern python code review tool / framework. It comes with bunch of pre-defined handlers which warns you about improvements and possible bugs. Beside these handlers, you can write your own or use community ones. + +- [jedi](https://jedi.readthedocs.io/en/latest) — Autocompletion/static analysis library for Python. + +- [linty fresh](https://github.com/lyft/linty_fresh) — Parse lint errors and report them to Github as comments on a pull request. + +- [mbake](https://pypi.org/project/mbake/) — mbake is a Makefile formatter and linter. It only took 50 years! + +- **mccabe** :warning: — Check McCabe complexity. + +- **multilint** :warning: — A wrapper around `flake8`, `isort` and `modernize`. + +- [mypy](http://www.mypy-lang.org) — A static type checker that aims to combine the benefits of duck typing and static typing, frequently used with [MonkeyType](https://github.com/Instagram/MonkeyType). + +- [pip-audit](https://github.com/pypa/pip-audit) — Tool for scanning Python packages for known vulnerabilities. Developed by the Python Packaging Authority (PyPA) and supported by Trail of Bits and Google. Scans Python environments and requirements files to identify vulnerable packages and suggests remediation. Supports GitHub Actions, pre-commit hooks, and multiple vulnerability service integrations. + +- [prospector](https://github.com/PyCQA/prospector) — A wrapper around `pylint`, `pep8`, `mccabe` and others. + +- **py-find-injection** :warning: — Find SQL injection vulnerabilities in Python code. + +- [pyanalyze](https://pyanalyze.readthedocs.io/en/latest/) — A tool for programmatically detecting common mistakes in Python code, such as references to undefined variables and type errors. It can be extended to add additional rules and perform checks specific to particular functions. + +- [pycodestyle](https://pycodestyle.pycqa.org/en/latest) — (Formerly `pep8`) Check Python code against some of the style conventions in PEP 8. + +- **pydocstyle** :warning: — Check compliance with Python docstring conventions. + +- [pyflakes](https://pypi.org/project/pyflakes) — Check Python source files for errors. + +- [pylint](http://pylint.pycqa.org/en/latest) — Looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. It additionally includes `pyreverse` (an UML diagram generator) and `symilar` (a similarities checker). + +- **pylyzers** :warning: — A static code analyzer / language server for Python, written in Rust, focused on type checking and readable output. + +- [Pyra](https://github.com/spangea/Pyra) — Pyra is a high-level linter static analyzer for data science applications written in Python, that helps developers identify potential issues in their data science code written in Python, as an extension of [Lyra](https://github.com/caterinaurban/Lyra). + +- **pyre-check** :warning: — A fast, scalable type checker for large Python codebases. Pyre-check has been superseded by Pyrefly, its next iteration. + +- [pyrefly](https://pyrefly.org/) — A fast, incremental type checker and language server for Python, providing IDE features like code navigation, semantic highlighting, and code completion. + +- [pyright](https://github.com/Microsoft/pyright) — Static type checker for Python, created to address gaps in existing tools like mypy. + +- [pyroma](https://github.com/regebro/pyroma) — Rate how well a Python project complies with the best practices of the Python packaging ecosystem, and list issues that could be improved. + +- [Pysa](https://pyre-check.org/docs/pysa-basics.html) — A tool based on Facebook's pyre-check to identify potential security issues in Python code identified with taint analysis. + +- **PyT - Python Taint** :warning: — A static analysis tool for detecting security vulnerabilities in Python web applications. + +- [pytype](https://google.github.io/pytype) — A static type analyzer for Python code. + +- [pyupgrade](https://pypi.org/project/pyupgrade-docs/) — A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language. + +- **QuantifiedCode** :warning: — Automated code review & repair. It helps you to keep track of issues and metrics in your software projects, and can be easily extended to support new types of analyses. + +- **radon** :warning: — A Python tool that computes various metrics from the source code. + +- [refurb](https://github.com/dosisod/refurb) — A tool for refurbishing and modernizing Python codebases. Refurb is heavily inspired by clippy, the built-in linter for Rust. + +- [ruff](https://astral.sh/ruff) — Fast Python linter, written in Rust. 10-100x faster than existing linters. Compatible with Python 3.10. Supports file watcher. + +- [Safety](https://safetycli.com/) — Python dependency vulnerability scanner designed to enhance software supply chain security by detecting packages with known vulnerabilities. Checks Python dependencies against a database of known security vulnerabilities and provides detailed reports. Supports CI/CD integration and multiple output formats. + +- [ty](https://docs.astral.sh/ty/) — An extremely fast Python type checker written in Rust. + +- [unimport](https://unimport.hakancelik.dev) — A linter, formatter for finding and removing unused import statements. + +- [vulture](https://github.com/jendrikseipp/vulture) — Find unused classes, functions and variables in Python code. + +- [wemake-python-styleguide](https://wemake-python-styleguide.rtfd.io/) — The strictest and most opinionated python linter ever. + +- [wily](https://github.com/tonybaloney/wily) — A command-line tool for archiving, exploring and graphing the complexity of Python source code. + +- **xenon** :warning: — Monitor code complexity using [`radon`](https://github.com/rubik/radon). + +- **yapf** :warning: — A formatter for Python files created by Google +YAPF follows a distinctive methodology, originating from the 'clang-format' tool created by Daniel Jasper. Essentially, the program reframes the code to the most suitable formatting that abides by the style guide, even if the original code already follows the style guide. This concept is similar to the Go programming language's 'gofmt' tool, which aims to put an end to debates about formatting by having the entire codebase of a project pass through YAPF whenever changes are made, thereby maintaining a consistent style throughout the project and eliminating the need to argue about style in every code review. + + +
+

R

+ + +- [CodeDepends](https://github.com/duncantl/CodeDepends) — Static Code Analysis for R. + +- [cyclocomp](https://github.com/MangoTheCat/cyclocomp) — Quantifies the cyclomatic complexity of R functions / expressions. + +- [flowR](https://github.com/flowr-analysis/flowr) — A [program slicer](https://github.com/flowr-analysis/flowr/wiki/Terminology#program-slice) and [dataflow analyzer](https://en.wikipedia.org/wiki/Data-flow_analysis) for the [R](https://www.r-project.org/) programming language. Its slicer allows you to reduce a complicated program just to the parts related for a specific task (e.g., the generation of a single or collection of plots, a significance test, ...). The dataflow analysis provides you with a detailed view on the semantics of the R code which can greatly improve other analyses. To use _flowR_, check out the [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr), the [RStudio Addin](https://github.com/flowr-analysis/rstudio-addin-flowr), the [Docker image](https://hub.docker.com/r/eagleoutice/flowr), or the [R package](https://github.com/flowr-analysis/flowr-r-adapter). + +- [goodpractice](https://docs.ropensci.org/goodpractice/) — Analyses the source code for R packages and provides best-practice recommendations. + +- [lintr](https://github.com/jimhester/lintr) — Static Code Analysis for R. + +- [R Language Server](https://github.com/REditorSupport/languageserver/) — Provides code completion, refactoring, folding, diagnostics (with lintr), and more for R. + +- [rco](https://jcrodriguez1989.github.io/rco/) — Performance optimizer for R code (with GUI). + +- [styler](https://styler.r-lib.org) — Formatting of R source code files and pretty-printing of R code. + + +
+

Rego

+ + +- [Regal](https://github.com/styrainc/regal) — Regal is a linter for the policy language Rego. Regal aims to catch bugs and mistakes in policy code, while at the same time helping people learn the language, best practices and idiomatic constructs. + + +
+

Ruby

+ + +- [Active Record Doctor](https://github.com/gregnavis/active_record_doctor) — Identify database issues before they hit production. + +- [brakeman](https://brakemanscanner.org) — A static analysis security vulnerability scanner for Ruby on Rails applications. + +- [Bullet](https://github.com/flyerhzm/bullet) — Help to kill N+1 queries and unused eager loading. + +- [bundler-audit](https://github.com/rubysec/bundler-audit) — Audit Gemfile.lock for gems with security vulnerabilities reported in [Ruby Advisory Database](https://github.com/rubysec/ruby-advisory-db). + +- **cane** :warning: — Code quality threshold checking as part of your build. + +- **Churn** :warning: — A Project to give the churn file, class, and method for a project for a given checkin. Over time the tool adds up the history of churns to give the number of times a file, class, or method is changing during the life of a project. + +- [DatabaseConsistency](https://github.com/djezzzl/database_consistency) — The tool to avoid various issues due to inconsistencies and inefficiencies between a database schema and application models. + +- [dawnscanner](https://github.com/thesp0nge/dawnscanner) — A static analysis security scanner for ruby written web applications. It supports Sinatra, Padrino and Ruby on Rails frameworks. + +- [ERB Lint](https://github.com/Shopify/erb-lint) — Lint your ERB or HTML files + +- [ERB::Formatter](https://github.com/nebulab/erb-formatter) — Format ERB files with speed and precision. + +- [Fasterer](https://github.com/DamirSvrtan/fasterer) — Common Ruby idioms checker. + +- [flay](https://ruby.sadi.st/Flay.html) — Flay analyzes code for structural similarities. + +- [flog](https://ruby.sadi.st/Flog.html) — Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in. + +- [Fukuzatsu](https://github.com/CoralineAda/fukuzatsu) — A tool for measuring code complexity in Ruby class files. Its analysis generates scores based on cyclomatic complexity algorithms with no added "opinions". + +- [htmlbeautifier](https://github.com/threedaymonk/htmlbeautifier) — A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates. + +- **laser** :warning: — Static analysis and style linter for Ruby code. + +- **MetricFu** :warning: — MetricFu is a set of tools to provide reports that show which parts of your code might need extra work. + +- [pelusa](https://github.com/codegram/pelusa) — Static analysis Lint-type tool to improve your OO Ruby code. + +- **quality** :warning: — Runs quality checks on your code using community tools, and makes sure your numbers don't get any worse over time. + +- **Querly** :warning: — Pattern Based Checking Tool for Ruby. + +- **Railroader** :warning: — An open source static analysis security vulnerability scanner for Ruby on Rails applications. + +- [rails_best_practices](https://rails-bestpractices.com) — A code metric tool for Rails projects + +- [reek](https://github.com/troessner/reek) — Code smell detector for Ruby. + +- [Roodi](https://github.com/roodi/roodi) — Roodi stands for Ruby Object Oriented Design Inferometer. It parses your Ruby code and warns you about design issues you have based on the checks that it has configured. + +- [RuboCop](https://docs.rubocop.org/rubocop) — A Ruby static code analyzer, based on the community Ruby style guide. + +- [Rubrowser](https://github.com/blazeeboy/rubrowser) — Ruby classes interactive dependency graph generator. + +- **ruby-lint** :warning: — Static code analysis for Ruby. + +- [rubycritic](https://github.com/whitesmith/rubycritic) — A Ruby code quality reporter. + +- [rufo](https://github.com/ruby-formatter/rufo) — An opinionated ruby formatter, intended to be used via the command line as a text-editor plugin, to autoformat files on save or on demand. + +- **Saikuro** :warning: — A Ruby cyclomatic complexity analyzer. + +- **SandiMeter** :warning: — Static analysis tool for checking Ruby code for Sandi Metz' rules. + +- [Skunk](https://github.com/fastruby/skunk) — A SkunkScore Calculator for Ruby Code -- Find the most complicated code without test coverage! + +- [Sorbet](https://sorbet.org) — A fast, powerful type checker designed for Ruby. + +- [Standard Ruby](https://github.com/testdouble/standard) — Ruby Style Guide, with linter & automatic code fixer + +- [Steep](https://github.com/soutaro/steep) — Gradual Typing for Ruby. + +- **Traceroute** :warning: — A Rake task gem that helps you find the unused routes and controller actions for your Rails 3+ app. + + +
+

Rust

+ + +- [C2Rust](https://c2rust.com) — C2Rust helps you migrate C99-compliant code to Rust. The translator (or transpiler) produces unsafe Rust code that closely mirrors the input C code. + +- [cargo udeps](https://github.com/est31/cargo-udeps) — Find unused dependencies in Cargo.toml. It either prints out a "unused crates" line listing the crates, or it prints out a line saying that no crates were unused. + +- [cargo-audit](https://rustsec.org) — Audit Cargo.lock for crates with security vulnerabilities reported to the [RustSec Advisory Database](https://github.com/RustSec/advisory-db/). + +- **cargo-bloat** :warning: — Find out what takes most of the space in your executable. supports ELF (Linux, BSD), Mach-O (macOS) and PE (Windows) binaries. + +- [cargo-breaking](https://github.com/iomentum/cargo-breaking) — cargo-breaking compares a crate's public API between two different branches, shows what changed, and suggests the next version according to semver. + +- [cargo-call-stack](https://github.com/japaric/cargo-call-stack) — Whole program static stack analysis The tool produces the full call graph of a program as a dot file. + +- [cargo-deny](https://embarkstudios.github.io/cargo-deny) — A cargo plugin for linting your dependencies. It can be used either as a command line too, a Rust crate, or a Github action for CI. It checks for valid license information, duplicate crates, security vulnerabilities, and more. + +- [cargo-expand](https://github.com/dtolnay/cargo-expand) — Cargo subcommand to show result of macro expansion and #[derive] expansion applied to the current crate. This is a wrapper around a more verbose compiler command. + +- [cargo-geiger](https://github.com/geiger-rs/cargo-geiger) — A cargo plugin for analysing the usage of unsafe Rust code Provides statistical output to aid security auditing + +- **cargo-inspect** :warning: — Inspect Rust code without syntactic sugar to see what the compiler does behind the curtains. + +- [cargo-semver-checks](https://crates.io/crates/cargo-semver-checks) — Scan your Rust crate releases for semver violations. It can be used either directly via the CLI, as a GitHub Action in CI, or via release managers like `release-plz`. It found semver violations in [more than 1 in 6 of the top 1000 most-downloaded crates](https://predr.ag/blog/semver-violations-are-common-better-tooling-is-the-answer/) on crates.io. + +- [cargo-show-asm](https://github.com/pacak/cargo-show-asm) — cargo subcommand showing the assembly, LLVM-IR and MIR generated for Rust code + +- [cargo-spellcheck](https://github.com/drahnr/cargo-spellcheck) — Checks all your documentation for spelling and grammar mistakes with hunspell (ready) and languagetool (preview) + +- **cargo-unused-features** :warning: — Find potential unused enabled feature flags and prune them. You can generate a simple HTML report from the json to make it easier to inspect results. +It removes a feature of a dependency and then compiles the project to see if it still compiles. If it does, the feature flag can possibly be removed, but it can be a false-positive. + +- [clippy](https://rust-lang.github.io/rust-clippy) — A code linter to catch common mistakes and improve your Rust code. + +- [diff.rs](https://diff.rs) — Web application (WASM) to render a diff between Rust crate versions. + +- [dylint](https://www.trailofbits.com/post/write-rust-lints-without-forking-clippy) — A tool for running Rust lints from dynamic libraries. Dylint makes it easy for developers to maintain their own personal lint collections. + +- **electrolysis** :warning: — A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover. + +- **herbie** :warning: — Adds warnings or errors to your crate when using a numerically unstable floating point expression. + +- [kani](https://github.com/model-checking/kani) — The Kani Rust Verifier is a bit-precise model checker for Rust. +Kani is particularly useful for verifying unsafe code blocks in Rust, +where the "unsafe superpowers" are unchecked by the compiler. +Kani verifies: + +* Memory safety (e.g., null pointer dereferences) +* User-specified assertions (i.e., assert!(...)) +* The absence of panics (e.g., unwrap() on None values) +* The absence of some types of unexpected behavior (e.g., arithmetic overflows) + + +- **linter-rust** :warning: — Linting your Rust-files in Atom, using rustc and cargo. + +- [lockbud](https://github.com/BurtonQin/lockbud) — Statically detects Rust deadlocks bugs. It currently detects two common kinds of deadlock bugs: doublelock and locks in conflicting order. It will print bugs in JSON format together with the source code location and an explanation of each bug. + +- **MIRAI** :warning: — And abstract interpreter operating on Rust's mid-level intermediate language, and providing warnings based on taint analysis. + +- **prae** :warning: — Provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you specified. + +- **Prusti** :warning: — A static verifier for Rust, based on the Viper verification infrastructure. By default Prusti verifies absence of panics by proving that statements such as unreachable!() and panic!() are unreachable. + +- [Rudra](https://github.com/sslab-gatech/Rudra) — Rust Memory Safety & Undefined Behavior Detection. It is capable of analyzing single Rust packages as well as all the packages on crates.io. + +- **Rust Language Server** :warning: — Supports functionality such as 'goto definition', symbol search, reformatting, and code completion, and enables renaming and refactorings. + +- [rust-analyzer](https://rust-analyzer.github.io) — Supports functionality such as 'goto definition', type inference, symbol search, reformatting, and code completion, and enables renaming and refactorings. + +- [rust-audit](https://github.com/Shnatsel/rust-audit) — Audit Rust binaries for known bugs or security vulnerabilities. This works by embedding data about the dependency tree (Cargo.lock) in JSON format into a dedicated linker section of the compiled executable. + +- [rustfix](https://github.com/rust-lang/rustfix) — Read and apply the suggestions made by rustc (and third-party lints, like those offered by clippy). + +- [rustfmt](https://github.com/rust-lang/rustfmt) — A tool for formatting Rust code according to style guidelines. + +- [RustViz](https://github.com/rustviz/rustviz) — RustViz is a tool that generates visualizations from simple Rust programs to assist users in better understanding the Rust Lifetime and Borrowing mechanism. It generates SVG files with graphical indicators that integrate with mdbook to render visualizations of data-flow in Rust programs. + +- [TangleGuard](https://tangleguard.com/) :copyright: — Helps you understand and maintain a scalable software architecture. To do so, it generates a interactive, nested dependency graph out of the source code. You can choose the level of details and get the portion of your codebase that matters to you. + +- **warnalyzer** :warning: — Show unused code from multi-crate Rust projects + + +
+

SQL

+ + +- [dbcritic](https://github.com/channable/dbcritic) — dbcritic finds problems in a database schema, such as a missing primary key constraint in a table. + +- [holistic](https://holistic.dev/) — More than 1,300 rules to analyze SQL queries. Takes an SQL schema definition and the query source code to generate improvement recommendations. Detects code smells, unused indexes, unused tables, views, materialized views, and more. + +- [pgspot](https://github.com/timescale/pgspot) — Spot vulnerabilities in postgres extension scripts. Finds unsafe search_path usage and unsafe object creation in PostgreSQL extension scripts or any other PostgreSQL SQL code. + +- [sleek](https://github.com/nrempel/sleek) — Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability and productivity. The heavy lifting is done by the sqlformat crate. + +- **sqlcheck** :warning: — Automatically identify anti-patterns in SQL queries. + +- [SQLFluff](https://www.sqlfluff.com/) — Multiple dialect SQL linter and formatter. + +- [sqlint](https://github.com/purcell/sqlint) — Simple SQL linter. + +- [squawk](https://squawkhq.com) — Linter for PostgreSQL, focused on migrations. Prevents unexpected downtime caused by database migrations and encourages best practices around Postgres schemas and SQL. + +- **tsqllint** :warning: — T-SQL-specific linter. + +- **TSqlRules** :warning: — TSQL Static Code Analysis Rules for SQL Server. + +- [Visual Expert](https://www.visual-expert.com) :copyright: — Code analysis for PowerBuilder, Oracle, and SQL Server Explores, analyzes, and documents Code + + +
+

Scala

+ + +- **linter** :warning: — Linter is a Scala static analysis compiler plugin which adds compile-time checks for various possible bugs, inefficiencies, and style problems. + +- [Scalastyle](http://www.scalastyle.org) — Scalastyle examines your Scala code and indicates potential problems with it. + +- [scapegoat](https://github.com/sksamuel/scapegoat) — Scala compiler plugin for static code analysis. + +- [WartRemover](https://www.wartremover.org) — A flexible Scala code linting tool. + + +
+

Shell

+ + +- [bashate](https://github.com/openstack/bashate) — Code style enforcement for bash programs. The output format aims to follow pycodestyle (pep8) default output format. + +- **i-Code CNES for Shell** :warning: — An open source static code analysis tool for Shell and Fortran (77 and 90). + +- [kmdr](https://github.com/ediardo/kmdr-cli) — CLI tool for learning commands from your terminal. kmdr delivers a break down of commands with every attribute explained. + +- [sh](https://pkg.go.dev/mvdan.cc/sh/v3) — A shell parser, formatter, and interpreter with bash support; includes shfmt + +- [shellcheck](https://www.shellcheck.net) — ShellCheck, a static analysis tool that gives warnings and suggestions for bash/sh shell scripts. + +- [shellharden](https://github.com/anordal/shellharden) — A syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting. + + +
+

Swift

+ + +- [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) — A library and command-line formatting tool for reformatting Swift code. + +- [SwiftLint](https://realm.github.io/SwiftLint) — A tool to enforce Swift style and conventions. + +- **Tailor** :warning: — A static analysis and lint tool for source code written in Apple's Swift programming language. + + +
+

Tcl

+ + +- [Frink](http://catless.ncl.ac.uk/Programs/Frink) — A Tcl formatting and static check program (can prettify the program, minimise, obfuscate or just sanity check it). + +- [Nagelfar](https://sourceforge.net/projects/nagelfar) — A static syntax checker for Tcl. + +- [tclchecker](https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt) — A static syntax analysis module (as part of [TDK](https://github.com/ActiveState/tdk)). + + +
+

TypeScript

+ + +- [Angular ESLint](https://github.com/angular-eslint/angular-eslint#readme) — Linter for Angular projects + +- **Codelyzer** :warning: — A set of tslint rules for static code analysis of Angular 2 TypeScript projects. + +- **ENRE-ts** :warning: — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-ts is a ENtity Relationship Extractor for ECMAScript and TypeScript based on @babel/parser. + +- [fta](https://ftaproject.dev/) — Rust-based static analysis for TypeScript projects + +- **stc** :warning: — Speedy TypeScript type checker written in Rust + +- **tslint** :warning: — TSLint has been deprecated as of 2019. Please see [this issue](https://github.com/palantir/tslint/issues/4534) for more details. `typescript-eslint` is now your best option for linting TypeScript. +TSLint is an extensible static analysis tool that checks TypeScript code for readability, maintainability, and functionality errors. It is widely supported across modern editors & build systems and can be customized with your own lint rules, configurations, and formatters. + +- [tslint-clean-code](https://www.npmjs.com/package/tslint-clean-code) — A set of TSLint rules inspired by the Clean Code handbook. + +- **tslint-microsoft-contrib** :warning: — A set of tslint rules for static code analysis of TypeScript projects maintained by Microsoft. + +- [TypeScript Call Graph](https://github.com/whyboris/TypeScript-Call-Graph) — CLI to generate an interactive graph of functions and calls from your TypeScript files + +- [TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) — TypeScript language extension for eslint. + +- [zod](https://zod.dev) — TypeScript-first schema validation with static type inference. The goal is to eliminate duplicative type declarations. With Zod, you declare a validator once and Zod will automatically infer the static TypeScript type. It is easy to compose simpler types into complex data structures. + + +
+

Verilog/SystemVerilog

+ + +- **Icarus Verilog** :warning: — A Verilog simulation and synthesis tool that operates by compiling source code written in IEEE-1364 Verilog into some target format + +- [svls](https://github.com/dalance/svls) — A Language Server Protocol implementation for Verilog and SystemVerilog, including lint capabilities. + +- **verible-linter-action** :warning: — Automatic SystemVerilog linting in github actions with the help of Verible Used to lint Verilog and SystemVerilog source files and comment erroneous lines of code in Pull Requests automatically. + +- [Verilator](https://www.veripool.org/verilator) — A tool which converts Verilog to a cycle-accurate behavioral model in C++ or SystemC. Performs lint code-quality checks. + +- [vscode-verilog-hdl-support](https://github.com/mshr-h/vscode-verilog-hdl-support) — Verilog HDL/SystemVerilog/Bluespec SystemVerilog support for VS Code. Provides syntax highlighting and Linting support from Icarus Verilog, Vivado Logical Simulation, Modelsim and Verilator + + +
+

Vim Script

+ + +- **vint** :warning: — Fast and Highly Extensible Vim script Language Lint implemented by Python. + + +
+

WebAssembly

+ + +- [Twiggy](https://github.com/rustwasm/twiggy) — Analyzes a binary's call graph to profile code size. The goal is to slim down wasm binary size. + +- [wasm-language-tools](https://github.com/g-plane/wasm-language-tools) — WebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format. It also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format. + + +## Multiple languages + + +- [ale](https://github.com/w0rp/ale) — Asynchronous Lint Engine for Vim and NeoVim with support for many languages. + +- [Android Studio](https://developer.android.com/studio) — Based on IntelliJ IDEA, and comes bundled with tools for Android including Android Lint. + +- [AppChecker](https://npo-echelon.ru/en/solutions/appchecker.php) :copyright: — Static analysis for C/C++/C#, PHP and Java. + +- [Application Inspector](https://www.ptsecurity.com/ww-en/products/ai) :copyright: — Commercial Static Code Analysis which generates exploits to verify vulnerabilities. + +- [ApplicationInspector](https://github.com/microsoft/ApplicationInspector) — Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps). + +- [ArchUnit](https://www.archunit.org) — Unit test your Java or Kotlin architecture. + +- [ast-grep](https://ast-grep.github.io/) — ast-grep is a powerful tool designed for managing code at scale using Abstract Syntax Trees (AST). Think of it as a hybrid of grep, eslint, and codemod, with the ability to search, lint, and rewrite code based on its structure rather than plain text. +It supports multiple languages and is designed to be extensible, allowing you to register custom languages. + +- **Atom-Beautify** :warning: — Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor. + +- [autocorrect](https://huacnlee.github.io/autocorrect) — A linter and formatter to help you to improve copywriting, correct spaces, words, punctuations between CJK (Chinese, Japanese, Korean). + +- [Axivion Bauhaus Suite](https://www.axivion.com/en/products-services-9#products_bauhaussuite) :copyright: — Tracks down error-prone code locations, style violations, cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95. + +- [Bearer](https://github.com/bearer/bearer) — Open-Source static code analysis tool to discover, filter and prioritize security risks and vulnerabilities leading to sensitive data exposures (PII, PHI, PD). Highly configurable and easily extensible, built for security and engineering teams. + +- [Better Code Hub](https://bettercodehub.com) :copyright: — Better Code Hub checks your GitHub codebase against 10 engineering guidelines devised by the authority in software quality, Software Improvement Group. + +- **Betterscan CE** :warning: — Checks your code and infra (various Git repositories supported, cloud stacks, CLI, Web Interface platform, integrationss available) for security and quality issues. Code Scanning/SAST/Linting using many tools/Scanners deduplicated with One Report (AI optional). + +- [biome](https://biomejs.dev) — A toolchain for web projects, aimed to provide functionalities to maintain them. Biome formats and lints code in a fraction of a second. It is the successor to Rome. It is designed to eventually replace Biome is designed to eventually replace Babel, ESLint, webpack, Prettier, Jest, and others. + +- [BlockWatch](https://github.com/mennanov/blockwatch) — A language-agnostic linter that keeps code, documentation, and configuration in sync and enforces strict formatting and validation rules. + +- **BugProve** :warning: :copyright: — BugProve is a firmware analysis platform featuring both static and dynamic analysis techniques to discover memory corruptions, command injections and other classes or common weaknesses in binary code. It also detects vulnerable dependencies, weak cryptographic parameters, misconfigurations, and more. + +- [callGraph](https://github.com/koknat/callGraph) — Statically generates a call graph image and displays it on screen. + +- [CAST Highlight](https://www.castsoftware.com/products/highlight) :copyright: — Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation. + +- [Checkmarx CxSAST](https://www.checkmarx.com/products/static-application-security-testing) :copyright: — Commercial Static Code Analysis which doesn't require pre-compilation. + +- [ClassGraph](https://github.com/classgraph/classgraph) — A classpath and module path scanner for querying or visualizing class metadata or class relatedness. + +- [Clayton](https://www.getclayton.com/) :copyright: — AI-powered code reviews for Salesforce. Secure your developments, enforce best practice and control your technical debt in real-time. + +- **coala** :warning: — Language independent framework for creating code analysis - supports over 60 languages by default. + +- [Cobra](https://spinroot.com/cobra) :copyright: — Structural source code analyzer by NASA's Jet Propulsion Laboratory. + +- [Codacy](https://www.codacy.com) :copyright: — Code Analysis to ship Better Code, Faster. + +- [Code Intelligence](https://www.code-intelligence.com) :copyright: — CI/CD-agnostic DevSecOps platform which combines industry-leading fuzzing engines for finding bugs and visualizing code coverage + +- [Code Pathfinder](https://codepathfinder.dev) — Opensource Static Code Analysis for security teams with Inter file dataflow taint analysis. Built for finding vulnerabilities, advanced structural search, derive insights and supports MCP server. + +- [Code-Graph-RAG](https://code-graph-rag.com) — Builds knowledge graphs from multi-language codebases using Tree-sitter AST parsing and stores them in Memgraph. Supports 11 programming languages with a unified graph schema and enables natural language querying and editing of code structure and relationships. Functions as an MCP server for AI assistant integration. + +- [Codeac](https://www.codeac.io/?ref=awesome-static-analysis) :copyright: — Automated code review tool integrates with GitHub, Bitbucket and GitLab (even self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source free) + +- [codeburner](https://groupon.github.io/codeburner) — Provides a unified interface to sort and act on the issues it finds. + +- [codechecker](https://codechecker.readthedocs.io/en/latest) — A defect database and viewer extension for the Clang Static Analyzer with web GUI. + +- [CodeFactor](https://codefactor.io) :copyright: — Automated Code Analysis for repos on GitHub or BitBucket. + +- [CodeFlow](https://www.getcodeflow.com) :copyright: — Automated code analysis tool to deal with technical depth. Integrates with Bitbucket and Gitlab. (free for Open Source Projects) + +- [Codemodder](https://codemodder.io/) — Codemodder is a pluggable framework for building expressive codemods. Use Codemodder when you need more than a linter or code formatting tool. Use it to fix non-trivial security issues and other code quality problems. + +- [codeql](https://github.com/github/codeql) — Deep code analysis - semantic queries and dataflow for several languages with VSCode plugin support. + +- [CodeQue](https://codeque.co) — Ecosystem for structural matching JavaScript and TypeScript code. Offers search tool that understands code structure. Available as CLI tool and Visual Studio Code extension. It helps to search code faster and more accurately making you workflow more effective. Soon it will offer ESLint plugin to create your own rules in minutes to help with assuring codebase quality. + +- [CodeRush](https://www.devexpress.com/products/coderush) :copyright: — Code creation, debugging, navigation, refactoring, analysis and visualization tools that use the Roslyn engine in Visual Studio 2015 and up. + +- [CodeScan](https://www.codescan.io/) :copyright: — Code Quality and Security for Salesforce Developers. Made exclusively for the Salesforce platform, CodeScan’s code analysis solutions provide you with total visibility into your code health. + +- [CodeScene](https://codescene.com) :copyright: — CodeScene is a quality visualization tool for software. Prioritize technical debt, detect delivery risks, and measure organizational aspects. Fully automated. + +- [CodeSee](https://www.codesee.io/) :copyright: — CodeSee is mapping and automating your app's services, directories, file dependencies, and code changes. It's like Google Map, but for code.t + +- [CodeSonar from GrammaTech](https://codesecure.com/our-products/codesonar/) :copyright: — Advanced, whole program, deep path, static analysis of C, C++, Java and C# with easy-to-understand explanations and code and path visualization. + +- **Codety** :warning: :copyright: — Codety Scanner is a comprehensive source code scanner that embeds 5000+ static code analysis rules, which aim to detect code issues for 20+ programming languages and IaC tools. + +- [Codiga](https://www.codiga.io) :copyright: — Automated Code Reviews and Technical Debt management platform that supports 12+ languages. + +- [Corgea](https://corgea.com/) :copyright: — Corgea is an AI-powered SAST scanner that helps developers find and fix insecure code. It finds business logic flaws, broken authentication, API vulnerabilities, and more with little false positives. Additionally, it automatically writes security fixes for them to approve. Corgea integrates with GitHub, GitLab, Azure DevOps, IDEs and CLI. It is free to try it. + +- **Corrode** :warning: — Semi-automatic translation from C to Rust. Could reveal bugs in the original implementation by showing Rust compiler warnings and errors. Superseded by C2Rust. + +- [Coverity](https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html) :copyright: — Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET. + +- [cpp-linter-action](https://cpp-linter.github.io/cpp-linter-action/) — A Github Action for linting C/C++ code integrating clang-tidy and clang-format to collect feedback provided in the form of thread comments and/or annotations. + +- **cqc** :warning: — Check your code quality for js, jsx, vue, css, less, scss, sass and styl files. + +- **DeepCode** :warning: :copyright: — DeepCode was acquired by Snyk is now Snyk Code. + +- [DeepSource](https://deepsource.com) :copyright: — In-depth static analysis to find issues in verticals of bug risks, security, anti-patterns, performance, documentation and style. Native integrations with GitHub, GitLab and Bitbucket. Less than 5% false positives. + +- [deleaker](https://www.deleaker.com/) :copyright: — Deleaker is a memory leak detection tool for C++, .NET, and Delphi, integrating with Visual Studio, Qt Creator, and RAD Studio or running as a standalone application. It helps developers find and fix memory, GDI, and handle leaks efficiently. + +- [Depends](https://github.com/multilang-depends/depends) — Analyses the comprehensive dependencies of code elements for Java, C/C++, Ruby. + +- [DerScanner](https://derscanner.com/) :copyright: — Multi-language Static Application Security Testing (SAST) platform that detects critical vulnerabilities, including hardcoded secrets, weak cryptography, backdoors, SQL injections, insecure configurations, etc. + +- [DevSkim](https://github.com/microsoft/devskim) — Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others. + +- [diesel-guard](https://github.com/ayarotsky/diesel-guard) — Linter for dangerous Postgres migration patterns in Diesel and SQLx. Prevents downtime caused by unsafe schema changes. + +- [dotnet-format](https://github.com/dotnet/format) — A code formatter for .NET. Preferences will be read from an `.editorconfig` file, if present, otherwise a default set of preferences will be used. At this time dotnet-format is able to format C# and Visual Basic projects with a subset of supported `.editorconfig` options. + +- [Embold](https://embold.io) :copyright: — Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more. + +- **emerge** :warning: — Emerge is a source code and dependency visualizer that can be used to gather insights about source code structure, metrics, dependencies and complexity of software projects. After scanning the source code of a project it provides you an interactive web interface to explore and analyze your project by using graph structures. + +- [Enforster AI](https://enforster.ai/) :copyright: — Enforster AI performs Contextual Code Security SAST, leveraging LLMs and artificial intelligence to reduce and enrich the detection of Logic Flaws, Secrets, Data leaks, Supply chain and technical vulnerabilities. + +- [ESLint](https://github.com/eslint/eslint) — An extensible linter for JS, following the ECMAScript standard. + +- [ezno](https://kaleidawave.github.io/posts/introducing-ezno/) — A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance. Ezno's type checker is built from scratch. The checker is fully compatible with TypeScript type annotations and can work without any type annotations at all. + +- [Find Security Bugs](https://find-sec-bugs.github.io) — The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects) + +- [Fortify](https://www.microfocus.com/en-us/cyberres/application-security/static-code-analyzer) :copyright: — A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML. + +- [Freeplane Code Explorer](https://docs.freeplane.org/user-documentation/Code_Explorer.html) — The Code Explorer mode in Freeplane is designed for analyzing the structure and dependencies of code compiled to JVM class files. It also allows displaying ArchUnit test results directly in Freeplane, if Freeplane is running and ArchUnit detects rule violations during the tests. + + +- [Goodcheck](https://sider.github.io/goodcheck) — Regexp based customizable linter. + +- **goone** :warning: — Finds N+1 queries (SQL calls in a for loop) in go code + +- [graudit](http://www.justanotherhacker.com) — Grep rough audit - source code auditing tool. + +- [HCL AppScan Source](https://www.hcltechsw.com/products/appscan) :copyright: — Commercial Static Code Analysis. + +- **Hopper** :warning: — A static analysis tool written in scala for languages that run on JVM. + +- [Hound CI](https://houndci.com) — Comments on style violations in GitHub pull requests. Supports Coffeescript, Go, HAML, JavaScript, Ruby, SCSS and Swift. + +- **imhotep** :warning: — Comment on commits coming into your repository and check for syntactic errors and general lint warnings. + +- **include-gardener** :warning: — A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files. + +- [Infer](https://fbinfer.com) — A static analyzer for Java, C and Objective-C + +- [Joern](https://joern.io) — Joern is a platform for analyzing source code, bytecode, and binary executables. It generates code property graphs (CPGs), a graph representation of code for cross-language code analysis. Code property graphs are stored in a custom graph database. This allows code to be mined using search queries formulated in a Scala-based domain-specific query language. Joern is developed with the goal of providing a useful tool for vulnerability discovery and research in static program analysis. + +- [jQAssistant](https://jqassistant.org/) — jQAssistant is a plugin based software analytics platform which allows scanning code structures and metadata from repositories into a Neo4j graph database. The gathered data can be used for ad-hoc exploration using queries, visualization or defining rules for continuous architecture validation. + +- [keploy](https://keploy.io/) — Keploy is an open-source testing platform that helps developers automate and streamline their testing process. It provides API, and integration testing agents, generating tests, mocks/stubs for APIs that actually work. Additionally, Keploy offers an AI-powered Unit Testing Agent that generates stable, useful unit tests directly in your GitHub PRs and in VSCode, helping catch errors and improve code quality. + +- [Kiuwan](https://www.kiuwan.com/code-security-sast) :copyright: — Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, C\C++, Java, C#, PHP and more. + +- [Klocwork](https://www.perforce.com/products/klocwork) :copyright: — Quality and Security Static analysis for C/C++, Java and C#. + +- [LangLint](https://github.com/HzaCode/Langlint) — Automated translation platform for code comments and docstrings across 20+ file types. Eliminates language barriers in international software collaboration. Supports 100+ language pairs with syntax protection. Integrates into CI/CD pipelines like Ruff. 10-20x faster with concurrent processing. + +- [LGTM](https://lgtm.com/) :copyright: — Find security vulnerabilities, variants, and critical code quality issues using CodeQL queries over source code. Automatic PR code review; free for open source. Formerly semmle. It supports public Git repositories hosted on Bitbucket Cloud, GitHub.com, GitLab.com. + +- [lizard](https://github.com/terryyin/lizard) — Lizard is an extensible Cyclomatic Complexity Analyzer for many programming languages including C/C++ (doesn't require all the header files or Java imports). It also does copy-paste detection (code clone detection/code duplicate detection) and many other forms of static code analysis. Counts lines of code without comments, CCN (cyclomatic complexity number), token count of functions, parameter count of functions. + +- [Mega-Linter](https://megalinter.io/) — Mega-Linter can handle any type of project thanks to its 70+ embedded Linters, + its advanced reporting, runnable on any CI system or locally, + with assisted installation and configuration, able to apply formatting and fixes + +- [Mobb](https://mobb.ai) :copyright: — Mobb is a trusted, automatic vulnerability fixer that secures applications, reduces security backlogs, and frees developers to focus on innovation. Mobb is free for open-source projects. + +- [MOPSA](https://mopsa.lip6.fr) — A static analyzer designed to easily reuse abstract domains across widely different languages (such as C and Python). + +- [Neurolint-CLI](https://neurolint.dev) — Deterministic code transformation tool using AST parsing and rule-based transformations. +Automatically fixes 50+ issues including accessibility violations, hydration errors, +React 19/Next.js 16 migrations, and configuration updates. Features 5-step fail-safe +orchestration to ensure zero breaking changes. Specialized for React, Next.js, and TypeScript projects. + + +- [oclint](http://oclint.org) — A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. + +- [Offensive 360](https://offensive360.com/) :copyright: — Commercial Static Code Analysis system doesn't require building the source code or pre-compilation. + +- [OpenRewrite](https://docs.openrewrite.org/) — OpenRewrite [fixes common static analysis issues](https://docs.openrewrite.org/running-recipes/popular-recipe-guides/common-static-analysis-issue-remediation) reported through Sonar and other tools using a Maven and Gradle plugin or the Moderne CLI. + +- [OpenStaticAnalyzer](https://github.com/sed-inf-u-szeged/OpenStaticAnalyzer) — OpenStaticAnalyzer is a source code analyzer tool, which can perform deep static analysis of the source code of complex systems. + +- [oxc](https://github.com/web-infra-dev/oxc) — The Oxidation Compiler is creating a suite of high-performance tools for the JavaScript / TypeScript language re-written in Rust. + +- [parasoft](https://www.parasoft.com/) :copyright: — Automated Software Testing Solutions for unit-, API-, and web UI testing. Complies with MISRA, OWASP, and others. + +- [pfff](https://github.com/facebookarchive/pfff/wiki/Main) — Facebook's tools for code analysis, visualizations, or style-preserving source transformation for many languages. + +- [Pixee](https://pixee.ai) :copyright: — Pixeebot finds security and code quality issues in your code and creates merge-ready pull requests with recommended fixes. + +- [PMD](https://pmd.github.io) — A source code analyzer for Java, Salesforce Apex, Javascript, PLSQL, XML, XSL and others. + +- [pre-commit](https://pre-commit.com) — A framework for managing and maintaining multi-language pre-commit hooks. + +- [Precaution](https://www.securesauce.dev/) — Precaution is a static analysis security tool (SAST) designed to find potentially critical vulnerabilities in source code prior to production. It is available as a CLI, GitHub Action, and GitHub App. + +- [Prettier](https://prettier.io) — An opinionated code formatter. + +- [Pronto](https://github.com/prontolabs/pronto) — Quick automated code review of your changes. Supports more than 40 runners for various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more. + +- **PT.PM** :warning: — An engine for searching patterns in the source code, based on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, and JavaScript are supported. Patterns can be described within the code or using a DSL. + +- [Putout](https://github.com/coderaiser/putout) — Pluggable and configurable code transformer with built-in eslint, babel plugins support for js, jsx typescript, flow, markdown, yaml and json. + +- [PVS-Studio](https://pvs-studio.com) :copyright: — A ([conditionally free](https://pvs-studio.com/en/order/open-source-license) for FOSS and individual developers) static analysis of C, C++, C# and Java code. For advertising purposes [you can propose a large FOSS project for analysis by PVS employees](https://github.com/viva64/pvs-studio-check-list). Supports CWE mapping, OWASP ASVS, MISRA, AUTOSAR and SEI CERT coding standards. + +- [pylama](https://klen.github.io/pylama/) — Code audit tool for Python and JavaScript. Wraps pycodestyle, pydocstyle, PyFlakes, Mccabe, Pylint, and more + +- [Qwiet AI](https://qwiet.ai/) :copyright: — Identify vulnerabilities that are unique to your code base before they reach production. Leverages the Code Property Graph (CPG) to run its analyses concurrently in a single graph of graphs. Automatically finds business logic flaws in dev like hardcoded secrets and logic bombs + +- [Refactoring Essentials](https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.RefactoringEssentialsforVisualStudio) — The free Visual Studio 2015 extension for C# and VB.NET refactorings, including code best practice analyzers. + +- [relint](https://github.com/codingjoe/relint) — A static file linter that allows you to write custom rules using regular expressions (RegEx). + +- [ReSharper](https://www.jetbrains.com/resharper) :copyright: — Extends Visual Studio with on-the-fly code inspections for C#, VB.NET, ASP.NET, JavaScript, TypeScript and other technologies. + +- [Rev-dep](https://github.com/jayu/rev-dep) — Dependency analysis and optimization toolkit for modern JavaScript and TypeScript projects. Trace imports, identify circular dependencies, find unused code, clean node modules. + +- [RIPS](https://www.ripstech.com) :copyright: — A static source code analyser for vulnerabilities in PHP scripts. + +- [Roslyn Analyzers](https://github.com/dotnet/roslyn-analyzers) — Roslyn-based implementation of FxCop analyzers. + +- [Roslyn Security Guard](https://security-code-scan.github.io) — Project that focuses on the identification of potential vulnerabilities such as SQL injection, cross-site scripting (XSS), CSRF, cryptography weaknesses, hardcoded passwords and many more. + +- [SafeQL](https://safeql.dev) — Validate and auto-generate TypeScript types from raw SQL queries in PostgreSQL. SafeQL is an ESLint plugin for writing SQL queries in a type-safe way. + +- [SAST Online](https://sast.online/) :copyright: — Check the Android Source code thoroughly to uncover and address potential security concerns and vulnerabilities. Static application security testing (Static Code Analysis) tool Online + +- **Scrutinizer** :warning: :copyright: — A proprietary code quality checker that can be integrated with GitHub. + +- [Security Code Scan](https://security-code-scan.github.io) — Security code analyzer for C# and VB.NET. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates into Visual Studio 2015 and newer. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. + +- [Semgrep](https://semgrep.dev) — A fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor, commit, and CI time. Its rules look like the code you already write; no abstract syntax trees or regex wrestling. Supports 17+ languages. + +- [Semgrep Supply Chain](https://semgrep.dev/products/semgrep-supply-chain) :copyright: — Quickly find and remediate high-priority security issues. Semgrep Supply Chain prioritizes the 2% of vulnerabilities that are reachable from your code. + +- [Seqra](https://seqra.dev) — Security-focused static analyzer for Java and Kotlin web applications. Analyzes bytecode with Semgrep-style YAML rules and CodeQL-grade dataflow (with first-class Spring support) to find vulnerabilities that source-only scanners miss. + +- **ShiftLeft Scan** :warning: — Scan is a free open-source DevSecOps platform for detecting security issues in source code and dependencies. It supports a broad range of languages and CI/CD pipelines. Note: ShiftLeft rebranded to Qwiet AI in 2023, which was subsequently acquired by Harness in September 2025. This open-source project is no longer maintained. + +- **shipshape** :warning: — Static program analysis platform that allows custom analyzers to plug in through a common interface. + +- [Sigrid](https://www.softwareimprovementgroup.com/solutions/sigrid-software-assurance-platform/) :copyright: — Sigrid helps you to improve your software by measuring your system's code quality, and then compares the results against a benchmark of thousands of industry systems to give you concrete advice on areas where you can improve. + +- [Similarity Tester](https://dickgrune.com/Programs/similarity_tester/) — A tool that finds similarities between or within files to support you encountering DRY principle violations. + +- [Skylos](https://github.com/duriantaco/skylos) — Dead code detection, security scanning, secrets detection, and code quality analysis for Python, TypeScript, and Go. Framework-aware analysis with 98% recall. Includes CI/CD GitHub Action, VS Code extension, and MCP server for AI agent integration. + +- [Snyk Code](https://snyk.io) :copyright: — Snyk Code finds security vulnerabilities based on AI. Its speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, JavaScript, Python, PHP, C#, Go and TypeScript. Integrations with GitHub, BitBucket and Gitlab. It is free to try and part of the Snyk platform also covering SCA, containers and IaC. + +- [SonarQube Cloud](https://sonarcloud.io) :copyright: — SonarQube Cloud enables your team to deliver clean code consistently and efficiently with a code review tool that easily integrates into the cloud DevOps platforms and extend your CI/CD workflow. SonarQube Cloud provides a free plan. + +- [SonarQube for IDE](https://sonarlint.org) — SonarQube for IDE (formerly SonarLint) is a free IDE extension available for IntelliJ, VS Code, Visual Studio, and Eclipse, to find and fix coding issues in real-time, flagging issues as you code, just like a spell-checker. More than a linter, it also delivers rich contextual guidance to help developers understand why there is an issue, assess the risk, and educate them on how to fix it. + +- [SonarQube Server](https://sonarqube.org) — SonarQube empowers development teams with a code quality and security solution that deeply integrates into your enterprise environment; enabling you to deploy clean code consistently and reliably. SonarQube provides a free and open source Community Build. + +- [Sonatype](https://www.sonatype.com) :copyright: — Reports known vulnerabilities in common dependencies and recommends updated packages to minimize breaking changes + +- [Soto Platform](https://www.hello2morrow.com/products/sotograph) :copyright: — Suite of static analysis tools consisting of the three components Sotoarc (Architecture Analysis), Sotograph (Quality Analysis), and Sotoreport (Quality report). Helps find differences between architecture and implementation, interface violations (e.g. external access of private parts of subsystems, detection of all classes, files, packages and subsystems which are strongly coupled by cyclical relationships and more. The Sotograph product family runs on Windows and Linux. + +- [SourceMeter](https://www.sourcemeter.com/) :copyright: — Static Code Analysis for C/C++, Java, C#, Python, and RPG III and RPG IV versions (including free-form). + +- [sqlvet](https://github.com/houqp/sqlvet) — Performs static analysis on raw SQL queries in your Go code base to surface potential runtime errors. It checks for SQL syntax error, identifies unsafe queries that could potentially lead to SQL injections makes sure column count matches value count in INSERT statements and validates table- and column names. + +- [StaticReviewer](https://securityreviewer.atlassian.net/wiki/spaces/KC/pages/196633/Static+Reviewer) :copyright: — Static Reviewer executes code checks according to the most relevant Secure Coding Standards, OWASP, CWE, CVE, CVSS, MISRA, CERT, for 40+ programming languages, using 1000+ built-in validation rules for Security, Deadcode & Best Practices Available a module for Software Composition Analysis (SCA) to find vulnerabilities in open source and third party libraries. + +- **Super-Linter** :warning: — Combination of multiple linters to install as a GitHub Action. + +- [Svace](https://www.ispras.ru/en/technologies/svace/) :copyright: — Static code analysis tool for Java,C,C++,C#,Go. + +- [Synopsys](https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html) :copyright: — A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift). + +- [Teamscale](https://teamscale.com) :copyright: — Static and dynamic analysis tool supporting more than 25 languages and direct IDE integration. Free hosting for Open Source projects available on request. Free academic licenses available. + +- **TencentCodeAnalysis** :warning: — Tencent Cloud Code Analysis (TCA for short, code-named CodeDog inside the company early) is a comprehensive platform for code analysis and issue tracking. TCA consist of three components, server, web and client. It integrates of a number of self-developed tools, and also supports dynamic integration of code analysis tools in various programming languages. + +- [ThreatMapper](https://github.com/deepfence/ThreatMapper) — Vulnerability Scanner and Risk Evaluation for containers, serverless and hosts at runtime. ThreatMapper generates runtime BOMs from dependencies and operating system packages, matches against multiple threat feeds, scans for unprotected secrets, and scores issues based on severity and risk-of-exploit. + +- [todocheck](https://github.com/preslavmihaylov/todocheck) — Linter for integrating annotated TODOs with your issue trackers + +- [trivy](https://github.com/aquasecurity/trivy) — A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. Trivy detects vulnerabilities of OS packages (Alpine, RHEL, CentOS, etc.) and application dependencies (Bundler, Composer, npm, yarn, etc.). Checks containers and filesystems. + + +- [trunk](https://trunk.io) :copyright: — Modern repositories include many technologies, each with its own set of linters. With 30+ linters and counting, Trunk makes it dead-simple to identify, install, configure, and run the right linters, static analyzers, and formatters for all your repos. + +- [TscanCode](https://github.com/Tencent/TscanCode) — A fast and accurate static analysis solution for C/C++, C#, Lua codes provided by Tencent. Using GPLv3 license. + +- [Undebt](https://github.com/Yelp/undebt) — Language-independent tool for massive, automatic, programmable refactoring based on simple pattern definitions. + +- [Understand](https://www.scitools.com) :copyright: — Code visualization tool that provides code analysis, standards testing, metrics, graphing, dependency analysis and more for Ada, VHDL, and others. + +- [Unibeautify](https://unibeautify.com) — Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more. + +- [Upsource](https://www.jetbrains.com/upsource) :copyright: — Code review tool with static code analysis and code-aware navigation for Java, PHP, JavaScript and Kotlin. + +- [Veracode](https://www.veracode.com/security/static-code-analysis) :copyright: — Find flaws in binaries and bytecode without requiring source. Support all major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, C++ and more. + +- [WALA](https://github.com/wala/WALA) — Static analysis capabilities for Java bytecode and related languages and for JavaScript. + +- [weggli](https://github.com/googleprojectzero/weggli) — A fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases. + +- [WhiteHat Application Security Platform](https://source.whitehatsec.com/help/sentinel/sast-service-detail.html) :copyright: — WhiteHat Scout (for Developers) combined with WhiteHat Sentinel Source (for Operations) supporting WhiteHat Top 40 and OWASP Top 10. + +- **Wotan** :warning: — Pluggable TypeScript and JavaScript linter. + +- [XCode](https://developer.apple.com/xcode) :copyright: — XCode provides a pretty decent UI for [Clang's](https://clang-analyzer.llvm.org/xcode.html) static code analyzer (C/C++, Obj-C). + +- [Xygeni](https://xygeni.io/) :copyright: — Xygeni is a comprehensive Software Supply Chain Security platform. It provides Advanced SAST with AI-powered remediation, Software Composition Analysis (SCA) with real-time malware detection, Infrastructure as Code (IaC) scanning, and Secrets detection to ensure end-to-end code security. + + +## Other + + + +
+

.env

+ + +- [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase. + + +
+

Ansible

+ + +- [kics](https://kics.io/) — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible + +- [Steampunk Spotter](https://steampunk.si/spotter/) :copyright: — Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks. + + +
+

Archive

+ + +- **alquitran** :warning: — Inspects tar archives and tries to spot portability issues in regard to POSIX 2017 pax specification and common tar implementations. +This project is intended to be used by maintainers of projects who want to offer portable source code archives for as many systems as possible. Checking tar archives with alquitran before publishing them should help spotting issues before they reach distributors and users. + +- [packj](https://github.com/ossillate-inc/packj) — Packj (pronounced package) is a command line (CLI) tool to vet open-source software packages for "risky" attributes that make them vulnerable to supply chain attacks. This is the tool behind our large-scale security analysis platform Packj.dev that continuously vets packages and provides free reports. + +- **pure** :warning: — Pure is a static analysis file format checker that checks ZIP files for dangerous compression ratios, spec deviations, malicious archive signatures, mismatching local and central directory headers, ambiguous UTF-8 filenames, directory and symlink traversals, invalid MS-DOS dates, overlapping headers, overflow, underflow, sparseness, accidental buffer bleeds etc. + + +
+

Azure Resource Manager

+ + +- [AzSK](https://azsk.azurewebsites.net/) — Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM. + + +
+

Binaries

+ + +- [angr](https://github.com/angr/angr) — Binary code analysis tool that also supports symbolic execution. + +- [binbloom](https://github.com/quarkslab/binbloom) — Analyzes a raw binary firmware and determines features like endianness or the loading address. The tool is compatible with all architectures. +Loading address: binbloom can parse a raw binary firmware and determine its loading address. Endianness: binbloom can use heuristics to determine the endianness of a firmware. UDS Database: binbloom can parse a raw binary firmware and check if it contains an array containing UDS command IDs. + +- [BinSkim](https://github.com/Microsoft/binskim) — A binary static analysis tool that provides security and correctness results for Windows portable executables. + +- [Black Duck](https://www.blackducksoftware.com) :copyright: — Tool to analyze source code and binaries for reusable code, necessary licenses and potential security aspects. + +- [bloaty](https://github.com/google/bloaty) — Ever wondered what's making your binary big? Bloaty McBloatface will show you a size profile of the binary so you can understand what's taking up space inside. Bloaty performs a deep analysis of the binary. Using custom ELF, DWARF, and Mach-O parsers, Bloaty aims to accurately attribute every byte of the binary to the symbol or compileunit that produced it. It will even disassemble the binary looking for references to anonymous data. F + +- **cargo-bloat** :warning: — Find out what takes most of the space in your executable. supports ELF (Linux, BSD), Mach-O (macOS) and PE (Windows) binaries. + +- [cwe_checker](https://github.com/fkie-cad/cwe_checker) — cwe_checker finds vulnerable patterns in binary executables. + +- [Ghidra](https://ghidra-sre.org) — A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission + +- [Hopper](https://www.hopperapp.com/) :copyright: — macOS and Linux reverse engineering tool that lets you disassemble, decompile and debug applications. Hopper displays the code using different representations, e.g. the Control Flow Graph, and the pseudo-code of a procedure. Supports Apple Silicon. + +- [IDA Free](https://www.hex-rays.com/products/ida/support/download_freeware) :copyright: — Binary code analysis tool. + +- [Jakstab](https://github.com/jkinder/jakstab) — Jakstab is an Abstract Interpretation-based, integrated disassembly and static analysis framework for designing analyses on executables and recovering reliable control flow graphs. + +- [JEB Decompiler](https://www.pnfsoftware.com/) :copyright: — Decompile and debug binary code. Break down and analyze document files. Android Dalvik, MIPS, ARM, Intel x86, Java, WebAssembly & Ethereum Decompilers. + +- [Malcat](https://malcat.fr/) :copyright: — Hexadecimal editor and disassembler for malware analysis and binary file inspection. Supports over 50 file formats and multiple CPU architectures (x86/x64, MIPS, .NET, Python, VB p-code). Features rapid analysis, embedded file extraction, Yara signature scanning, anomaly detection, and Python scripting. Designed for malware analysts, SOC operators, incident responders, and CTF players. + +- [Manalyze](https://github.com/JusticeRage/Manalyze) — A static analyzer, which checks portable executables for malicious content. + +- **mcsema** :warning: — Framework for lifting x86, amd64, aarch64, sparc32, and sparc64 program binaries to LLVM bitcode. It translates ("lifts") executable binaries from native machine code to LLVM bitcode, which is very useful for performing program analysis methods. + +- [Nauz File Detector](https://github.com/horsicq/Nauz-File-Detector) — Static Linker/Compiler/Tool detector for Windows, Linux and MacOS. + +- [rhabdomancer](https://crates.io/crates/rhabdomancer) — IDA Pro headless plugin that locates calls to potentially insecure API functions in a binary file. + +- [rust-audit](https://github.com/Shnatsel/rust-audit) — Audit Rust binaries for known bugs or security vulnerabilities. This works by embedding data about the dependency tree (Cargo.lock) in JSON format into a dedicated linker section of the compiled executable. + +- [Twiggy](https://github.com/rustwasm/twiggy) — Analyzes a binary's call graph to profile code size. The goal is to slim down wasm binary size. + +- [VMware chap](https://github.com/vmware/chap) — chap analyzes un-instrumented ELF core files for leaks, memory growth, and corruption. It is sufficiently reliable that it can be used in automation to catch leaks before they are committed. As an interactive tool, it helps explain memory growth, can identify some forms of corruption, and supplements a debugger by giving the status of various memory locations. + +- [zydis](https://zydis.re) — Fast and lightweight x86/x86-64 disassembler library + + +
+

Build tools

+ + +- [checkmake](https://github.com/mrtazz/checkmake) — Linter / Analyzer for Makefiles. + +- [portlint](https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports) — A verifier for FreeBSD and DragonFlyBSD port directories. + + +
+

CSS/SASS/SCSS

+ + +- [CSS Stats](https://cssstats.com) — Potentially interesting stats on stylesheets. + +- [CSScomb](https://github.com/csscomb/csscomb.js) — A coding style formatter for CSS. Supports own configurations to make style sheets beautiful and consistent. + +- [CSSLint](http://csslint.net) — Does basic syntax checking and finds problematic patterns or signs of inefficiency. + +- [GraphMyCSS.com](https://graphmycss.com) — CSS Specificity Graph Generator. + +- [Nu Html Checker](https://validator.github.io/validator/) — Helps you catch problems in your HTML/CSS/SVG + +- **Parker** :warning: — Stylesheet analysis tool. + +- [PostCSS](https://postcss.org) — A tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more. + +- [Project Wallace CSS Analyzer](https://www.projectwallace.com) — Analytics for CSS, part of [Project Wallace](https://www.projectwallace.com). + +- **sass-lint** :warning: — A Node-only Sass linter for both sass and scss syntax. + +- **scsslint** :warning: — Linter for SCSS files. + +- [Specificity Graph](https://github.com/pocketjoso/specificity-graph) — CSS Specificity Graph Generator. + +- [Stylelint](http://stylelint.io) — Linter for SCSS/CSS files. + + +
+

Config Files

+ + +- [dotenv-linter](https://dotenv-linter.readthedocs.io/en/latest) — Linting dotenv files like a charm. + +- [dotenv-linter (Rust)](https://dotenv-linter.github.io/#/) — Lightning-fast linter for .env files. Written in Rust + +- [gixy](https://github.com/yandex/gixy) — A tool to analyze Nginx configuration. The main goal is to prevent misconfiguration and automate flaw detection. + + +
+

Configuration Management

+ + +- [ansible-lint](https://ansible.readthedocs.io/projects/lint/) — Checks playbooks for practices and behaviour that could potentially be improved. + +- [AWS CloudFormation Guard](https://github.com/aws-cloudformation/cloudformation-guard) — Check local CloudFormation templates against policy-as-code rules and generate rules from existing templates. + +- [AzSK](https://azsk.azurewebsites.net/) — Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM. + +- [cfn-lint](https://github.com/awslabs/cfn-python-lint) — AWS Labs CloudFormation linter. + +- [cfn_nag](https://github.com/stelligent/cfn_nag) — A linter for AWS CloudFormation templates. + +- [checkov](https://www.checkov.io) — Static analysis tool for Terraform files (tf>=v0.12), preventing cloud misconfigs at build time. + +- [cookstyle](https://docs.chef.io/cookstyle.html) — Cookstyle is a linting tool based on the RuboCop Ruby linting tool for Chef cookbooks. + +- [foodcritic](http://www.foodcritic.io) — A lint tool that checks Chef cookbooks for common problems. + +- [kics](https://kics.io/) — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible + +- [metadata-json-lint](https://github.com/voxpupuli/metadata-json-lint) — Tool to check the validity of Puppet metadata.json files. + +- **Puppet Lint** :warning: — Check that your Puppet manifests conform to the style guide. + +- [Steampunk Spotter](https://steampunk.si/spotter/) :copyright: — Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks. + +- [terraform-compliance](https://terraform-compliance.com) — A lightweight, compliance- and security focused, BDD test framework against Terraform. + +- [terrascan](https://github.com/cesar-rodriguez/terrascan) — Collection of security and best practice tests for static code analysis of Terraform templates. + +- [tflint](https://github.com/wata727/tflint) — A Terraform linter for detecting errors that can not be detected by `terraform plan`. + +- [tfsec](https://github.com/tfsec/tfsec) — Terraform static analysis tool that prevents potential security issues by checking cloud misconfigurations at build time and directly integrates with the HCL parser for better results. Checks for violations of AWS, Azure and GCP security best practice recommendations. + + +
+

Containers

+ + +- [anchore](https://anchore.io) — Discover, analyze, and certify container images. A service that analyzes Docker images and applies user-defined acceptance policies to allow automated container image validation and certification + +- [clair](https://github.com/coreos/clair) — Vulnerability Static Analysis for Containers. + +- **collector** :warning: — Run arbitrary scripts inside containers, and gather useful information. + +- **dagda** :warning: — Perform static analysis of known vulnerabilities in docker images/containers. + +- **Docker Label Inspector** :warning: — Lint and validate Dockerfile labels. + +- [Dockle](https://github.com/goodwithtech/dockle) — Container Image Linter for Security helping build the Best-Practice Docker Image. Scans Docker images for security vulnerabilities and CIS Benchmark compliance. Checks for secrets, credential exposure, and security best practices. Provides multiple severity levels (FATAL, WARN, INFO) and supports various output formats for CI/CD integration. + +- [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase. + +- [Grype](https://github.com/anchore/grype) — Vulnerability scanner for container images and filesystems. Developed by Anchore, it scans container images, directories, and archives for known vulnerabilities. Supports multiple image formats, SBOM integration, and VEX (Vulnerability Exploitability eXchange) for accurate vulnerability assessment. Works with various vulnerability databases and provides detailed reporting. + +- [Haskell Dockerfile Linter](https://github.com/lukasmartinelli/hadolint) — A smarter Dockerfile linter that helps you build best practice Docker images. + +- [kics](https://kics.io/) — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible + +- **krane** :warning: — Krane is a simple Kubernetes RBAC static analysis tool. +It identifies potential security risks in K8s RBAC design and makes suggestions on how to mitigate them. Krane dashboard presents current RBAC security posture and lets you navigate through its definition. + +- [OpenSCAP](https://www.open-scap.org/) — Suite of automated audit tools to examine the configuration and known vulnerabilities following the NIST-certified Security Content Automation Protocol (SCAP). + +- [Qualys Container Security](https://www.qualys.com/apps/container-security) :copyright: — Container native application protection to provide visibility and control of containerized applications. + +- [sysdig](https://sysdig.com/) :copyright: — A secure DevOps platform for cloud and container forensics. Built on an open source stack, Sysdig provides Docker image scanning and created Falco, the open standard for runtime threat detection for containers, Kubernetes and cloud. + +- [Vuls](https://vuls.io/) — Agent-less Linux vulnerability scanner based on information from NVD, OVAL, etc. It has some container image support, although is not a container specific tool. + + +
+

Continuous Integration

+ + +- [actionlint](https://rhysd.github.io/actionlint) — Static checker for GitHub Actions workflow files. Provides an online version. + +- [AzSK](https://azsk.azurewebsites.net/) — Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM. + +- [Code Climate](https://codeclimate.com) — The open and extensible static analysis platform, for everyone. + +- [Codecov](https://about.codecov.io/) :copyright: — Codecov is a company that provides code coverage tools for developers and engineering leaders to gain visibility into their code coverage. +They offer flexible and unified reporting, seamless coverage insights, and robust coverage controls. Codecov supports over 20 languages and is CI/CD agnostic. Over 29,000 organizations and 1 million developers use Codecov. Codecov has recently joined Sentry. + +- [CodeRabbit](https://coderabbit.ai) :copyright: — AI-powered code review tool that helps developers write better code faster. CodeRabbit provides automated code reviews, identifies security vulnerabilities, and suggests code improvements. It integrates with GitHub and GitLab. + +- [composer-dependency-analyser](https://github.com/shipmonk-rnd/composer-dependency-analyser) — Fast detection of composer dependency issues. + +* 💪 Powerful: Detects unused, shadow and misplaced composer dependencies +* ⚡ Performant: Scans 15 000 files in 2s! +* ⚙️ Configurable: Fine-grained ignores via PHP config +* 🕸️ Lightweight: No composer dependencies +* 🍰 Easy-to-use: No config needed for first try +* ✨ Compatible: PHP >= 7.2 + + +- [Diffblue](https://www.diffblue.com/) :copyright: — Diffblue is a software company that provides AI-powered code analysis and testing solutions for software development teams. +Its technology helps developers automate testing, find bugs, and reduce manual labor in their software development processes. The company's main product, Diffblue Cover, uses AI to generate and run unit tests for Java code, helping to catch errors and improve code quality. + +- [exakat](https://www.exakat.io) — An automated code reviewing engine for PHP. + +- [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase. + +- [Goblint](https://goblint.in.tum.de) — A static analyzer for the analysis of multi-threaded C programs. Its primary focus is the detection of data races, but it also reports other runtime errors, such as buffer overflows and null-pointer dereferences. + +- [PullRequest](https://www.hackerone.com/product/code) :copyright: — Code review as a service with built-in static analysis. Increase velocity and reduce technical debt through quality code review by expert engineers backed by best-in-class automation. + +- **quality** :warning: — Runs quality checks on your code using community tools, and makes sure your numbers don't get any worse over time. + +- **QuantifiedCode** :warning: — Automated code review & repair. It helps you to keep track of issues and metrics in your software projects, and can be easily extended to support new types of analyses. + +- [RefactorFirst](https://github.com/jimbethancourt/RefactorFirst) — Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first. + +- [Reviewdog](https://github.com/haya14busa/reviewdog) — A tool for posting review comments from any linter in any code hosting service. + +- [Symfony Insight](https://insight.symfony.com/) :copyright: — Detect security risks, find bugs and provide actionable metrics for PHP projects. + +- [TangleGuard](https://tangleguard.com/) :copyright: — Helps you understand and maintain a scalable software architecture. To do so, it generates a interactive, nested dependency graph out of the source code. You can choose the level of details and get the portion of your codebase that matters to you. + +- [Violations Lib](https://github.com/tomasbjerre/violations-lib) — Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins. + + +
+

Deno

+ + +- [deno_lint](https://github.com/denoland/deno_lint) — Official linter for Deno. + + +
+

Dockerfile

+ + +- [Cloud (IaC) Security for JetBrains IDEs](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) — Cloud (IaC) Security plugin for JetBrains IDEs. Performs real-time inspections of Docker & Kubernetes IaC with 50+ rules based on Docker image/build security best practices, Kubernetes Pod Security Standards, and NSA/CISA Kubernetes Hardening Guidance. + +- [Dockle](https://github.com/goodwithtech/dockle) — Container Image Linter for Security helping build the Best-Practice Docker Image. Scans Docker images for security vulnerabilities and CIS Benchmark compliance. Checks for secrets, credential exposure, and security best practices. Provides multiple severity levels (FATAL, WARN, INFO) and supports various output formats for CI/CD integration. + + +
+

Embedded

+ + +- [oelint-adv](https://github.com/priv-kweihmann/oelint-adv) — Linter for bitbake recipes used in open-embedded and YOCTO + + +
+

Embedded Ruby (a.k.a. ERB, eRuby)

+ + +- [ERB Lint](https://github.com/Shopify/erb-lint) — Lint your ERB or HTML files + +- [ERB::Formatter](https://github.com/nebulab/erb-formatter) — Format ERB files with speed and precision. + +- [htmlbeautifier](https://github.com/threedaymonk/htmlbeautifier) — A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates. + + +
+

Gherkin

+ + +- [gherkin-lint](https://github.com/vsiakka/gherkin-lint) — A linter for the Gherkin-Syntax written in Javascript. + + +
+

HTML

+ + +- [Angular ESLint](https://github.com/angular-eslint/angular-eslint#readme) — Linter for Angular projects + +- [axe-core](https://www.deque.com/axe/) — Accessibility engine for automated Web UI testing. Tests HTML against WCAG 2.0, 2.1, and 2.2 guidelines. Used by Google Lighthouse, Microsoft Accessibility Insights, and thousands of organizations worldwide. + +- **Bootlint** :warning: — An HTML linter for Bootstrap projects. + +- [ERB Lint](https://github.com/Shopify/erb-lint) — Lint your ERB or HTML files + +- [ERB::Formatter](https://github.com/nebulab/erb-formatter) — Format ERB files with speed and precision. + +- **grunt-bootlint** :warning: — A Grunt wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects. + +- **gulp-bootlint** :warning: — A gulp wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects. + +- **HTML Inspector** :warning: — HTML Inspector is a code quality tool to help you and your team write better markup. + +- [HTML Tidy](http://www.html-tidy.org) — Corrects and cleans up HTML and XML documents by fixing markup errors and upgrading legacy code to modern standards. + +- [HTML-Validate](https://html-validate.org/) — Offline HTML5 validator. + +- [htmlbeautifier](https://github.com/threedaymonk/htmlbeautifier) — A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates. + +- [HTMLHint](https://htmlhint.com) — A Static Code Analysis Tool for HTML. + +- [Nu Html Checker](https://validator.github.io/validator/) — Helps you catch problems in your HTML/CSS/SVG + +- [Pa11y](https://pa11y.org/) — Automated accessibility testing tool that runs HTML CodeSniffer or axe-core from the command line. Supports CI/CD integration, multiple reporters, and testing against WCAG 2.1 AA standards. + +- [Polymer-analyzer](https://github.com/Polymer/tools/tree/master/packages/analyzer) — A static analysis framework for Web Components. + + +
+

JSON

+ + +- [jsonlint](https://jsonlint.com/) — A JSON parser and validator with a CLI. Standalone version of jsonlint.com + +- [Spectral](https://stoplight.io/open-source/spectral) — A flexible JSON/YAML linter, with out-of-the-box support for OpenAPI v2/v3 and AsyncAPI v2. + + +
+

Kubernetes

+ + +- [chart-testing](https://github.com/helm/chart-testing) — ct is the tool for testing Helm charts. It is meant to be used for linting and testing pull requests. It automatically detects charts changed against the target branch. + +- [Cloud (IaC) Security for JetBrains IDEs](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) — Cloud (IaC) Security plugin for JetBrains IDEs. Performs real-time inspections of Docker & Kubernetes IaC with 50+ rules based on Docker image/build security best practices, Kubernetes Pod Security Standards, and NSA/CISA Kubernetes Hardening Guidance. + +- [clusterlint](https://github.com/digitalocean/clusterlint) — Clusterlint queries live Kubernetes clusters for resources, executes common and platform specific checks against these resources and provides actionable feedback to cluster operators. It is a non invasive tool that is run externally. Clusterlint does not alter the resource configurations. + +- [Datree](https://datree.io/) — A CLI tool to prevent Kubernetes misconfigurations by ensuring that manifests and Helm charts follow best practices as well as your organization’s policies + +- [kics](https://kics.io/) — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible + +- [klint](https://github.com/uswitch/klint) — A tool that listens to changes in Kubernetes resources and runs linting rules against them. Identify and debug erroneous objects and nudge objects in line with the policies as both change over time. Klint helps us encode checks and proactively alert teams when they need to take action. + +- **krane** :warning: — Krane is a simple Kubernetes RBAC static analysis tool. +It identifies potential security risks in K8s RBAC design and makes suggestions on how to mitigate them. Krane dashboard presents current RBAC security posture and lets you navigate through its definition. + +- [kube-hunter](https://aquasecurity.github.io/kube-hunter/) — Hunt for security weaknesses in Kubernetes clusters. + +- [kube-lint](https://github.com/viglesiasce/kube-lint) — A linter for Kubernetes resources with a customizable rule set. You define a list of rules that you would like to validate against your resources and kube-lint will evaluate those rules against them. + +- [kube-linter](https://github.com/stackrox/kube-linter) — KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices. + +- [kube-score](https://kube-score.com) — Static code analysis of your Kubernetes object definitions. + +- [kubeconform](https://github.com/yannh/kubeconform) — A fast Kubernetes manifests validator with support for custom resources. + +It is inspired by, contains code from and is designed to stay close to [Kubeval](https://analysis-tools.dev/tool/kubeval), +but with the following improvements: +* high performance: will validate & download manifests over multiple routines, caching downloaded files in memory +* configurable list of remote, or local schemas locations, enabling validating Kubernetes custom resources (CRDs) and offline validation capabilities +* uses by default a self-updating fork of the schemas registry maintained by the kubernetes-json-schema project - which guarantees up-to-date schemas for all recent versions of Kubernetes. + + +- [KubeLinter](https://github.com/stackrox/kube-linter) — KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices. + +- **kubeval** :warning: — Validates your Kubernetes configuration files and supports multiple Kubernetes versions. + + +
+

LaTeX

+ + +- **ChkTeX** :warning: — A linter for LaTex which catches some typographic errors LaTeX oversees. + +- [lacheck](https://www.ctan.org/pkg/lacheck) — A tool for finding common mistakes in LaTeX documents. + +- [TeXLab](https://texlab.netlify.app) — A Language Server Protocol implementation for TeX/LaTeX, including lint capabilities. + + +
+

Laravel

+ + +- **Enlightn** :warning: — A static and dynamic analysis tool for Laravel applications that provides recommendations to improve the performance, security and code reliability of Laravel apps. Contains 120 automated checks. + +- [larastan](https://github.com/larastan/larastan) — Adds static analysis to Laravel improving developer productivity and code quality. It is a wrapper around PHPStan. + + +
+

Makefiles

+ + +- [checkmake](https://github.com/mrtazz/checkmake) — Linter / Analyzer for Makefiles. + +- [mbake](https://pypi.org/project/mbake/) — mbake is a Makefile formatter and linter. It only took 50 years! + +- [portlint](https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports) — A verifier for FreeBSD and DragonFlyBSD port directories. + + +
+

Markdown

+ + +- [markdownlint](https://github.com/DavidAnson/markdownlint) — Node.js -based style checker and lint tool for Markdown/CommonMark files. + +- [mdformat](https://mdformat.rtfd.io) — CommonMark compliant Markdown formatter + +- [mdl](https://github.com/mivok/markdownlint) — A tool to check Markdown files and flag style issues. + +- [mdsf](https://github.com/hougesen/mdsf) — Format markdown code blocks using your favorite code formatters. + +- [remark-lint](https://remark.js.org) — Pluggable Markdown code style linter written in JavaScript. + +- [textlint](https://textlint.github.io/) — textlint is an open source text linting utility written in JavaScript. + + +
+

Metalinter

+ + +- **ciocheck** :warning: — Linter, formatter and test suite helper. As a linter, it is a wrapper around `pep8`, `pydocstyle`, `flake8`, and `pylint`. + +- [flake8](https://github.com/PyCQA/flake8) — A wrapper around `pyflakes`, `pycodestyle` and `mccabe`. + +- [flakeheaven](https://pypi.org/project/flakeheaven/) — flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration. + +- **Go Meta Linter** :warning: — Concurrently run Go lint tools and normalise their output. Use `golangci-lint` for new projects. + +- [goreporter](https://github.com/360EntSecGroup-Skylar/goreporter) — Concurrently runs many linters and normalises their output to a report. + +- **multilint** :warning: — A wrapper around `flake8`, `isort` and `modernize`. + +- [prospector](https://github.com/PyCQA/prospector) — A wrapper around `pylint`, `pep8`, `mccabe` and others. + + +
+

Mobile

+ + +- [Android Lint](https://developer.android.com/studio/write/lint) — Run static analysis on Android projects. + +- **android-lint-summary** :warning: — Combines lint errors of multiple projects into one output, check lint results of multiple sub-projects at once. + +- [FlowDroid](https://github.com/secure-software-engineering/FlowDroid) — Static taint analysis tool for Android applications. + +- **iblessing** :warning: — iblessing is an iOS security exploiting toolkit. It can be used for reverse engineering, binary analysis and vulnerability mining. + +- [Mariana Trench](https://mariana-tren.ch/) — Our security focused static analysis tool for Android and Java applications. Mariana Trench analyzes Dalvik bytecode and is built to run fast on large codebases (10s of millions of lines of code). It can find vulnerabilities as code changes, before it ever lands in your repository. + +- [Oversecured](https://oversecured.com) :copyright: — Enterprise vulnerability scanner for Android and iOS apps. It allows app owners and developers to secure each new version of a mobile app by integrating Oversecured into the development process. + +- **paprika** :warning: — A toolkit to detect some code smells in analyzed Android applications. + +- **qark** :warning: — Tool to look for several security related Android application vulnerabilities. + +- [redex](https://fbredex.com) — Redex provides a framework for reading, writing, and analyzing .dex files, and a set of optimization passes that use this framework to improve the bytecode. An APK optimized by Redex should be smaller and faster. + + +
+

Nix

+ + +- [deadnix](https://github.com/astro/deadnix) — Scan Nix files for dead code (unused variable bindings) + +- [statix](https://github.com/nerdypepper/statix) — Lints and suggestions for the Nix programming language. "statix check" highlights antipatterns in Nix code. "statix fix" can fix several such occurrences. + + +
+

Node.js

+ + +- [lockfile-lint](https://github.com/lirantal/lockfile-lint) — Lint an npm or yarn lockfile to analyze and detect security issues + +- **njsscan** :warning: — A static application testing (SAST) tool that can find insecure code patterns in your node.js applications using simple pattern matcher from libsast and syntax-aware semantic code pattern search tool semgrep. + +- **NodeJSScan** :warning: — A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. It features a UI with various dashboards about an application's security status. + +- [standard](http://standardjs.com) — An npm module that checks for Javascript Styleguide issues. + + +
+

Packages

+ + +- [composer-dependency-analyser](https://github.com/shipmonk-rnd/composer-dependency-analyser) — Fast detection of composer dependency issues. + +* 💪 Powerful: Detects unused, shadow and misplaced composer dependencies +* ⚡ Performant: Scans 15 000 files in 2s! +* ⚙️ Configurable: Fine-grained ignores via PHP config +* 🕸️ Lightweight: No composer dependencies +* 🍰 Easy-to-use: No config needed for first try +* ✨ Compatible: PHP >= 7.2 + + +- [lintian](https://wiki.debian.org/Lintian) — Static analysis tool for Debian packages. + +- [rpmlint](https://github.com/rpm-software-management/rpmlint) — Tool for checking common errors in rpm packages. + + +
+

Prometheus

+ + +- [promformat](https://github.com/facetoe/promformat) — Promformat is a PromQL formatter written in Python. + +- [promval](https://github.com/facetoe/promval) — PromQL validator written in Python. It can be used to validate that PromQL expressions are written as expected. + + +
+

Protocol Buffers

+ + +- [buf](https://buf.build) — Provides a CLI linter that enforces good API design choices and structure + +- [protolint](https://github.com/yoheimuta/protolint) — Pluggable linter and fixer to enforce Protocol Buffer style and conventions. + + +
+

Puppet

+ + +- [metadata-json-lint](https://github.com/voxpupuli/metadata-json-lint) — Tool to check the validity of Puppet metadata.json files. + + +
+

Rails

+ + +- [Active Record Doctor](https://github.com/gregnavis/active_record_doctor) — Identify database issues before they hit production. + +- [Bullet](https://github.com/flyerhzm/bullet) — Help to kill N+1 queries and unused eager loading. + +- [DatabaseConsistency](https://github.com/djezzzl/database_consistency) — The tool to avoid various issues due to inconsistencies and inefficiencies between a database schema and application models. + +- [dawnscanner](https://github.com/thesp0nge/dawnscanner) — A static analysis security scanner for ruby written web applications. It supports Sinatra, Padrino and Ruby on Rails frameworks. + +- [ERB::Formatter](https://github.com/nebulab/erb-formatter) — Format ERB files with speed and precision. + +- [Skunk](https://github.com/fastruby/skunk) — A SkunkScore Calculator for Ruby Code -- Find the most complicated code without test coverage! + +- **Traceroute** :warning: — A Rake task gem that helps you find the unused routes and controller actions for your Rails 3+ app. + + +
+

Security/SAST

+ + +- [AzSK](https://azsk.azurewebsites.net/) — Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM. + +- [brakeman](https://brakemanscanner.org) — A static analysis security vulnerability scanner for Ruby on Rails applications. + +- [Cloud (IaC) Security for JetBrains IDEs](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) — Cloud (IaC) Security plugin for JetBrains IDEs. Performs real-time inspections of Docker & Kubernetes IaC with 50+ rules based on Docker image/build security best practices, Kubernetes Pod Security Standards, and NSA/CISA Kubernetes Hardening Guidance. + +- [Credential Digger](https://github.com/SAP/credential-digger) — Credential Digger is a GitHub scanning tool that identifies hardcoded credentials (Passwords, API Keys, Secret Keys, Tokens, personal information, etc), and filtering the false positive data through a machine learning model called [Password Model](https://huggingface.co/SAPOSS/password-model). This scanner is able to detect passwords and non structured tokens with a low false positive rate. + +- [Datree](https://datree.io/) — A CLI tool to prevent Kubernetes misconfigurations by ensuring that manifests and Helm charts follow best practices as well as your organization’s policies + +- [detect-secrets](https://github.com/Yelp/detect-secrets) — An enterprise friendly way of detecting and preventing secrets in code. +It does this by running periodic diff outputs against heuristically crafted regex statements, to identify whether any new secret has been committed. This way, it avoids the overhead of digging through all git history, as well as the need to scan the entire repository every time. + +- [Dockle](https://github.com/goodwithtech/dockle) — Container Image Linter for Security helping build the Best-Practice Docker Image. Scans Docker images for security vulnerabilities and CIS Benchmark compliance. Checks for secrets, credential exposure, and security best practices. Provides multiple severity levels (FATAL, WARN, INFO) and supports various output formats for CI/CD integration. + +- **Enlightn** :warning: — A static and dynamic analysis tool for Laravel applications that provides recommendations to improve the performance, security and code reliability of Laravel apps. Contains 120 automated checks. + +- [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase. + +- [Gitleaks](https://github.com/zricethezav/gitleaks) — A SAST tool for detecting hardcoded secrets like passwords, api keys, and tokens in git repos. + +- [gokart](https://github.com/praetorian-inc/gokart) — Golang security analysis with a focus on minimizing false positives. It is capable of tracing the source of variables and function arguments to determine whether input sources are safe. + +- [Grype](https://github.com/anchore/grype) — Vulnerability scanner for container images and filesystems. Developed by Anchore, it scans container images, directories, and archives for known vulnerabilities. Supports multiple image formats, SBOM integration, and VEX (Vulnerability Exploitability eXchange) for accurate vulnerability assessment. Works with various vulnerability databases and provides detailed reporting. + +- **HasMySecretLeaked** :warning: :copyright: — HasMySecretLeaked is a project from GitGuardian that aims to help individual users and organizations search across 20 million exposed secrets to verify if their developer secrets have leaked on public repositories, gists, and issues on GitHub projects. + +- **iblessing** :warning: — iblessing is an iOS security exploiting toolkit. It can be used for reverse engineering, binary analysis and vulnerability mining. + +- [kani](https://github.com/model-checking/kani) — The Kani Rust Verifier is a bit-precise model checker for Rust. +Kani is particularly useful for verifying unsafe code blocks in Rust, +where the "unsafe superpowers" are unchecked by the compiler. +Kani verifies: + +* Memory safety (e.g., null pointer dereferences) +* User-specified assertions (i.e., assert!(...)) +* The absence of panics (e.g., unwrap() on None values) +* The absence of some types of unexpected behavior (e.g., arithmetic overflows) + + +- [kics](https://kics.io/) — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible + +- [kube-hunter](https://aquasecurity.github.io/kube-hunter/) — Hunt for security weaknesses in Kubernetes clusters. + +- [lockfile-lint](https://github.com/lirantal/lockfile-lint) — Lint an npm or yarn lockfile to analyze and detect security issues + +- **LunaSec** :warning: — Open Source AppSec platform that automatically notifies you the next time vulnerabilities like Log4Shell or node-ipc happen. Track your dependencies and builds in a centralized service. + +- [Malcat](https://malcat.fr/) :copyright: — Hexadecimal editor and disassembler for malware analysis and binary file inspection. Supports over 50 file formats and multiple CPU architectures (x86/x64, MIPS, .NET, Python, VB p-code). Features rapid analysis, embedded file extraction, Yara signature scanning, anomaly detection, and Python scripting. Designed for malware analysts, SOC operators, incident responders, and CTF players. + +- **njsscan** :warning: — A static application testing (SAST) tool that can find insecure code patterns in your node.js applications using simple pattern matcher from libsast and syntax-aware semantic code pattern search tool semgrep. + +- **NodeJSScan** :warning: — A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. It features a UI with various dashboards about an application's security status. + +- [OSV-Scanner](https://osv.dev/) — Vulnerability scanner written in Go which uses the data provided by OSV.dev. Developed by Google to scan dependencies across multiple languages and package managers for known vulnerabilities. Supports container scanning, license scanning, and guided remediation. Works with lockfiles, SBOMs, and container images to identify security issues. + +- [Oversecured](https://oversecured.com) :copyright: — Enterprise vulnerability scanner for Android and iOS apps. It allows app owners and developers to secure each new version of a mobile app by integrating Oversecured into the development process. + +- [OWASP Noir](https://owasp-noir.github.io/noir/) — Attack surface detector that identifies endpoints by static analysis. + +- [pip-audit](https://github.com/pypa/pip-audit) — Tool for scanning Python packages for known vulnerabilities. Developed by the Python Packaging Authority (PyPA) and supported by Trail of Bits and Google. Scans Python environments and requirements files to identify vulnerable packages and suggests remediation. Supports GitHub Actions, pre-commit hooks, and multiple vulnerability service integrations. + +- [PT Application Inspector](https://www.ptsecurity.com) :copyright: — Identifies code flaws and detects vulnerabilities to prevent web attacks. Demonstrates remote code execution by presenting possible exploits. + +- [Qualys Container Security](https://www.qualys.com/apps/container-security) :copyright: — Container native application protection to provide visibility and control of containerized applications. + +- **QuantifiedCode** :warning: — Automated code review & repair. It helps you to keep track of issues and metrics in your software projects, and can be easily extended to support new types of analyses. + +- [Safety](https://safetycli.com/) — Python dependency vulnerability scanner designed to enhance software supply chain security by detecting packages with known vulnerabilities. Checks Python dependencies against a database of known security vulnerabilities and provides detailed reports. Supports CI/CD integration and multiple output formats. + +- [scorecard](https://github.com/ossf/scorecard) — Security Scorecards - Security health metrics for Open Source + +- [Steampunk Spotter](https://steampunk.si/spotter/) :copyright: — Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks. + +- [Symfony Insight](https://insight.symfony.com/) :copyright: — Detect security risks, find bugs and provide actionable metrics for PHP projects. + +- [tfsec](https://github.com/tfsec/tfsec) — Terraform static analysis tool that prevents potential security issues by checking cloud misconfigurations at build time and directly integrates with the HCL parser for better results. Checks for violations of AWS, Azure and GCP security best practice recommendations. + +- [trufflehog](https://trufflesecurity.com) — Find credentials all over the place +TruffleHog is an open source secret-scanning engine that resolves exposed secrets across your company’s entire tech stack. + +- [Tsunami Security Scanner](https://github.com/google/tsunami-security-scanner) — A general purpose network security scanner with an extensible plugin system for detecting high severity RCE-like vulnerabilities with high confidence. Custom detectors for finding vulnerabilities (e.g. open APIs) can be added. + + +
+

Smart Contracts

+ + +- [mythril](https://github.com/ConsenSys/mythril) — A symbolic execution framework with batteries included, can be used to find and exploit vulnerabilities in smart contracts automatically. + +- [MythX](https://mythx.io) :copyright: — MythX is an easy to use analysis platform which integrates several analysis methods like fuzzing, symbolic execution and static analysis to find vulnerabilities with high precision. It can be integrated with toolchains like Remix or VSCode or called from the command-line. + +- [slither](https://github.com/trailofbits/slither) — Static analysis framework that runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses. + +- [solhint](https://protofire.github.io/solhint) — Solhint is an open source project created by https://protofire.io. Its goal is to provide a linting utility for Solidity code. + +- [solium](https://ethlint.readthedocs.io/en/latest) — Solium is a linter to identify and fix style and security issues in Solidity smart contracts. + + +
+

Support

+ + +- [LibVCS4j](https://github.com/uni-bremen-agst/libvcs4j) — A Java library that allows existing tools to analyse the evolution of software systems by providing a common API for different version control systems and issue trackers. + +- [RefactorFirst](https://github.com/jimbethancourt/RefactorFirst) — Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first. + +- [Violations Lib](https://github.com/tomasbjerre/violations-lib) — Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins. + + +
+

Template-Languages

+ + +- [ember-template-lint](https://github.com/ember-template-lint/ember-template-lint) — Linter for Ember or Handlebars templates. + +- [haml-lint](https://github.com/sds/haml-lint) — Tool for writing clean and consistent HAML. + +- [slim-lint](https://github.com/sds/slim-lint) — Configurable tool for analyzing Slim templates. + +- [yamllint](https://yamllint.readthedocs.io) — Checks YAML files for syntax validity, key repetition and cosmetic problems such as lines length, trailing spaces, and indentation. + + +
+

Terraform

+ + +- [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase. + +- [kics](https://kics.io/) — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible + +- **shisho** :warning: — A lightweight static code analyzer designed for developers and security teams. It allows you to analyze and transform source code with an intuitive DSL similar to sed, but for code. + + +
+

Translation

+ + +- [dennis](https://github.com/willkg/dennis) — A set of utilities for working with PO files to ease development and improve quality. + + +
+

Vue.js

+ + +- [HTML-Validate](https://html-validate.org/) — Offline HTML5 validator. + +- **Vetur** :warning: — Vue tooling for VS Code, powered by vls (vue language server). Vetur has support for formatting embedded HTML, CSS, SCSS, JS, TypeScript, and more. Vetur only has a "whole document formatter" and cannot format arbitrary ranges. + + +
+

Writing

+ + +- **After the Deadline** :warning: — Spell, style and grammar checker. + +- **alex** :warning: — Catch insensitive, inconsiderate writing + +- [codespell](https://github.com/codespell-project/codespell) — Check code for common misspellings. + +- [languagetool](https://languagetool.org) — Style and grammar checker for 25+ languages. It finds many errors that a simple spell checker cannot detect. + +- [misspell-fixer](https://github.com/vlajos/misspell-fixer) — Quick tool for fixing common misspellings, typos in source code. + +- [Misspelled Words In Context](https://jwilk.net/software/mwic) — A spell-checker that groups possible misspellings and shows them in their contexts. + +- [proselint](https://github.com/amperser/proselint) — A linter for English prose with a focus on writing style instead of grammar. + +- [vale](https://vale.sh) — A syntax-aware linter for prose built with speed and extensibility in mind. + +- **write-good** :warning: — A linter with a focus on eliminating "weasel words". + + +
+

YAML

+ + +- [Spectral](https://stoplight.io/open-source/spectral) — A flexible JSON/YAML linter, with out-of-the-box support for OpenAPI v2/v3 and AsyncAPI v2. + +- [yamllint](https://yamllint.readthedocs.io) — Checks YAML files for syntax validity, key repetition and cosmetic problems such as lines length, trailing spaces, and indentation. + + +
+

git

+ + +- [commitlint](https://commitlint.js.org) — checks if your commit messages meet the conventional commit format + +- [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase. + +- **HasMySecretLeaked** :warning: :copyright: — HasMySecretLeaked is a project from GitGuardian that aims to help individual users and organizations search across 20 million exposed secrets to verify if their developer secrets have leaked on public repositories, gists, and issues on GitHub projects. + + +## More Collections + +- [Clean code linters](https://github.com/collections/clean-code-linters) — A collection of linters in github collections +- [Code Quality Checker Tools For PHP Projects](https://github.com/collections/code-quality-in-php) — A collection of PHP linters in github collections +- [go-tools](https://github.com/dominikh/go-tools) — A collection of tools and libraries for working with Go code, including linters and static analysis +- [linters](https://github.com/mcandre/linters) — An introduction to static code analysis +- [OWASP Source Code Analysis Tools](https://owasp.org/www-community/Source_Code_Analysis_Tools) — List of tools maintained by the Open Web Application Security Project +- [php-static-analysis-tools](https://github.com/exakat/php-static-analysis-tools) — A reviewed list of useful PHP static analysis tools +- [AppSec Santa — SAST Tools](https://appsecsanta.com/sast-tools) — Independent comparison of 30+ static analysis security testing tools with features, pricing, and alternatives +- [Wikipedia](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis) — A list of tools for static code analysis. + +## License + +[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) + +To the extent possible under law, [Matthias Endler](https://endler.dev) 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](https://www.freepik.com). \ No newline at end of file diff --git a/ci/Cargo.lock b/ci/Cargo.lock new file mode 100644 index 0000000000..1b5b72d83f --- /dev/null +++ b/ci/Cargo.lock @@ -0,0 +1,2207 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "askama" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" +dependencies = [ + "askama_derive", + "askama_escape", + "humansize", + "num-traits", + "percent-encoding", +] + +[[package]] +name = "askama_derive" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83" +dependencies = [ + "askama_parser", + "basic-toml", + "mime", + "mime_guess", + "proc-macro2", + "quote", + "serde", + "syn", +] + +[[package]] +name = "askama_escape" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" + +[[package]] +name = "askama_parser" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0" +dependencies = [ + "nom", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-link", +] + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "basic-toml" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "cc" +version = "1.2.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "data-encoding" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" + +[[package]] +name = "deunicode" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.4.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http 1.4.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hubcaps" +version = "0.6.2" +source = "git+https://github.com/softprops/hubcaps#d60d157b6638760fc725b2e4e4f329a4ec6b901e" +dependencies = [ + "base64 0.13.1", + "data-encoding", + "futures", + "http 0.2.12", + "hyperx", + "jsonwebtoken", + "log", + "mime", + "percent-encoding", + "reqwest 0.11.27", + "serde", + "serde_derive", + "serde_json", + "url", +] + +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +dependencies = [ + "futures-util", + "http 1.4.0", + "hyper 1.2.0", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.32", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "hyper 1.2.0", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "hyperx" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5617e92fc2f2501c3e2bc6ce547cad841adba2bae5b921c7e52510beca6d084c" +dependencies = [ + "base64 0.13.1", + "bytes", + "http 0.2.12", + "httpdate", + "language-tags", + "mime", + "percent-encoding", + "unicase", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "jsonwebtoken" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afabcc15e437a6484fc4f12d0fd63068fe457bf93f1c148d3d9649c60b103f32" +dependencies = [ + "base64 0.12.3", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "language-tags" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.183" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "native-tls" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "openssl" +version = "0.10.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" +dependencies = [ + "bitflags 2.11.0", + "cfg-if", + "foreign-types", + "libc", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-sys" +version = "0.9.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "pem" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +dependencies = [ + "base64 0.13.1", + "once_cell", + "regex", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project" +version = "1.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "pr-check" +version = "0.1.0" +dependencies = [ + "anyhow", + "askama", + "chrono", + "pico-args", + "reqwest 0.12.4", + "serde", + "serde_json", + "serde_yaml", + "tokio", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "render" +version = "0.2.0" +dependencies = [ + "anyhow", + "askama", + "chrono", + "hubcaps", + "pico-args", + "serde", + "serde_derive", + "serde_json", + "serde_yaml", + "slug", + "tokio", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.2.0", + "hyper-rustls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.26.11", + "winreg 0.52.0", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.14", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.14", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.11.0", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simple_asn1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692ca13de57ce0613a363c8c2f1de925adebc81b04c923ac60c5488bb44abe4b" +dependencies = [ + "chrono", + "num-bigint", + "num-traits", +] + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "slug" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" +dependencies = [ + "deunicode", + "wasm-bindgen", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.2", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tinyvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.43.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "333f1ce734dbc263af1106964dba1f8c993a91d1857910fb542d45179c3d3da5" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "log", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-normalization" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fe195a4f217c25b25cb5058ced57059824a678474874038dc88d211bf508d3" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.6", +] + +[[package]] +name = "webpki-roots" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/ci/Cargo.toml b/ci/Cargo.toml new file mode 100644 index 0000000000..260c094a6d --- /dev/null +++ b/ci/Cargo.toml @@ -0,0 +1,17 @@ +[workspace] +members = [ + "render", + "pr-check", +] +resolver = "2" + +[workspace.dependencies] +anyhow = "1.0" +askama = "0.12" +chrono = { version = "0.4", features = ["serde"] } +pico-args = "0.5" +serde = { version = "1.0", features = ["derive"] } +serde_derive = "1.0" +serde_json = "1.0" +serde_yaml = "0.9" +tokio = { version = "1", features = ["rt-multi-thread", "macros"] } \ No newline at end of file diff --git a/ci/pr-check/Cargo.lock b/ci/pr-check/Cargo.lock new file mode 100644 index 0000000000..31f3a4aebd --- /dev/null +++ b/ci/pr-check/Cargo.lock @@ -0,0 +1,1561 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cc" +version = "1.2.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "iri-string" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.183" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" + +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "pr-check" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "pico-args", + "reqwest", + "serde", + "serde_json", + "serde_yaml", + "tokio", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +dependencies = [ + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64", + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustls" +version = "0.23.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/ci/pr-check/Cargo.toml b/ci/pr-check/Cargo.toml new file mode 100644 index 0000000000..adbc04eca5 --- /dev/null +++ b/ci/pr-check/Cargo.toml @@ -0,0 +1,44 @@ +[package] +name = "pr-check" +version = "0.1.0" +edition = "2024" +description = "Checks pull requests against contributing criteria" +license = "MIT" +repository = "https://github.com/analysis-tools-dev/static-analysis" +publish = false + +[lints.clippy] +correctness = { level = "deny", priority = -1 } +style = { level = "warn", priority = -1 } +complexity = { level = "warn", priority = -1 } +perf = { level = "warn", priority = -1 } +suspicious = { level = "warn", priority = -1 } +cargo = { level = "warn", priority = -1 } +pedantic = { level = "warn", priority = -1 } +nursery = { level = "warn", priority = -1 } +missing_docs_in_private_items = "warn" +missing_errors_doc = "warn" +missing_panics_doc = "warn" +unwrap_used = "deny" +expect_used = "warn" +panic = "deny" +unimplemented = "deny" +unreachable = "deny" +todo = "warn" +print_stdout = "warn" +print_stderr = "warn" +dbg_macro = "warn" +module_name_repetitions = "allow" +similar_names = "allow" +too_many_lines = "allow" + +[dependencies] +anyhow = { workspace = true } +askama = { workspace = true } +chrono = { workspace = true } +pico-args = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +serde_yaml = { workspace = true } +tokio = { workspace = true } +reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false } \ No newline at end of file diff --git a/ci/pr-check/src/main.rs b/ci/pr-check/src/main.rs new file mode 100644 index 0000000000..5bff8459ea --- /dev/null +++ b/ci/pr-check/src/main.rs @@ -0,0 +1,552 @@ +//! PR contribution checker for analysis-tools-dev/static-analysis. +//! +//! Reads new or modified YAML files under `data/tools/` that were introduced +//! by a pull request, fetches metadata from the GitHub API for each tool's +//! source repository, and evaluates each tool against the contributing +//! criteria: +//! +//! - More than 20 stars +//! - More than one contributor +//! - Repository is at least 3 months old +//! +//! The results are either posted as a single comment on the PR (updating an +//! existing bot comment if one already exists) or written to a file when the +//! `COMMENT_OUTPUT_FILE` environment variable is set. The latter mode is used +//! in CI to work around the GitHub Actions restriction that prevents fork PRs +//! from writing to the base repository. A separate `pr-comment` workflow then +//! picks up the file and posts the comment with the necessary permissions. +//! +//! The process exits with a non-zero status code when any hard criterion is +//! not met, causing CI to fail. +//! +//! Expected environment variables: +//! GITHUB_TOKEN - a token with `pull-requests: write` permission +//! GITHUB_REPOSITORY - owner/repo, e.g. "analysis-tools-dev/static-analysis" +//! PR_NUMBER - the pull request number +//! COMMENT_OUTPUT_FILE - (optional) path to write the rendered comment body +//! to instead of posting it directly via the API. + +use anyhow::{Context, Result, bail}; +use askama::Template; +use chrono::{DateTime, Duration, Utc}; +use serde::Deserialize; +use std::collections::HashMap; +use std::env; +use std::path::{Path, PathBuf}; + +/// A minimal tool entry parsed from `data/tools/.yml`. +/// Only the fields needed for the contributing criteria check are required. +#[derive(Debug, Deserialize)] +struct ToolEntry { + name: String, + source: Option, +} + +/// Response from `GET /repos/{owner}/{repo}`. +#[derive(Debug, Deserialize)] +struct RepoInfo { + stargazers_count: u64, + created_at: DateTime, +} + +/// One item from `GET /repos/{owner}/{repo}/contributors`. +#[derive(Debug, Deserialize)] +struct Contributor { + #[serde(rename = "type")] + account_type: String, +} + +/// One PR comment from `GET /repos/{owner}/{repo}/issues/{pr}/comments`. +#[derive(Debug, Deserialize)] +struct IssueComment { + id: u64, + body: String, +} + +const MIN_STARS: u64 = 20; +const MIN_CONTRIBUTORS: usize = 2; +const MIN_AGE_DAYS: i64 = 90; + +// Marker text embedded in every comment we post so we can find and update it. +const COMMENT_MARKER: &str = ""; + +/// The outcome of one criterion check. +#[derive(Debug)] +enum CheckResult { + Pass(String), + Fail(String), + Skip(String), +} + +impl CheckResult { + fn is_fail(&self) -> bool { + matches!(self, Self::Fail(_)) + } + + fn symbol(&self) -> &'static str { + match self { + Self::Pass(_) => "pass", + Self::Fail(_) => "fail", + Self::Skip(_) => "skip", + } + } + + fn message(&self) -> &str { + match self { + Self::Pass(m) | Self::Fail(m) | Self::Skip(m) => m, + } + } +} + +/// All checks for a single tool. +#[derive(Debug)] +struct ToolReport { + name: String, + source: Option, + stars: CheckResult, + contributors: CheckResult, + age: CheckResult, + /// Non-GitHub source repositories cannot be checked automatically. + note: Option, +} + +impl ToolReport { + fn any_fail(&self) -> bool { + self.stars.is_fail() || self.contributors.is_fail() || self.age.is_fail() + } + + fn status(&self) -> &'static str { + if self.any_fail() { "FAIL" } else { "PASS" } + } +} + +#[derive(Template)] +#[template(path = "comment.md")] +struct CommentTemplate<'a> { + marker: &'a str, + reports: &'a [ToolReport], + any_failures: bool, +} + +struct GithubClient { + client: reqwest::Client, + token: String, +} + +impl GithubClient { + /// Creates a new client. + /// + /// # Errors + /// + /// Returns an error if the `reqwest` client cannot be constructed. + fn new(token: String) -> Result { + let client = reqwest::Client::builder() + .user_agent("pr-check-bot/1.0 (analysis-tools-dev)") + .build() + .context("Failed to build HTTP client")?; + Ok(Self { client, token }) + } + + /// Sends an authenticated GET request and deserialises the JSON body. + /// + /// # Errors + /// + /// Returns an error on network failure or if the response cannot be + /// deserialised as `T`. + async fn get Deserialize<'de>>(&self, url: &str) -> Result> { + let resp = self + .client + .get(url) + .header("Authorization", format!("Bearer {}", self.token)) + .header("Accept", "application/vnd.github+json") + .header("X-GitHub-Api-Version", "2022-11-28") + .send() + .await + .with_context(|| format!("GET {url} failed"))?; + + let status = resp.status(); + if status == reqwest::StatusCode::NOT_FOUND { + return Ok(None); + } + if !status.is_success() { + let body = resp.text().await.unwrap_or_default(); + bail!("GET {url} returned {status}: {body}"); + } + + resp.json::() + .await + .with_context(|| format!("Failed to deserialise response from {url}")) + .map(Some) + } + + /// Fetches repository metadata. + /// + /// # Errors + /// + /// Returns an error if the API call fails. + async fn repo_info(&self, owner: &str, repo: &str) -> Result> { + let url = format!("https://api.github.com/repos/{owner}/{repo}"); + self.get::(&url).await + } + + /// Fetches the contributor list (up to 100, which is enough to confirm + /// whether there is more than one human contributor). + /// + /// # Errors + /// + /// Returns an error if the API call fails. + async fn contributor_count(&self, owner: &str, repo: &str) -> Result> { + let url = + format!("https://api.github.com/repos/{owner}/{repo}/contributors?per_page=100&anon=0"); + let Some(contributors) = self.get::>(&url).await? else { + return Ok(None); + }; + // Exclude bot accounts from the contributor count. + let human_count = contributors + .iter() + .filter(|c| c.account_type != "Bot") + .count(); + Ok(Some(human_count)) + } + + /// Lists all comments on a PR/issue. + /// + /// # Errors + /// + /// Returns an error if the API call fails. + async fn list_pr_comments(&self, repo: &str, pr: u64) -> Result> { + let url = format!("https://api.github.com/repos/{repo}/issues/{pr}/comments?per_page=100"); + self.get::>(&url) + .await? + .with_context(|| format!("PR {pr} not found in {repo}")) + } + + /// Creates a new PR comment. + /// + /// # Errors + /// + /// Returns an error if the API call fails. + async fn create_pr_comment(&self, repo: &str, pr: u64, body: &str) -> Result<()> { + let url = format!("https://api.github.com/repos/{repo}/issues/{pr}/comments"); + let mut payload = HashMap::new(); + payload.insert("body", body); + + let resp = self + .client + .post(&url) + .header("Authorization", format!("Bearer {}", self.token)) + .header("Accept", "application/vnd.github+json") + .header("X-GitHub-Api-Version", "2022-11-28") + .json(&payload) + .send() + .await + .with_context(|| format!("POST {url} failed"))?; + + let status = resp.status(); + if !status.is_success() { + let body = resp.text().await.unwrap_or_default(); + bail!("POST {url} returned {status}: {body}"); + } + Ok(()) + } + + /// Updates an existing PR comment. + /// + /// # Errors + /// + /// Returns an error if the API call fails. + async fn update_pr_comment(&self, repo: &str, comment_id: u64, body: &str) -> Result<()> { + let url = format!("https://api.github.com/repos/{repo}/issues/comments/{comment_id}"); + let mut payload = HashMap::new(); + payload.insert("body", body); + + let resp = self + .client + .patch(&url) + .header("Authorization", format!("Bearer {}", self.token)) + .header("Accept", "application/vnd.github+json") + .header("X-GitHub-Api-Version", "2022-11-28") + .json(&payload) + .send() + .await + .with_context(|| format!("PATCH {url} failed"))?; + + let status = resp.status(); + if !status.is_success() { + let body = resp.text().await.unwrap_or_default(); + bail!("PATCH {url} returned {status}: {body}"); + } + Ok(()) + } +} + +/// Parses `owner` and `repo` out of a GitHub URL like +/// `https://github.com/owner/repo` or `https://github.com/owner/repo/`. +/// Returns `None` for non-GitHub URLs or malformed paths. +fn parse_github_repo(url: &str) -> Option<(String, String)> { + let url = url.trim_end_matches('/'); + let without_scheme = url + .strip_prefix("https://github.com/") + .or_else(|| url.strip_prefix("http://github.com/"))?; + + let parts: Vec<&str> = without_scheme.splitn(3, '/').collect(); + if parts.len() < 2 || parts[0].is_empty() || parts[1].is_empty() { + return None; + } + // Reject sub-paths inside a repo (e.g. /tree/main/…). + if parts.len() == 3 && !parts[2].is_empty() { + return None; + } + Some((parts[0].to_owned(), parts[1].to_owned())) +} + +/// Reads and deserialises a single tool YAML file. +/// +/// # Errors +/// +/// Returns an error if the file cannot be read or parsed. +fn read_tool(path: &Path) -> Result { + let f = std::fs::File::open(path).with_context(|| format!("Cannot open {}", path.display()))?; + serde_yaml::from_reader(f).with_context(|| format!("Cannot parse {}", path.display())) +} + +/// Runs all contributing-criteria checks for one tool. +/// +/// # Errors +/// +/// Returns an error only for unexpected failures (network, auth). Missing +/// criteria produce `CheckResult::Fail` values, not errors. +async fn check_tool(client: &GithubClient, tool: &ToolEntry) -> Result { + let source = tool.source.clone(); + + let gh_coords = source.as_deref().and_then(parse_github_repo); + + if let Some((owner, repo)) = gh_coords { + let repo_result = client.repo_info(&owner, &repo).await; + let contributors_result = client.contributor_count(&owner, &repo).await; + + let stars_check = match &repo_result { + Ok(Some(info)) => { + let s = info.stargazers_count; + if s >= MIN_STARS { + CheckResult::Pass(format!("{s} stars")) + } else { + CheckResult::Fail(format!("{s} stars (minimum is {MIN_STARS})")) + } + } + Ok(None) => CheckResult::Skip("repository not found".into()), + Err(e) => CheckResult::Fail(format!("Could not fetch repo info: {e}")), + }; + + let age_check = match &repo_result { + Ok(Some(info)) => { + let age = Utc::now().signed_duration_since(info.created_at); + let days = age.num_days(); + let months = days / 30; + if age >= Duration::days(MIN_AGE_DAYS) { + CheckResult::Pass(format!("created {days} days ago (~{months} months)")) + } else { + let remaining = MIN_AGE_DAYS - days; + CheckResult::Fail(format!( + "created {days} days ago, needs {remaining} more days to meet the 3-month minimum" + )) + } + } + Ok(None) => CheckResult::Skip("repository not found".into()), + Err(_) => CheckResult::Skip("Could not determine age (repo info unavailable)".into()), + }; + + let contributors_check = match contributors_result { + Ok(Some(count)) => { + if count >= MIN_CONTRIBUTORS { + CheckResult::Pass(format!("{count} contributors")) + } else { + CheckResult::Fail(format!( + "{count} contributor(s) (minimum is {MIN_CONTRIBUTORS})" + )) + } + } + Ok(None) => CheckResult::Skip("repository not found".into()), + Err(e) => CheckResult::Fail(format!("Could not fetch contributors: {e}")), + }; + + let repo_not_found = matches!(repo_result, Ok(None)); + let note = repo_not_found.then_some( + "The source URL returned a 404. Please check that the repository exists and is public.", + ); + + Ok(ToolReport { + name: tool.name.to_string(), + source, + stars: stars_check, + contributors: contributors_check, + age: age_check, + note: note.map(str::to_owned), + }) + } else { + // No source or non-GitHub source. This is fine for proprietary or + // hosted tools. Skip automated checks and leave a note for manual review. + let note = "No GitHub source URL found. Automated checks for stars, contributor count, \ + and age are not possible. Please verify the contributing criteria manually."; + + Ok(ToolReport { + name: tool.name.to_string(), + source, + stars: CheckResult::Skip("N/A".into()), + contributors: CheckResult::Skip("N/A".into()), + age: CheckResult::Skip("N/A".into()), + note: Some(note.into()), + }) + } +} + +/// Renders all tool reports into a Markdown comment body. +/// +/// # Errors +/// +/// Returns an error if the template fails to render. +fn render_comment(reports: &[ToolReport]) -> Result { + let any_failures = reports.iter().any(|r| r.any_fail()); + CommentTemplate { + marker: COMMENT_MARKER, + reports, + any_failures, + } + .render() + .context("Failed to render comment template") +} + +/// Posts or updates the bot comment on the PR. +/// +/// # Errors +/// +/// Returns an error if the GitHub API calls fail. +async fn upsert_comment(client: &GithubClient, repo: &str, pr: u64, body: &str) -> Result<()> { + let comments = client.list_pr_comments(repo, pr).await?; + + let existing = comments.iter().find(|c| c.body.contains(COMMENT_MARKER)); + + match existing { + Some(c) => client.update_pr_comment(repo, c.id, body).await, + None => client.create_pr_comment(repo, pr, body).await, + } +} + +/// Parses a PR number from a string. +/// +/// # Errors +/// +/// Returns an error if the string is not a valid integer. +fn parse_pr_number(s: &str) -> Result { + s.trim() + .parse::() + .with_context(|| format!("Invalid PR number: {s}")) +} + +#[tokio::main] +async fn main() -> Result<()> { + let token = env::var("GITHUB_TOKEN").context("GITHUB_TOKEN not set")?; + let gh_repo = env::var("GITHUB_REPOSITORY").context("GITHUB_REPOSITORY not set")?; + let pr_number_str = env::var("PR_NUMBER").context("PR_NUMBER not set")?; + let pr_number = parse_pr_number(&pr_number_str)?; + + // Remaining CLI arguments are the paths to check. + // Usage: pr-check data/tools/foo.yml data/tools/bar.yml + let pico = pico_args::Arguments::from_env(); + let tool_paths: Vec = pico.finish().into_iter().map(PathBuf::from).collect(); + + let tool_paths: Vec = tool_paths + .into_iter() + .filter(|p| { + p.starts_with("data/tools") + && matches!( + p.extension().and_then(|e| e.to_str()), + Some("yml") | Some("yaml") + ) + }) + .collect(); + + let client = GithubClient::new(token)?; + + let mut reports = Vec::new(); + for path in &tool_paths { + let tool = read_tool(path).with_context(|| format!("Failed to read {}", path.display()))?; + eprintln!("Checking '{}'...", &tool.name); + let report = check_tool(&client, &tool).await?; + reports.push(report); + } + + let comment_body = render_comment(&reports)?; + + // If COMMENT_OUTPUT_FILE is set, write the comment to that file instead of + // posting it via the API. This is used by the `pull_request` CI workflow to + // avoid the 403 that GitHub returns when a fork PR tries to write comments. + // A separate `pr-comment` workflow picks up the file and posts the comment + // with the write permissions it has as a `workflow_run` job. + if let Ok(output_file) = env::var("COMMENT_OUTPUT_FILE") { + if let Some(parent) = std::path::Path::new(&output_file).parent() { + std::fs::create_dir_all(parent) + .with_context(|| format!("Failed to create directory for {output_file}"))?; + } + std::fs::write(&output_file, &comment_body) + .with_context(|| format!("Failed to write comment to {output_file}"))?; + eprintln!("Comment written to {output_file}"); + } else { + upsert_comment(&client, &gh_repo, pr_number, &comment_body).await?; + } + + let any_failures = reports.iter().any(|r| r.any_fail()); + if any_failures { + eprintln!("One or more tools failed the contributing criteria check."); + std::process::exit(1); + } + + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parses_plain_github_url() { + let result = parse_github_repo("https://github.com/owner/repo"); + assert_eq!(result, Some(("owner".into(), "repo".into()))); + } + + #[test] + fn parses_trailing_slash() { + let result = parse_github_repo("https://github.com/owner/repo/"); + assert_eq!(result, Some(("owner".into(), "repo".into()))); + } + + #[test] + fn rejects_subpath() { + let result = parse_github_repo("https://github.com/owner/repo/tree/main/subdir"); + assert!(result.is_none()); + } + + #[test] + fn rejects_gitlab() { + let result = parse_github_repo("https://gitlab.com/owner/repo"); + assert!(result.is_none()); + } + + #[test] + fn rejects_missing_repo() { + let result = parse_github_repo("https://github.com/owner"); + assert!(result.is_none()); + } + + #[test] + fn render_comment_no_files() { + let comment = render_comment(&[]).unwrap(); + assert!(comment.contains("No new tool files detected")); + } + + #[test] + fn render_comment_contains_marker() { + let comment = render_comment(&[]).unwrap(); + assert!(comment.contains(COMMENT_MARKER)); + } +} diff --git a/ci/pr-check/templates/comment.md b/ci/pr-check/templates/comment.md new file mode 100644 index 0000000000..19c19802c1 --- /dev/null +++ b/ci/pr-check/templates/comment.md @@ -0,0 +1,32 @@ +{{ marker }} +## Contributing criteria check + +{% if reports.is_empty() %} +No new tool files detected in `data/tools/`. Nothing to check. +{% else %} +{% for report in reports %} +### [{{ report.status() }}] `{{ report.name }}` + +{% if let Some(src) = report.source.as_ref() %} +Source: {{ src }} + +{% endif %} +{% if let Some(note) = report.note.as_ref() %} +> **Note:** {{ note }} + +{% endif %} +| Criterion | Result | +|---|---| +| Stars (min 20) | {{ report.stars.symbol() }} {{ report.stars.message() }} | +| Contributors (min 2) | {{ report.contributors.symbol() }} {{ report.contributors.message() }} | +| Age (min 3 months) | {{ report.age.symbol() }} {{ report.age.message() }} | + +{% endfor %} +--- + +{% if any_failures %} +One or more tools do not meet the [contributing criteria](CONTRIBUTING.md) yet. We will keep this PR open. Feel free to update it once the thresholds are met. +{% else %} +All criteria passed. Thank you for your contribution. +{% endif %} +{% endif %} \ No newline at end of file diff --git a/data/render/.gitignore b/ci/render/.gitignore similarity index 100% rename from data/render/.gitignore rename to ci/render/.gitignore diff --git a/ci/render/Cargo.lock b/ci/render/Cargo.lock new file mode 100644 index 0000000000..b26f459d72 --- /dev/null +++ b/ci/render/Cargo.lock @@ -0,0 +1,1788 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "askama" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" +dependencies = [ + "askama_derive", + "askama_escape", + "humansize", + "num-traits", + "percent-encoding", +] + +[[package]] +name = "askama_derive" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83" +dependencies = [ + "askama_parser", + "basic-toml", + "mime", + "mime_guess", + "proc-macro2", + "quote", + "serde", + "syn", +] + +[[package]] +name = "askama_escape" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" + +[[package]] +name = "askama_parser" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0" +dependencies = [ + "nom", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "basic-toml" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "cc" +version = "1.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-link 0.2.0", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "deunicode" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.3+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hubcaps" +version = "0.6.2" +source = "git+https://github.com/softprops/hubcaps#d60d157b6638760fc725b2e4e4f329a4ec6b901e" +dependencies = [ + "base64 0.13.1", + "data-encoding", + "futures", + "http", + "hyperx", + "jsonwebtoken", + "log", + "mime", + "percent-encoding", + "reqwest", + "serde", + "serde_derive", + "serde_json", + "url", +] + +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyperx" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5617e92fc2f2501c3e2bc6ce547cad841adba2bae5b921c7e52510beca6d084c" +dependencies = [ + "base64 0.13.1", + "bytes", + "http", + "httpdate", + "language-tags", + "mime", + "percent-encoding", + "unicase", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "jsonwebtoken" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afabcc15e437a6484fc4f12d0fd63068fe457bf93f1c148d3d9649c60b103f32" +dependencies = [ + "base64 0.12.3", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "language-tags" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" + +[[package]] +name = "libc" +version = "0.2.175" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" + +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "log" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "openssl" +version = "0.10.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "pem" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +dependencies = [ + "base64 0.13.1", + "once_cell", + "regex", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "proc-macro2" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "regex" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" + +[[package]] +name = "render" +version = "0.2.0" +dependencies = [ + "anyhow", + "askama", + "chrono", + "hubcaps", + "pico-args", + "serde", + "serde_derive", + "serde_json", + "serde_yaml", + "slug", + "tokio", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustix" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +dependencies = [ + "bitflags 2.9.4", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.60.2", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.4", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simple_asn1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692ca13de57ce0613a363c8c2f1de925adebc81b04c923ac60c5488bb44abe4b" +dependencies = [ + "chrono", + "num-bigint", + "num-traits", +] + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "slug" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" +dependencies = [ + "deunicode", + "wasm-bindgen", +] + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +dependencies = [ + "fastrand", + "getrandom", + "once_cell", + "rustix", + "windows-sys 0.60.2", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.43.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "333f1ce734dbc263af1106964dba1f8c993a91d1857910fb542d45179c3d3da5" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fe195a4f217c25b25cb5058ced57059824a678474874038dc88d211bf508d3" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.3+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link 0.1.3", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" + +[[package]] +name = "zmij" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4a4e8e9dc5c62d159f04fcdbe07f4c3fb710415aab4754bf11505501e3251d" diff --git a/ci/render/Cargo.toml b/ci/render/Cargo.toml new file mode 100644 index 0000000000..453479b42d --- /dev/null +++ b/ci/render/Cargo.toml @@ -0,0 +1,60 @@ +[package] +name = "render" +version = "0.2.0" +authors = ["Matthias Endler "] +edition = "2024" +description = "Static analysis tools catalog renderer" +license = "MIT" +repository = "https://github.com/analysis-tools-dev/static-analysis" +keywords = ["static-analysis", "linting", "tools", "catalog"] +categories = ["development-tools"] +publish = false + +[lints.clippy] +# Correctness lints (enabled by default, but being explicit) +correctness = { level = "deny", priority = -1 } + +# Style lints +style = { level = "warn", priority = -1 } +complexity = { level = "warn", priority = -1 } +perf = { level = "warn", priority = -1 } +suspicious = { level = "warn", priority = -1 } + +# Additional strict lints +cargo = { level = "warn", priority = -1 } +pedantic = { level = "warn", priority = -1 } +nursery = { level = "warn", priority = -1 } + +# Specific lints we want to enforce +missing_docs_in_private_items = "warn" +missing_errors_doc = "warn" +missing_panics_doc = "warn" +unwrap_used = "deny" +expect_used = "warn" +panic = "deny" +unimplemented = "deny" +unreachable = "deny" +todo = "warn" +print_stdout = "warn" +print_stderr = "warn" +dbg_macro = "warn" + +# Allow some pedantic lints that might be too noisy +module_name_repetitions = "allow" +similar_names = "allow" +too_many_lines = "allow" # We'll use the clippy.toml threshold instead + +[dependencies] +anyhow = { workspace = true } +chrono = { workspace = true } +pico-args = { workspace = true } +serde = { workspace = true } +serde_derive = { workspace = true } +serde_json = { workspace = true } +serde_yaml = { workspace = true } +tokio = { workspace = true } +askama = { workspace = true } +# Switch back to crates as soon as a new release with tokio 1.x support is +# released. See https://github.com/softprops/hubcaps/pull/285 +hubcaps = { git="https://github.com/softprops/hubcaps" } +slug = "0.1.6" diff --git a/ci/render/clippy.toml b/ci/render/clippy.toml new file mode 100644 index 0000000000..bab7994d96 --- /dev/null +++ b/ci/render/clippy.toml @@ -0,0 +1,14 @@ +# Clippy configuration for stricter linting +# https://rust-lang.github.io/rust-clippy/master/index.html + +# Set the threshold for too many arguments +too-many-arguments-threshold = 4 + +# Set the threshold for too many lines +too-many-lines-threshold = 100 + +# Set the threshold for type complexity +type-complexity-threshold = 250 + +# Avoid suggesting wildcard imports +avoid-breaking-exported-api = false \ No newline at end of file diff --git a/ci/render/src/bin/main.rs b/ci/render/src/bin/main.rs new file mode 100644 index 0000000000..994ac0229d --- /dev/null +++ b/ci/render/src/bin/main.rs @@ -0,0 +1,157 @@ +use anyhow::{Context, Result}; +use askama::Template; +use pico_args::Arguments; +use render::types::{Entry, ParsedEntry, Tag, Tags, Type}; +use render::{check_deprecated, create_api, create_catalog}; +use slug::slugify; +use std::collections::BTreeMap; +use std::env; +use std::ffi::OsStr; +use std::fs; +use std::io; +use std::path::PathBuf; + +struct Args { + tags: PathBuf, + tools: PathBuf, + md_out: PathBuf, + json_out: PathBuf, + skip_deprecated: bool, +} + +fn parse_path(s: &OsStr) -> Result { + Ok(s.into()) +} + +fn read_tags(path: PathBuf) -> Result { + let f = std::fs::File::open(path)?; + Ok(serde_yaml::from_reader(f)?) +} + +fn read_tools(path: PathBuf) -> Result> { + let dir: std::fs::ReadDir = std::fs::read_dir(path)?; + + let files = dir + .map(|res| res.map(|e| e.path())) + .filter(|x| match x { + Ok(pb) => pb.extension().and_then(OsStr::to_str) == Some("yml"), + Err(_) => false, + }) + .collect::, io::Error>>()?; + + files + .iter() + .inspect(|p| println!("Checking {}", p.display())) + .map(|p| { + let file = std::fs::File::open(p)?; + let entry: ParsedEntry = serde_yaml::from_reader(file)?; + Ok(entry) + }) + .collect::, _>>() +} + +/// Backfills the deprecated field in the tools data from the old tools data. +fn backfill_deprecated(tools: &mut Vec) -> Result<()> { + let tools_raw = match fs::read_to_string("data/api/tools.json") { + Ok(content) => content, + Err(_) => return Ok(()), // No old data to backfill from. Skip silently. + }; + + let old_tools_data: BTreeMap = serde_json::from_str(&tools_raw)?; + + for tool in tools { + let id = slugify(&tool.name); + if let Some(old_tool) = old_tools_data.get(&id) { + // Only backfill deprecated if it's not already set + if tool.deprecated.is_none() { + tool.deprecated = old_tool.get("deprecated").and_then(|d| d.as_bool()); + } + } + } + Ok(()) +} + +fn main() -> Result<()> { + let mut args = Arguments::from_env(); + let args = Args { + tags: args.value_from_os_str("--tags", parse_path)?, + tools: args.value_from_os_str("--tools", parse_path)?, + md_out: args.value_from_os_str("--md-out", parse_path)?, + json_out: args.value_from_os_str("--json-out", parse_path)?, + skip_deprecated: args.contains("--skip-deprecated"), + }; + + let tags = read_tags(args.tags)?; + + let parsed_tools = read_tools(args.tools)?; + let tools: Result> = parsed_tools + .into_iter() + .map(|t| Entry::from_parsed(t, &tags)) + .collect(); + let mut tools = tools?; + tools.sort(); + + let should_check_deprecation = !args.skip_deprecated; + let github_token = env::var("GITHUB_TOKEN"); + + match (should_check_deprecation, github_token) { + (true, Ok(token)) => check_deprecated(token, &mut tools)?, + (true, Err(_)) => { + eprintln!("No GITHUB_TOKEN environment variable found. Reusing old deprecation data."); + backfill_deprecated(&mut tools)?; + } + (false, _) => backfill_deprecated(&mut tools)?, + } + + let languages: Vec = tags + .clone() + .into_iter() + .filter(|t| t.tag_type == Type::Language) + .collect(); + + let other_tags: Vec = tags + .clone() + .into_iter() + .filter(|t| t.tag_type == Type::Other) + .collect(); + + let catalog = create_catalog(&tools, &languages, &other_tags)?; + fs::write(&args.md_out, catalog.render()?).context(format!( + "Cannot write Markdown output to {}", + args.md_out.display() + ))?; + + let api = create_api(catalog, &languages, &other_tags)?; + + let json = serde_json::to_string_pretty(&api)?; + let tools_out = args.json_out.join("tools.json"); + fs::write(&tools_out, json).context(format!( + "Cannot write tools JSON output to {}", + args.json_out.display() + ))?; + + let mut tags_json = BTreeMap::new(); + tags_json.insert("languages", languages); + tags_json.insert("other", other_tags); + let json = serde_json::to_string_pretty(&tags_json)?; + + let tags_out = args.json_out.join("tags.json"); + fs::write(&tags_out, json).context(format!( + "Cannot write tags JSON output to {}", + args.json_out.display() + ))?; + + // let stats_raw = fs::read_to_string("data/api/stats_raw.json")?; + // let stats: StatsRaw = serde_json::from_str(&stats_raw)?; + + // let stats = format_stats(stats); + // let json = serde_json::to_string(&stats)?; + + // let stats_out = args.json_out.join("stats.json"); + // fs::write(&stats_out, json).context(format!( + // "Cannot write stats JSON output to {}", + // args.json_out.display() + // ))?; + + Ok(()) +} diff --git a/ci/render/src/lib.rs b/ci/render/src/lib.rs new file mode 100644 index 0000000000..71ff0cdddc --- /dev/null +++ b/ci/render/src/lib.rs @@ -0,0 +1,207 @@ +#[macro_use] +extern crate serde_derive; + +use anyhow::Result; +use chrono::{DateTime, Local, NaiveDateTime, Utc}; +use hubcaps::{Credentials, Github}; +use slug::slugify; +use stats::StatsRaw; + +mod lints; +pub mod stats; +pub mod types; + +use std::collections::BTreeMap; +use types::{Api, ApiEntry, Catalog, Entry, ParsedEntry, Tag, Type}; + +fn valid(entry: &ParsedEntry, tags: &[Tag]) -> Result<()> { + let lints = [lints::name, lints::min_one_tag]; + lints.iter().try_for_each(|lint| lint(entry, tags)) +} + +#[tokio::main] +pub async fn check_deprecated(token: String, entries: &mut Vec) -> Result<()> { + println!("Checking for deprecated entries on Github. This might take a while..."); + let github = Github::new( + String::from("analysis tools bot"), + Credentials::Token(token), + )?; + + for entry in entries { + if entry.source.is_none() { + continue; + } + + let Some(source) = entry.source.as_ref() else { + continue; + }; + let components: Vec<&str> = source.trim_end_matches('/').split('/').collect(); + if !(components.contains(&"github.com") && components.len() == 5) { + // valid github source must have 5 elements - anything longer and they are probably a + // reference to a path inside a repo, rather than a repo itself. + continue; + } + + let owner = components[3]; + let repo = components[4]; + + if let Ok(commit_list) = github.repo(owner, repo).commits().list("").await { + let date = &commit_list[0].commit.author.date; + let last_commit = NaiveDateTime::parse_from_str(date, "%Y-%m-%dT%H:%M:%SZ")?; + let last_commit_utc: DateTime = + DateTime::from_naive_utc_and_offset(last_commit, Utc); + let now = Local::now().date_naive(); + let duration = now.signed_duration_since(last_commit_utc.date_naive()); + + if duration.num_days() > 365 { + entry.deprecated = Some(true); + } else { + entry.deprecated = None; + } + } + } + + Ok(()) +} + +pub fn create_catalog(entries: &[Entry], languages: &[Tag], other_tags: &[Tag]) -> Result { + // Move tools that support multiple programming languages into their own category + let (multi, entries): (Vec, Vec) = entries.iter().cloned().partition(|entry| { + let language_tags = entry + .tags + .iter() + .filter(|t| t.tag_type == Type::Language) + .count(); + language_tags > 1 && !entry.is_c_cpp() + }); + + let mut linters = BTreeMap::new(); + for language in languages { + let list: Vec = entries + .iter() + .filter(|e| e.tags.contains(language)) + .cloned() + .collect(); + if !list.is_empty() { + linters.insert(language.clone(), list); + } + } + + let mut others = BTreeMap::new(); + for other in other_tags { + let list: Vec = entries + .iter() + .filter(|e| e.tags.contains(other)) + .cloned() + .collect(); + if !list.is_empty() { + others.insert(other.clone(), list); + } + } + + Ok(Catalog { + linters, + others, + multi, + }) +} + +pub fn create_api(catalog: Catalog, languages: &[Tag], other_tags: &[Tag]) -> Result { + let mut api_entries = BTreeMap::new(); + + // Concatenate all entries into one vector + let mut entries: Vec = catalog.linters.into_values().flatten().collect(); + entries.extend(catalog.others.into_values().flatten()); + entries.extend(catalog.multi); + + for entry in entries { + // Get the language data for the entry. We iterate over all languages + // and look up each language in the entry tags This is an O(n) operation + // as we iterate over the language list only once while the lookup is an + // O(1) operation thanks to the tag hash set. + let entry_languages = languages + .iter() + .filter_map(|lang| { + if entry.tags.contains(lang) { + entry.tags.get(lang).map(|tag| tag.value.clone()) + } else { + None + } + }) + .collect(); + + // ...same for the non-language tags + let entry_other = other_tags + .iter() + .filter_map(|other| { + if entry.tags.contains(other) { + entry.tags.get(other).map(|tag| tag.value.clone()) + } else { + None + } + }) + .collect(); + + // In the future we want to split up licenses in the YAML input files into a list. + // Emulate the future data format by creating a list from the current string. + // Note that this string could contain more than one license name for now, e.g. + // MIT / Apache License + let licenses = vec![entry.license]; + + let api_entry = ApiEntry { + name: entry.name.clone(), + categories: entry.categories, + languages: entry_languages, + other: entry_other, + licenses, + types: entry.types, + homepage: entry.homepage, + source: entry.source, + pricing: entry.pricing, + plans: entry.plans, + description: entry.description, + discussion: entry.discussion, + deprecated: entry.deprecated, + resources: entry.resources, + reviews: entry.reviews, + demos: entry.demos, + wrapper: entry.wrapper, + }; + api_entries.insert(slugify(&entry.name), api_entry); + } + + Ok(api_entries) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_slugify() { + assert_eq!(slugify("this is a test"), "this-is-a-test".to_string()); + assert_eq!(slugify("Big"), "big".to_string()); + assert_eq!(slugify(" Big"), "big".to_string()); + assert_eq!(slugify("Astrée"), "astree".to_string()); + assert_eq!(slugify("non word 1234"), "non-word-1234".to_string()); + assert_eq!(slugify("it-has-dashes"), "it-has-dashes".to_string()); + assert_eq!( + slugify(" - - it-has-dashes - -"), + "it-has-dashes".to_string() + ); + } +} + +pub fn format_stats(stats: StatsRaw) -> BTreeMap { + stats + .data + .result + .into_iter() + .map(|r| { + ( + r.metric.path.trim_start_matches("/tool/").to_string(), + r.value.1, + ) + }) + .collect() +} diff --git a/ci/render/src/lints.rs b/ci/render/src/lints.rs new file mode 100644 index 0000000000..d5e25b47b6 --- /dev/null +++ b/ci/render/src/lints.rs @@ -0,0 +1,27 @@ +use anyhow::{Result, anyhow}; + +use crate::types::ParsedEntry; +use crate::types::Tag; + +pub fn name(entry: &ParsedEntry, _: &[Tag]) -> Result<()> { + if entry.name.len() <= 50 { + Ok(()) + } else { + Err(anyhow!( + "Name of entry may be at most 50 characters long, but {} is {} long", + entry.name, + entry.name.len() + )) + } +} + +pub fn min_one_tag(entry: &ParsedEntry, _: &[Tag]) -> Result<()> { + if entry.tags.is_empty() { + Err(anyhow!( + "{} must have at least one tag from `tags.yml`.", + entry.name + )) + } else { + Ok(()) + } +} diff --git a/ci/render/src/stats.rs b/ci/render/src/stats.rs new file mode 100644 index 0000000000..38531f3c8e --- /dev/null +++ b/ci/render/src/stats.rs @@ -0,0 +1,77 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct StatsRaw { + pub status: String, + pub data: Data, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Data { + pub result_type: String, + pub result: Vec, + pub stats: Stats, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Result { + pub metric: Metric, + pub value: (f64, String), +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Metric { + pub path: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Stats { + pub summary: Summary, + pub store: Store, + pub ingester: Ingester, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Summary { + pub bytes_processed_per_second: i64, + pub lines_processed_per_second: i64, + pub total_bytes_processed: i64, + pub total_lines_processed: i64, + pub exec_time: f64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Store { + pub total_chunks_ref: i64, + pub total_chunks_downloaded: i64, + pub chunks_download_time: f64, + pub head_chunk_bytes: i64, + pub head_chunk_lines: i64, + pub decompressed_bytes: i64, + pub decompressed_lines: i64, + pub compressed_bytes: i64, + pub total_duplicates: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Ingester { + pub total_reached: i64, + pub total_chunks_matched: i64, + pub total_batches: i64, + pub total_lines_sent: i64, + pub head_chunk_bytes: i64, + pub head_chunk_lines: i64, + pub decompressed_bytes: i64, + pub decompressed_lines: i64, + pub compressed_bytes: i64, + pub total_duplicates: i64, +} diff --git a/ci/render/src/types.rs b/ci/render/src/types.rs new file mode 100644 index 0000000000..8b1676fd84 --- /dev/null +++ b/ci/render/src/types.rs @@ -0,0 +1,272 @@ +use anyhow::{Result, bail}; +use askama::Template; +use serde::Deserialize; +use std::cmp::Ordering; +use std::collections::{BTreeMap, BTreeSet}; + +use crate::valid; + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Ord, PartialOrd)] +pub enum Type { + #[serde(alias = "language")] + Language, + #[serde(alias = "other")] + Other, +} + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Ord, PartialOrd)] +pub struct Tag { + pub name: String, + pub value: String, + #[serde(alias = "type")] + pub tag_type: Type, +} + +impl Tag { + fn new(name: &str, value: &str, tag_type: Type) -> Self { + Self { + name: name.into(), + value: value.into(), + tag_type, + } + } +} + +// The tags from tags.yml. Note that this is a `Vector` and not a +// `BTreeSet` because we like to keep the sorting between renders. +pub type Tags = Vec; + +pub type EntryTags = BTreeSet; + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] +pub struct Resource { + title: String, + url: String, +} + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] +pub struct Review { + url: String, +} + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] +pub struct Demo { + url: String, +} + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Ord, PartialOrd)] +#[serde(rename = "category")] +pub enum Category { + #[serde(rename = "linter")] + Linter, + #[serde(rename = "formatter")] + Formatter, + #[serde(rename = "performance")] + Performance, + #[serde(rename = "meta")] + Meta, +} + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] +pub struct ParsedEntry { + pub name: String, + pub categories: BTreeSet, + pub tags: BTreeSet, + pub license: String, + pub types: BTreeSet, + pub homepage: String, + pub source: Option, + pub pricing: Option, + pub plans: Option>, + pub description: String, + pub discussion: Option, + pub deprecated: Option, + pub resources: Option>, + pub reviews: Option>, + pub demos: Option>, + pub wrapper: Option, +} + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Ord, PartialOrd)] +pub enum ToolType { + #[serde(rename = "cli")] + Commandline, + #[serde(rename = "gui")] + GUI, + #[serde(rename = "service")] + Service, + #[serde(rename = "ide-plugin")] + IdePlugin, +} + +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] +pub struct Entry { + pub name: String, + pub categories: BTreeSet, + pub tags: BTreeSet, + pub license: String, + pub types: BTreeSet, + pub homepage: String, + pub source: Option, + pub pricing: Option, + pub plans: Option>, + pub description: String, + pub discussion: Option, + pub deprecated: Option, + pub resources: Option>, + pub reviews: Option>, + pub demos: Option>, + pub wrapper: Option, +} + +impl Entry { + pub fn is_c_cpp(&self) -> bool { + self.tags + == [ + Tag::new("C", "c", Type::Language), + Tag::new("C++", "cpp", Type::Language), + ] + .iter() + .cloned() + .collect::>() + } + + pub fn from_parsed(p: ParsedEntry, tags: &[Tag]) -> Result { + valid(&p, tags)?; + + let tag_results: Vec> = p.tags.iter().map(|t| get_tag(t, tags)).collect(); + let tag_errors: Vec = tag_results + .iter() + .filter_map(|r| r.as_ref().err().map(|e| e.to_string())) + .collect(); + if !tag_errors.is_empty() { + bail!( + "Tool '{}': {}\n File: data/tools/{}.yml", + p.name, + tag_errors.join("\n"), + p.name.to_lowercase().replace(' ', "-") + ); + } + let entry_tags: Result> = tag_results.into_iter().collect(); + + let types: Result> = p + .types + .iter() + .map(|t| { + let value = serde_json::to_value(t)?; + serde_json::from_value::(value).map_err(Into::into) + }) + .collect(); + + Ok(Entry { + name: p.name, + categories: p.categories, + tags: entry_tags?, + license: p.license, + types: types?, + homepage: p.homepage, + source: p.source, + pricing: p.pricing, + plans: p.plans, + description: p.description, + discussion: p.discussion, + deprecated: p.deprecated, + resources: p.resources, + reviews: p.reviews, + demos: p.demos, + wrapper: p.wrapper, + }) + } +} + +fn get_tag(t: &str, tags: &[Tag]) -> Result { + for tag in tags { + if tag.value == t { + return Ok(tag.clone()); + } + } + bail!("Invalid tag: {}", t) +} + +impl PartialOrd for Entry { + fn partial_cmp(&self, other: &Entry) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for Entry { + fn cmp(&self, other: &Entry) -> Ordering { + self.name.to_lowercase().cmp(&other.name.to_lowercase()) + } +} + +pub type EntryMap = BTreeMap>; + +#[derive(Debug, Serialize, Deserialize, Template)] +#[template(path = "README.md")] +pub struct Catalog { + pub linters: EntryMap, + pub others: EntryMap, + pub multi: Vec, +} + +impl Catalog { + fn rows(map: &EntryMap) -> Vec)>> { + let num_columns = 3; + let mut rows = Vec::new(); + let items: Vec<_> = map.iter().collect(); + let items_per_column = (items.len() + num_columns - 1) / num_columns; + + for i in 0..items_per_column { + let mut row = Vec::new(); + for col in 0..num_columns { + let index = col * items_per_column + i; + if index < items.len() { + row.push(items[index]); + } + } + rows.push(row); + } + + rows + } + + pub fn linter_rows(&self) -> Vec)>> { + Self::rows(&self.linters) + } + + pub fn other_rows(&self) -> Vec)>> { + Self::rows(&self.others) + } +} + +/// An entry of the machine-readable JSON out from the tool. +/// +/// We use a different, de-normalized data format instead of the catalog, which +/// keeps the information for each tool in a struct instead of grouping tools by +/// tags. +#[derive(Debug, Serialize, Deserialize)] +pub struct ApiEntry { + /// The original entry name (not slugified) + pub name: String, + pub categories: BTreeSet, + pub languages: Vec, + pub other: Vec, + pub licenses: Vec, + pub types: BTreeSet, + pub homepage: String, + pub source: Option, + pub pricing: Option, + pub plans: Option>, + pub description: String, + pub discussion: Option, + pub deprecated: Option, + pub resources: Option>, + pub reviews: Option>, + pub demos: Option>, + pub wrapper: Option, +} + +/// The final API dataformat is a map where the key is the entry name and the +/// value is the entry data, which makes searching for a tool's data easier +pub type Api = BTreeMap; diff --git a/ci/render/templates/README.md b/ci/render/templates/README.md new file mode 100644 index 0000000000..ae27e25e79 --- /dev/null +++ b/ci/render/templates/README.md @@ -0,0 +1,134 @@ + + +
+ Analysis Tools Website + + +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](https://analysis-tools.dev/) is based on this repository and adds rankings, user comments, and additional resources like videos for each tool. + +[![Website](https://img.shields.io/badge/Website-Online-2B5BAE)](https://analysis-tools.dev) +![CI](https://github.com/analysis-tools-dev/static-analysis/workflows/CI/badge.svg) +[![Links](https://github.com/analysis-tools-dev/static-analysis/actions/workflows/links.yml/badge.svg)](https://github.com/analysis-tools-dev/static-analysis/actions/workflows/links.yml) + +## Sponsors + +This project would not be possible without the generous support of our sponsors. + + + + + + + + +
+ + + + Pixee + + + + + + + + + + + + + + +
+ +If you also want to support this project, head over to our [Github sponsors page](https://github.com/sponsors/analysis-tools-dev). + +## 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](https://github.com/mre/awesome-dynamic-analysis). + +## Table of Contents + +#### [Programming Languages](#programming-languages-1) + +| | | | +|---|---|---| +{%- for row in self.linter_rows() %} +|{% for (language, _) in row %} [{{ language.name }}](#{{ language.value }}) |{% endfor %} +{%- endfor %} + +#### [Multiple Languages](#multiple-languages-1) + +#### [Other](#other-1) +
+ Show Other + +| | | | +|---|---|---| +{%- for row in self.other_rows() %} +|{% for (tag, _) in row %} [{{ tag.name }}](#{{ tag.value }}) |{% endfor %} +{%- endfor %} + +
+ +--- + +## Programming Languages + +{%- for (language, linters) in linters %} + + +

{{ language.name }}

+ +{% 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:](<{{linter.discussion.as_ref().unwrap()}}>){% 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:](<{{linter.discussion.as_ref().unwrap()}}>){% 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 %} + +
+

{{ tag.name }}

+ +{% 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:](<{{other.discussion.as_ref().unwrap()}}>){% endif %}{% if other.deprecated.is_some() && other.deprecated.unwrap() %} :warning:{% endif %}{% if other.license == "proprietary" %} :copyright:{% endif %} — {{ other.description }} +{% endfor %} + +{%- endfor %} + +## More Collections + +- [Clean code linters](https://github.com/collections/clean-code-linters) — A collection of linters in github collections +- [Code Quality Checker Tools For PHP Projects](https://github.com/collections/code-quality-in-php) — A collection of PHP linters in github collections +- [go-tools](https://github.com/dominikh/go-tools) — A collection of tools and libraries for working with Go code, including linters and static analysis +- [linters](https://github.com/mcandre/linters) — An introduction to static code analysis +- [OWASP Source Code Analysis Tools](https://owasp.org/www-community/Source_Code_Analysis_Tools) — List of tools maintained by the Open Web Application Security Project +- [php-static-analysis-tools](https://github.com/exakat/php-static-analysis-tools) — A reviewed list of useful PHP static analysis tools +- [AppSec Santa — SAST Tools](https://appsecsanta.com/sast-tools) — Independent comparison of 30+ static analysis security testing tools with features, pricing, and alternatives +- [Wikipedia](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis) — A list of tools for static code analysis. + +## License + +[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) + +To the extent possible under law, [Matthias Endler](https://endler.dev) 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](https://www.freepik.com). \ No newline at end of file diff --git a/data/README.md b/data/README.md index c69509af4e..b8a318ab61 100644 --- a/data/README.md +++ b/data/README.md @@ -1,4 +1,9 @@ -This is the project's CI environment. -Read more about the tooling [here](https://matthias-endler.de/2017/obsolete/). -Want to add an entry to the list? -Here's how to [contribute](https://github.com/analysis-tools-dev/static-analysis/blob/master/CONTRIBUTING.md). +This folder contains the source data for the list. + +- `tools/` - one YAML file per tool +- `tags.yml` - all valid tags that can be used in tool entries +- `api/` - generated JSON output (do not edit manually) + +To add a tool, create a file in `tools/` following the format described in [CONTRIBUTING.md](../CONTRIBUTING.md). + +The Rust code that renders the list lives in [`ci/`](../ci/). \ No newline at end of file diff --git a/data/api/.gitignore b/data/api/.gitignore new file mode 100644 index 0000000000..3f28db1e1d --- /dev/null +++ b/data/api/.gitignore @@ -0,0 +1 @@ +STATS.md \ No newline at end of file diff --git a/data/api/README.md b/data/api/README.md new file mode 100644 index 0000000000..cf5754e33c --- /dev/null +++ b/data/api/README.md @@ -0,0 +1,14 @@ +# API + +This directory contains machine-readable JSON files of all static analysis +tools in the repo. The files can be used to create your own API endpoints from +the data, for running more complicated queries on the command-line with `jq`, or +for using them inside a Jupyter notebook. + +The data format is subject to change as we use it for rendering the [website]. + +The files in this directory are not meant to be edited directly. Instead, update +the `.yml` files in the `/data/tools` directory and render the JSON again by +calling `make render` from the root directory. + +[website]: https://analysis-tools.dev diff --git a/data/api/stats/tags.json b/data/api/stats/tags.json new file mode 100644 index 0000000000..5bd1b2b970 --- /dev/null +++ b/data/api/stats/tags.json @@ -0,0 +1,27 @@ +{ + "/tag/typescript": 152, + "/tag/rust": 130, + "/tag/nodejs": 114, + "/tag/sql": 103, + "/tag/go": 97, + "/tag/c": 92, + "/tag/php": 88, + "/tag/binary": 78, + "/tag/cpp": 76, + "/tag/ruby": 74, + "/tag/python": 74, + "/tag/csharp": 71, + "/tag/shell": 64, + "/tag/kotlin": 63, + "/tag/vue": 59, + "/tag/swift": 57, + "/tag/javascript": 55, + "/tag/lua": 47, + "/tag/java": 44, + "/tag/protobuf": 42, + "/tag/groovy": 42, + "/tag/yaml": 37, + "/tag/plsql": 37, + "/tag/verilog": 36, + "/tag/security": 36 +} diff --git a/data/api/stats/tools.json b/data/api/stats/tools.json new file mode 100644 index 0000000000..9292624641 --- /dev/null +++ b/data/api/stats/tools.json @@ -0,0 +1,27 @@ +{ + "mega-linter": 221, + "semgrep": 81, + "lizard": 55, + "sqlcheck": 47, + "codeql": 44, + "better-code-hub": 32, + "rust-analyzer": 31, + "callgraph": 31, + "hcl-appscan-source": 29, + "codescene": 28, + "black": 28, + "sonatype": 27, + "mypy": 27, + "eslint": 27, + "tencentcodeanalysis": 26, + "sonarqube": 26, + "fortify": 26, + "kubeval": 25, + "vera": 23, + "sigrid": 23, + "searchdiggity": 23, + "trivy": 22, + "coverity": 22, + "c2rust": 22, + "typl": 21 +} \ No newline at end of file diff --git a/data/api/tags.json b/data/api/tags.json new file mode 100644 index 0000000000..a0dbec31ee --- /dev/null +++ b/data/api/tags.json @@ -0,0 +1,591 @@ +{ + "languages": [ + { + "name": ".NET", + "value": "dotnet", + "tag_type": "Language" + }, + { + "name": "ABAP", + "value": "abap", + "tag_type": "Language" + }, + { + "name": "ActionScript", + "value": "actionscript", + "tag_type": "Language" + }, + { + "name": "Active Server Pages", + "value": "asp", + "tag_type": "Language" + }, + { + "name": "Ada", + "value": "ada", + "tag_type": "Language" + }, + { + "name": "Apex", + "value": "apex", + "tag_type": "Language" + }, + { + "name": "ASP.NET", + "value": "aspnet", + "tag_type": "Language" + }, + { + "name": "Assembly", + "value": "asm", + "tag_type": "Language" + }, + { + "name": "Awk", + "value": "awk", + "tag_type": "Language" + }, + { + "name": "C", + "value": "c", + "tag_type": "Language" + }, + { + "name": "C#", + "value": "csharp", + "tag_type": "Language" + }, + { + "name": "C++", + "value": "cpp", + "tag_type": "Language" + }, + { + "name": "Clojure", + "value": "clojure", + "tag_type": "Language" + }, + { + "name": "COBOL", + "value": "cobol", + "tag_type": "Language" + }, + { + "name": "CoffeeScript", + "value": "coffeescript", + "tag_type": "Language" + }, + { + "name": "ColdFusion", + "value": "coldfusion", + "tag_type": "Language" + }, + { + "name": "Crystal", + "value": "crystal", + "tag_type": "Language" + }, + { + "name": "Dart", + "value": "dart", + "tag_type": "Language" + }, + { + "name": "Delphi", + "value": "delphi", + "tag_type": "Language" + }, + { + "name": "Dlang", + "value": "dlang", + "tag_type": "Language" + }, + { + "name": "Elixir", + "value": "elixir", + "tag_type": "Language" + }, + { + "name": "Elm", + "value": "elm", + "tag_type": "Language" + }, + { + "name": "Erlang", + "value": "erlang", + "tag_type": "Language" + }, + { + "name": "F#", + "value": "fsharp", + "tag_type": "Language" + }, + { + "name": "Fortran", + "value": "fortran", + "tag_type": "Language" + }, + { + "name": "Go", + "value": "go", + "tag_type": "Language" + }, + { + "name": "Groovy", + "value": "groovy", + "tag_type": "Language" + }, + { + "name": "Haskell", + "value": "haskell", + "tag_type": "Language" + }, + { + "name": "Haxe", + "value": "haxe", + "tag_type": "Language" + }, + { + "name": "Java", + "value": "java", + "tag_type": "Language" + }, + { + "name": "JavaScript", + "value": "javascript", + "tag_type": "Language" + }, + { + "name": "JavaServer Pages", + "value": "jsp", + "tag_type": "Language" + }, + { + "name": "Jimple", + "value": "jimple", + "tag_type": "Language" + }, + { + "name": "JSX", + "value": "jsx", + "tag_type": "Language" + }, + { + "name": "Julia", + "value": "julia", + "tag_type": "Language" + }, + { + "name": "Kotlin", + "value": "kotlin", + "tag_type": "Language" + }, + { + "name": "Lightning Web Components", + "value": "lwc", + "tag_type": "Language" + }, + { + "name": "Lisp", + "value": "lisp", + "tag_type": "Language" + }, + { + "name": "Lua", + "value": "lua", + "tag_type": "Language" + }, + { + "name": "MATLAB", + "value": "matlab", + "tag_type": "Language" + }, + { + "name": "Nim", + "value": "nim", + "tag_type": "Language" + }, + { + "name": "Objective C", + "value": "objectivec", + "tag_type": "Language" + }, + { + "name": "Ocaml", + "value": "ocaml", + "tag_type": "Language" + }, + { + "name": "Pascal", + "value": "pascal", + "tag_type": "Language" + }, + { + "name": "Perl", + "value": "perl", + "tag_type": "Language" + }, + { + "name": "PHP", + "value": "php", + "tag_type": "Language" + }, + { + "name": "PL/SQL", + "value": "plsql", + "tag_type": "Language" + }, + { + "name": "PowerShell", + "value": "powershell", + "tag_type": "Language" + }, + { + "name": "Python", + "value": "python", + "tag_type": "Language" + }, + { + "name": "R", + "value": "r", + "tag_type": "Language" + }, + { + "name": "Raku", + "value": "raku", + "tag_type": "Language" + }, + { + "name": "Rego", + "value": "rego", + "tag_type": "Language" + }, + { + "name": "Ruby", + "value": "ruby", + "tag_type": "Language" + }, + { + "name": "Rust", + "value": "rust", + "tag_type": "Language" + }, + { + "name": "Scala", + "value": "scala", + "tag_type": "Language" + }, + { + "name": "Shell", + "value": "shell", + "tag_type": "Language" + }, + { + "name": "SQL", + "value": "sql", + "tag_type": "Language" + }, + { + "name": "Swift", + "value": "swift", + "tag_type": "Language" + }, + { + "name": "Tcl", + "value": "tcl", + "tag_type": "Language" + }, + { + "name": "TSQL", + "value": "tsql", + "tag_type": "Language" + }, + { + "name": "TypeScript", + "value": "typescript", + "tag_type": "Language" + }, + { + "name": "VBScript", + "value": "vbscript", + "tag_type": "Language" + }, + { + "name": "Verilog/SystemVerilog", + "value": "verilog", + "tag_type": "Language" + }, + { + "name": "Vim Script", + "value": "vim-script", + "tag_type": "Language" + }, + { + "name": "Visual Basic", + "value": "vbasic", + "tag_type": "Language" + }, + { + "name": "Visual Basic .NET", + "value": "vbnet", + "tag_type": "Language" + }, + { + "name": "Visual Basic for Applications (VBA)", + "value": "vba", + "tag_type": "Language" + }, + { + "name": "Visualforce", + "value": "visualforce", + "tag_type": "Language" + }, + { + "name": "WebAssembly", + "value": "wasm", + "tag_type": "Language" + } + ], + "other": [ + { + "name": ".env", + "value": "dotenv", + "tag_type": "Other" + }, + { + "name": "Ansible", + "value": "ansible", + "tag_type": "Other" + }, + { + "name": "Archive", + "value": "archive", + "tag_type": "Other" + }, + { + "name": "Azure Resource Manager", + "value": "arm", + "tag_type": "Other" + }, + { + "name": "Binaries", + "value": "binary", + "tag_type": "Other" + }, + { + "name": "Build tools", + "value": "buildtool", + "tag_type": "Other" + }, + { + "name": "Cloud Formation", + "value": "cloudformation", + "tag_type": "Other" + }, + { + "name": "Config Files", + "value": "configfile", + "tag_type": "Other" + }, + { + "name": "Configuration Management", + "value": "configmanagement", + "tag_type": "Other" + }, + { + "name": "Containers", + "value": "container", + "tag_type": "Other" + }, + { + "name": "Continuous Integration", + "value": "ci", + "tag_type": "Other" + }, + { + "name": "CSS/SASS/SCSS", + "value": "css", + "tag_type": "Other" + }, + { + "name": "Deno", + "value": "deno", + "tag_type": "Other" + }, + { + "name": "Dockerfile", + "value": "dockerfile", + "tag_type": "Other" + }, + { + "name": "Embedded Ruby (a.k.a. ERB, eRuby)", + "value": "erb", + "tag_type": "Other" + }, + { + "name": "Embedded", + "value": "embedded", + "tag_type": "Other" + }, + { + "name": "Gherkin", + "value": "gherkin", + "tag_type": "Other" + }, + { + "name": "Ghidra", + "value": "ghidra", + "tag_type": "Other" + }, + { + "name": "git", + "value": "git", + "tag_type": "Other" + }, + { + "name": "HTML", + "value": "html", + "tag_type": "Other" + }, + { + "name": "JSON", + "value": "json", + "tag_type": "Other" + }, + { + "name": "Kubernetes", + "value": "kubernetes", + "tag_type": "Other" + }, + { + "name": "Laravel", + "value": "laravel", + "tag_type": "Other" + }, + { + "name": "LaTeX", + "value": "latex", + "tag_type": "Other" + }, + { + "name": "Less", + "value": "less", + "tag_type": "Other" + }, + { + "name": "Makefiles", + "value": "make", + "tag_type": "Other" + }, + { + "name": "Markdown", + "value": "markdown", + "tag_type": "Other" + }, + { + "name": "Metalinter", + "value": "meta", + "tag_type": "Other" + }, + { + "name": "Mobile", + "value": "mobile", + "tag_type": "Other" + }, + { + "name": "Nix", + "value": "nix", + "tag_type": "Other" + }, + { + "name": "Node.js", + "value": "nodejs", + "tag_type": "Other" + }, + { + "name": "Packages", + "value": "package", + "tag_type": "Other" + }, + { + "name": "PhoneGap", + "value": "phonegap", + "tag_type": "Other" + }, + { + "name": "Prometheus", + "value": "prometheus", + "tag_type": "Other" + }, + { + "name": "Protocol Buffers", + "value": "protobuf", + "tag_type": "Other" + }, + { + "name": "Puppet", + "value": "puppet", + "tag_type": "Other" + }, + { + "name": "Rails", + "value": "rails", + "tag_type": "Other" + }, + { + "name": "Security/SAST", + "value": "security", + "tag_type": "Other" + }, + { + "name": "Smart Contracts", + "value": "smart-contracts", + "tag_type": "Other" + }, + { + "name": "Support", + "value": "support", + "tag_type": "Other" + }, + { + "name": "Spring", + "value": "spring", + "tag_type": "Other" + }, + { + "name": "Template-Languages", + "value": "template", + "tag_type": "Other" + }, + { + "name": "Terraform", + "value": "terraform", + "tag_type": "Other" + }, + { + "name": "Translation", + "value": "translation", + "tag_type": "Other" + }, + { + "name": "Vue.js", + "value": "vue", + "tag_type": "Other" + }, + { + "name": "Writing", + "value": "writing", + "tag_type": "Other" + }, + { + "name": "XML", + "value": "xml", + "tag_type": "Other" + }, + { + "name": "YAML", + "value": "yaml", + "tag_type": "Other" + } + ] +} \ No newline at end of file diff --git a/data/api/tools.json b/data/api/tools.json new file mode 100644 index 0000000000..3e6c310b3e --- /dev/null +++ b/data/api/tools.json @@ -0,0 +1,22932 @@ +{ + "abaplint": { + "name": "abaplint", + "categories": [ + "linter" + ], + "languages": [ + "abap" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "service", + "ide-plugin" + ], + "homepage": "https://abaplint.org", + "source": "https://github.com/abaplint/abaplint", + "pricing": null, + "plans": null, + "description": "Linter for ABAP, written in TypeScript.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "abapopenchecks": { + "name": "abapOpenChecks", + "categories": [ + "linter" + ], + "languages": [ + "abap" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://docs.abapopenchecks.org", + "source": "https://github.com/larshp/abapOpenChecks", + "pricing": null, + "plans": null, + "description": "Enhances the SAP Code Inspector with new and customizable checks.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "actionlint": { + "name": "actionlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "ci" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://rhysd.github.io/actionlint", + "source": "https://github.com/rhysd/actionlint", + "pricing": null, + "plans": null, + "description": "Static checker for GitHub Actions workflow files. Provides an online version.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "active-record-doctor": { + "name": "Active Record Doctor", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "rails" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/gregnavis/active_record_doctor", + "source": "https://github.com/gregnavis/active_record_doctor", + "pricing": null, + "plans": null, + "description": "Identify database issues before they hit production.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "aether": { + "name": "aether", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://aetherjs.com", + "source": "https://github.com/codecombat/aether", + "pricing": null, + "plans": null, + "description": "Lint, analyze, normalize, transform, sandbox, run, step through, and visualize user JavaScript, in node or the browser.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "after-the-deadline": { + "name": "After the Deadline", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "GPL v2" + ], + "types": [ + "cli" + ], + "homepage": "https://open.afterthedeadline.com", + "source": "https://open.afterthedeadline.com", + "pricing": null, + "plans": null, + "description": "Spell, style and grammar checker.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ale": { + "name": "ale", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "python" + ], + "other": [], + "licenses": [ + "BSD 2-Clause \"Simplified\" License" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/w0rp/ale", + "source": "https://github.com/w0rp/ale", + "pricing": null, + "plans": null, + "description": "Asynchronous Lint Engine for Vim and NeoVim with support for many languages.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "alex": { + "name": "alex", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://alexjs.com", + "source": "https://github.com/get-alex/alex", + "pricing": null, + "plans": null, + "description": "Catch insensitive, inconsiderate writing", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "aligncheck": { + "name": "aligncheck", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "GPL v2" + ], + "types": [ + "cli" + ], + "homepage": "https://gitlab.com/opennota/check", + "source": "https://gitlab.com/opennota/check", + "pricing": null, + "plans": null, + "description": "Find inefficiently packed structs.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "alquitran": { + "name": "alquitran", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "archive" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ferivoz/alquitran", + "source": "https://github.com/ferivoz/alquitran", + "pricing": null, + "plans": null, + "description": "Inspects tar archives and tries to spot portability issues in regard to POSIX 2017 pax specification and common tar implementations.\nThis project is intended to be used by maintainers of projects who want to offer portable source code archives for as many systems as possible. Checking tar archives with alquitran before publishing them should help spotting issues before they reach distributors and users.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ameba": { + "name": "ameba", + "categories": [ + "linter" + ], + "languages": [ + "crystal" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://crystal-ameba.github.io", + "source": "https://github.com/crystal-ameba/ameba", + "pricing": null, + "plans": null, + "description": "A static code analysis tool for Crystal.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Crystal Language Static Code Analysis with the Ameba Shard", + "url": "https://www.youtube.com/watch?v=SV8tV79Lvog" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "anchore": { + "name": "anchore", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://anchore.io", + "source": "https://github.com/anchore/anchore-engine", + "pricing": null, + "plans": null, + "description": "Discover, analyze, and certify container images. A service that analyzes Docker images and applies user-defined acceptance policies to allow automated container image validation and certification ", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "android-lint": { + "name": "Android Lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile" + ], + "licenses": [ + "Android Software Development Kit License Agreement" + ], + "types": [ + "cli" + ], + "homepage": "https://developer.android.com/studio/write/lint", + "source": "https://android.googlesource.com", + "pricing": null, + "plans": null, + "description": "Run static analysis on Android projects.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "android-lint-summary": { + "name": "android-lint-summary", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://passy.github.io/android-lint-summary", + "source": "https://github.com/passy/android-lint-summary", + "pricing": null, + "plans": null, + "description": "Combines lint errors of multiple projects into one output, check lint results of multiple sub-projects at once.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "android-studio": { + "name": "Android Studio", + "categories": [ + "linter" + ], + "languages": [ + "java", + "kotlin" + ], + "other": [], + "licenses": [ + "Android Software Development Kit License Agreement" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://developer.android.com/studio", + "source": "https://android.googlesource.com/platform/tools/adt/idea/+/refs/heads/mirror-goog-studio-master-dev", + "pricing": null, + "plans": null, + "description": "Based on IntelliJ IDEA, and comes bundled with tools for Android including Android Lint.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "angr": { + "name": "angr", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "BSD 2-Clause \"Simplified\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/angr/angr", + "source": null, + "pricing": null, + "plans": null, + "description": "Binary code analysis tool that also supports symbolic execution.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "angular-eslint": { + "name": "Angular ESLint", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [ + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/angular-eslint/angular-eslint#readme", + "source": "https://github.com/angular-eslint/angular-eslint", + "pricing": null, + "plans": null, + "description": "Linter for Angular projects", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ansible-lint": { + "name": "ansible-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://ansible.readthedocs.io/projects/lint/", + "source": "https://github.com/ansible/ansible-lint", + "pricing": null, + "plans": null, + "description": "Checks playbooks for practices and behaviour that could potentially be improved.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "appchecker": { + "name": "AppChecker", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "php" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://npo-echelon.ru/en/solutions/appchecker.php", + "source": null, + "pricing": "https://npo-echelon.ru/en/solutions/appchecker.php", + "plans": { + "free": false, + "oss": false + }, + "description": "Static analysis for C/C++/C#, PHP and Java.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "application-inspector": { + "name": "Application Inspector", + "categories": [ + "linter" + ], + "languages": [ + "asp", + "c", + "csharp", + "cpp", + "java", + "javascript", + "objectivec", + "php", + "sql", + "swift", + "vbnet" + ], + "other": [ + "html", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.ptsecurity.com/ww-en/products/ai", + "source": null, + "pricing": "https://global.ptsecurity.com/en/products/ai/", + "plans": { + "free": false, + "oss": false + }, + "description": "Commercial Static Code Analysis which generates exploits to verify vulnerabilities.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "applicationinspector": { + "name": "ApplicationInspector", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "objectivec", + "php", + "powershell", + "python", + "ruby" + ], + "other": [ + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/microsoft/ApplicationInspector", + "source": "https://github.com/microsoft/ApplicationInspector", + "pricing": null, + "plans": null, + "description": "Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps).", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Introducing Microsoft Application Inspector", + "url": "https://www.microsoft.com/security/blog/2020/01/16/introducing-microsoft-application-inspector/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "archunit": { + "name": "ArchUnit", + "categories": [ + "linter" + ], + "languages": [ + "java", + "kotlin" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.archunit.org", + "source": "https://github.com/TNG/ArchUnit", + "pricing": null, + "plans": null, + "description": "Unit test your Java or Kotlin architecture.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "archunitnet": { + "name": "ArchUnitNET", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/TNG/ArchUnitNET", + "source": "https://github.com/TNG/ArchUnitNET", + "pricing": null, + "plans": null, + "description": "A C# architecture test library to specify and assert architecture rules in C# for automated testing.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ast-grep": { + "name": "ast-grep", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "go", + "java", + "javascript", + "jsx", + "kotlin", + "lua", + "python", + "ruby", + "rust", + "typescript" + ], + "other": [ + "json", + "yaml" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://ast-grep.github.io/", + "source": "https://github.com/ast-grep/ast-grep", + "pricing": null, + "plans": null, + "description": "ast-grep is a powerful tool designed for managing code at scale using Abstract Syntax Trees (AST). Think of it as a hybrid of grep, eslint, and codemod, with the ability to search, lint, and rewrite code based on its structure rather than plain text.\nIt supports multiple languages and is designed to be extensible, allowing you to register custom languages.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "ast-grep Quick Start Guide", + "url": "https://ast-grep.github.io/guide/quick-start.html" + } + ], + "reviews": [ + "https://stackshare.io/ast-grep" + ], + "demos": [ + "https://ast-grep.github.io/playground.html" + ], + "wrapper": null + }, + "astree": { + "name": "Astrée", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.absint.com/astree/index.htm", + "source": null, + "pricing": "https://www.absint.com/astree/contact.htm", + "plans": { + "free": false, + "oss": false + }, + "description": "Astrée automatically proves the absence of runtime errors and invalid con­current behavior in C/C++ applications. It is sound for floating-point computations, very fast, and exceptionally precise. The analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules and supports qualification for ISO 26262, DO-178C level A, and other safety standards. Jenkins and Eclipse plugins are available.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "atom-beautify": { + "name": "Atom-Beautify", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "coffeescript", + "coldfusion", + "java", + "javascript", + "objectivec", + "php", + "python", + "ruby", + "sql", + "typescript" + ], + "other": [ + "css", + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://atom.io/packages/atom-beautify", + "source": "https://github.com/Glavin001/atom-beautify", + "pricing": null, + "plans": null, + "description": "Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "Adding Atom Beautify Package to Atom", + "url": "https://www.youtube.com/watch?v=oBz6rXG0XT8" + }, + { + "title": "10 Essential Atom Editor Packages & Setup", + "url": "https://www.youtube.com/watch?v=aiXNKHKWlmY" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "autocorrect": { + "name": "autocorrect", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "csharp", + "go", + "javascript", + "jsx", + "python", + "ruby", + "rust", + "scala", + "shell", + "typescript" + ], + "other": [ + "css", + "html", + "json", + "markdown", + "vue", + "writing", + "xml", + "yaml" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://huacnlee.github.io/autocorrect", + "source": "https://github.com/huacnlee/autocorrect", + "pricing": null, + "plans": null, + "description": "A linter and formatter to help you to improve copywriting, correct spaces, words, punctuations between CJK (Chinese, Japanese, Korean).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "autoflake": { + "name": "autoflake", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/PyCQA/autoflake", + "source": "https://github.com/PyCQA/autoflake", + "pricing": null, + "plans": null, + "description": "Autoflake removes unused imports and unused variables from Python code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "autopep8": { + "name": "autopep8", + "categories": [ + "formatter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.org/project/autopep8/", + "source": "https://github.com/hhatto/autopep8", + "pricing": null, + "plans": null, + "description": "A tool that automatically formats Python code to conform to the PEP 8 style guide.\nIt uses the pycodestyle utility to determine what parts of the code needs to be formatted.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "aws-cloudformation-guard": { + "name": "AWS CloudFormation Guard", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/aws-cloudformation/cloudformation-guard", + "source": "https://github.com/aws-cloudformation/cloudformation-guard", + "pricing": null, + "plans": null, + "description": "Check local CloudFormation templates against policy-as-code rules and generate rules from existing templates.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "axe-core": { + "name": "axe-core", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "MPL-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.deque.com/axe/", + "source": "https://github.com/dequelabs/axe-core", + "pricing": null, + "plans": null, + "description": "Accessibility engine for automated Web UI testing. Tests HTML against WCAG 2.0, 2.1, and 2.2 guidelines. Used by Google Lighthouse, Microsoft Accessibility Insights, and thousands of organizations worldwide.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "axivion-bauhaus-suite": { + "name": "Axivion Bauhaus Suite", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "php" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.axivion.com/en/products-services-9#products_bauhaussuite", + "source": null, + "pricing": "https://www.axivion.com/pricing", + "plans": null, + "description": "Tracks down error-prone code locations, style violations, cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "azsk": { + "name": "AzSK", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "arm", + "configmanagement", + "ci", + "security" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://azsk.azurewebsites.net/", + "source": "https://github.com/azsk/DevOpsKit", + "pricing": null, + "plans": null, + "description": "Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "bandit": { + "name": "bandit", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://bandit.readthedocs.io/en/latest", + "source": "https://github.com/PyCQA/bandit", + "pricing": null, + "plans": null, + "description": "A tool to find common security issues in Python code.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Code security with Bandit and Safety — Perfect Python", + "url": "https://www.youtube.com/watch?v=YZOKnvisJpw" + }, + { + "title": "The Python Podcast.__init__: Bandit with Tim Kelsey, Travis McPeak, and Eric Brown - E62", + "url": "https://www.pythonpodcast.com/episodepage/bandit-with-tim-kelsey-travis-mcpeak-and-eric-brown" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "bashate": { + "name": "bashate", + "categories": [ + "linter" + ], + "languages": [ + "shell" + ], + "other": [], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/openstack/bashate", + "source": "https://github.com/openstack/bashate", + "pricing": null, + "plans": null, + "description": "Code style enforcement for bash programs. The output format aims to follow pycodestyle (pep8) default output format.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Official bashate documentation", + "url": "https://docs.openstack.org/bashate" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "bearer": { + "name": "Bearer", + "categories": [ + "linter" + ], + "languages": [ + "c", + "go", + "java", + "javascript", + "jsx", + "ruby", + "typescript" + ], + "other": [ + "ci", + "html", + "json", + "rails", + "security", + "yaml" + ], + "licenses": [ + "Elastic License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/bearer/bearer", + "source": "https://github.com/bearer/bearer", + "pricing": "https://www.bearer.com/plans", + "plans": { + "free": false, + "oss": true + }, + "description": "Open-Source static code analysis tool to discover, filter and prioritize security risks and vulnerabilities leading to sensitive data exposures (PII, PHI, PD). Highly configurable and easily extensible, built for security and engineering teams.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Bearer's built-in set of rules to prevent cirtical security risks and vulnerabilities", + "url": "https://docs.bearer.com/reference/rules/" + }, + { + "title": "Bearer CLI: 2 months in retrospect of new features and improvements!", + "url": "https://www.bearer.com/blog/bearer-cli-2-months-in-retrospect-of-new-features-and-improvements" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "bellybutton": { + "name": "bellybutton", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/hchasestevens/bellybutton", + "source": "https://github.com/hchasestevens/bellybutton", + "pricing": null, + "plans": null, + "description": "A linting engine supporting custom project-specific rules.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "better-code-hub": { + "name": "Better Code Hub", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "cpp", + "go", + "groovy", + "java", + "javascript", + "kotlin", + "objectivec", + "perl", + "php", + "python", + "ruby", + "scala", + "shell", + "swift", + "typescript" + ], + "other": [ + "smart-contracts" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://bettercodehub.com", + "source": null, + "pricing": "https://bettercodehub.com/pricing", + "plans": { + "free": true, + "oss": true + }, + "description": "Better Code Hub checks your GitHub codebase against 10 engineering guidelines devised by the authority in software quality, Software Improvement Group.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Better Code Hub introduction video", + "url": "https://www.youtube.com/watch?v=diERwdr2omM" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "betterscan-ce": { + "name": "Betterscan CE", + "categories": [ + "linter" + ], + "languages": [ + "apex", + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "kotlin", + "perl", + "php", + "python", + "ruby", + "scala", + "swift", + "typescript" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "AGPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tcosolutions/betterscan-ce", + "source": "https://github.com/tcosolutions/betterscan-ce", + "pricing": null, + "plans": { + "free": false, + "oss": true + }, + "description": "Checks your code and infra (various Git repositories supported, cloud stacks, CLI, Web Interface platform, integrationss available) for security and quality issues. Code Scanning/SAST/Linting using many tools/Scanners deduplicated with One Report (AI optional).", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "binbloom": { + "name": "binbloom", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/quarkslab/binbloom", + "source": "https://github.com/quarkslab/binbloom", + "pricing": null, + "plans": null, + "description": "Analyzes a raw binary firmware and determines features like endianness or the loading address. The tool is compatible with all architectures.\nLoading address: binbloom can parse a raw binary firmware and determine its loading address. Endianness: binbloom can use heuristics to determine the endianness of a firmware. UDS Database: binbloom can parse a raw binary firmware and check if it contains an array containing UDS command IDs.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Tutorial: Binbloom - Raw Binary Firmware Analysis Software", + "url": "https://www.kitploit.com/2020/10/binbloom-raw-binary-firmware-analysis.html?m=1" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "binskim": { + "name": "BinSkim", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Microsoft/binskim", + "source": "https://github.com/Microsoft/binskim", + "pricing": null, + "plans": null, + "description": "A binary static analysis tool that provides security and correctness results for Windows portable executables.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "biome": { + "name": "biome", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "typescript" + ], + "other": [ + "css", + "json" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://biomejs.dev", + "source": "https://github.com/biomejs/biome", + "pricing": null, + "plans": null, + "description": "A toolchain for web projects, aimed to provide functionalities to maintain them. Biome formats and lints code in a fraction of a second. It is the successor to Rome. It is designed to eventually replace Biome is designed to eventually replace Babel, ESLint, webpack, Prettier, Jest, and others.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "black": { + "name": "Black", + "categories": [ + "formatter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://black.readthedocs.io/en/stable", + "source": "https://github.com/psf/black", + "pricing": null, + "plans": null, + "description": "The uncompromising Python code formatter.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Using the black code formatter in Python", + "url": "https://www.youtube.com/watch?v=InA-oAWu3Mo" + }, + { + "title": "Łukasz Langa - Life Is Better Painted Black, or: How to Stop Worrying and Embrace Auto-Formatting", + "url": "https://www.youtube.com/watch?v=esZLCuWs_2Y" + } + ], + "reviews": [ + "https://luminousmen.com/post/my-unpopular-opinion-about-black-code-formatter" + ], + "demos": [ + "https://black.vercel.app/" + ], + "wrapper": null + }, + "black-duck": { + "name": "Black Duck", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.blackducksoftware.com", + "source": null, + "pricing": "https://www.synopsys.com/software-integrity/contact-sales.html", + "plans": { + "free": false, + "oss": false + }, + "description": "Tool to analyze source code and binaries for reusable code, necessary licenses and potential security aspects.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Black Duck SCA & Coverity Static Analysis (SAST) Integrations with Amazon AWS CI Tools | Synopsys", + "url": "https://www.youtube.com/watch?v=GEvxbU6EmiA" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "bloaty": { + "name": "bloaty", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/google/bloaty", + "source": "https://github.com/google/bloaty", + "pricing": null, + "plans": null, + "description": "Ever wondered what's making your binary big? Bloaty McBloatface will show you a size profile of the binary so you can understand what's taking up space inside. Bloaty performs a deep analysis of the binary. Using custom ELF, DWARF, and Mach-O parsers, Bloaty aims to accurately attribute every byte of the binary to the symbol or compileunit that produced it. It will even disassemble the binary looking for references to anonymous data. F", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "blockwatch": { + "name": "BlockWatch", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "jsx", + "kotlin", + "php", + "python", + "ruby", + "rust", + "shell", + "sql", + "swift", + "typescript" + ], + "other": [ + "css", + "html", + "make", + "markdown", + "xml", + "yaml" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mennanov/blockwatch", + "source": "https://github.com/mennanov/blockwatch", + "pricing": null, + "plans": null, + "description": "A language-agnostic linter that keeps code, documentation, and configuration in sync and enforces strict formatting and validation rules.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "bodyclose": { + "name": "bodyclose", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/timakin/bodyclose", + "source": "https://github.com/timakin/bodyclose", + "pricing": null, + "plans": null, + "description": "Checks whether HTTP response body is closed.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "bootlint": { + "name": "Bootlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/twbs/bootlint", + "source": "https://github.com/twbs/bootlint", + "pricing": null, + "plans": null, + "description": "An HTML linter for Bootstrap projects.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "bowler": { + "name": "Bowler", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pybowler.io/", + "source": "https://github.com/facebookincubator/bowler", + "pricing": null, + "plans": null, + "description": "Safe code refactoring for modern Python. Bowler is a refactoring tool for manipulating Python at the syntax tree level. It enables safe, large scale code modifications while guaranteeing that the resulting code compiles and runs. It provides both a simple command line interface and a fluent API in Python for generating complex code modifications in code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "brakeman": { + "name": "brakeman", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "security" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://brakemanscanner.org", + "source": "https://github.com/presidentbeef/brakeman", + "pricing": null, + "plans": null, + "description": "A static analysis security vulnerability scanner for Ruby on Rails applications.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Brakeman: A Security Scanner for Ruby on Rails", + "url": "https://www.youtube.com/watch?v=pTUlPq4glOg" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "brittany": { + "name": "brittany", + "categories": [ + "formatter" + ], + "languages": [ + "haskell" + ], + "other": [], + "licenses": [ + "GNU Affero General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lspitzner/brittany", + "source": "https://github.com/lspitzner/brittany", + "pricing": null, + "plans": null, + "description": "Haskell source code formatter", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "buf": { + "name": "buf", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "protobuf" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://buf.build", + "source": "https://github.com/bufbuild/buf", + "pricing": null, + "plans": null, + "description": "Provides a CLI linter that enforces good API design choices and structure", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "bugprove": { + "name": "BugProve", + "categories": [ + "linter" + ], + "languages": [ + "asm", + "c", + "cpp" + ], + "other": [ + "binary", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://bugprove.com", + "source": null, + "pricing": null, + "plans": { + "free": true + }, + "description": "BugProve is a firmware analysis platform featuring both static and dynamic analysis techniques to discover memory corruptions, command injections and other classes or common weaknesses in binary code. It also detects vulnerable dependencies, weak cryptographic parameters, misconfigurations, and more.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "BugProve Product Intro by John Hammond", + "url": "https://www.youtube.com/watch?v=orTvsOlFS5k" + } + ], + "reviews": [ + "https://www.g2.com/products/bugprove/reviews" + ], + "demos": null, + "wrapper": null + }, + "bullet": { + "name": "Bullet", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "rails" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/flyerhzm/bullet", + "source": "https://github.com/flyerhzm/bullet", + "pricing": null, + "plans": null, + "description": "Help to kill N+1 queries and unused eager loading.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "bundler-audit": { + "name": "bundler-audit", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rubysec/bundler-audit", + "source": "https://github.com/rubysec/bundler-audit", + "pricing": null, + "plans": null, + "description": "Audit Gemfile.lock for gems with security vulnerabilities reported in [Ruby Advisory Database](https://github.com/rubysec/ruby-advisory-db).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "c2rust": { + "name": "C2Rust", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://c2rust.com", + "source": "https://github.com/immunant/c2rust", + "pricing": null, + "plans": null, + "description": "C2Rust helps you migrate C99-compliant code to Rust. The translator (or transpiler) produces unsafe Rust code that closely mirrors the input C code.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "RustConf 2018 - C2Rust: Migrating Legacy Code to Rust by Per Larsen", + "url": "https://www.youtube.com/watch?v=WEsR0Vv7jhg&t=233s" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "cakefuzzer": { + "name": "CakeFuzzer", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "GNU GPL" + ], + "types": [ + "cli" + ], + "homepage": "https://zigrin.com/tools/cake-fuzzer/", + "source": "https://github.com/Zigrin-Security/CakeFuzzer", + "pricing": null, + "plans": null, + "description": "Web application security testing tool for CakePHP-based web applications. CakeFuzzer employs a predefined set of attacks that are randomly modified before execution. Leveraging its deep understanding of the Cake PHP framework, Cake Fuzzer launches attacks on all potential application entry points.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "callgraph": { + "name": "callGraph", + "categories": [ + "linter" + ], + "languages": [ + "awk", + "dart", + "fortran", + "go", + "javascript", + "julia", + "kotlin", + "lua", + "matlab", + "pascal", + "perl", + "php", + "python", + "r", + "raku", + "ruby", + "rust", + "scala", + "shell", + "swift", + "tcl", + "typescript" + ], + "other": [], + "licenses": [ + "GNU General Public License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/koknat/callGraph", + "source": "https://github.com/koknat/callGraph", + "pricing": null, + "plans": null, + "description": "Statically generates a call graph image and displays it on screen.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cane": { + "name": "cane", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/square/cane", + "source": "https://github.com/square/cane", + "pricing": null, + "plans": null, + "description": "Code quality threshold checking as part of your build.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-audit": { + "name": "cargo-audit", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://rustsec.org", + "source": "https://github.com/RustSec/cargo-audit", + "pricing": null, + "plans": null, + "description": "Audit Cargo.lock for crates with security vulnerabilities reported to the [RustSec Advisory Database](https://github.com/RustSec/advisory-db/).", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Keep your Users Safe and Scan Your Rust Dependencies With This Tool", + "url": "https://www.youtube.com/watch?v=V8RfQ0uihzE" + }, + { + "title": "How to audit Rust code in 4 minutes!", + "url": "https://www.youtube.com/watch?v=w2Co88TzrsQ" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-bloat": { + "name": "cargo-bloat", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [ + "binary" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/RazrFalcon/cargo-bloat", + "source": "https://github.com/RazrFalcon/cargo-bloat", + "pricing": null, + "plans": null, + "description": "Find out what takes most of the space in your executable. supports ELF (Linux, BSD), Mach-O (macOS) and PE (Windows) binaries.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-breaking": { + "name": "cargo-breaking", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MPL-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/iomentum/cargo-breaking", + "source": "https://github.com/iomentum/cargo-breaking", + "pricing": null, + "plans": null, + "description": "cargo-breaking compares a crate's public API between two different branches, shows what changed, and suggests the next version according to semver.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-call-stack": { + "name": "cargo-call-stack", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/japaric/cargo-call-stack", + "source": "https://github.com/japaric/cargo-call-stack", + "pricing": null, + "plans": null, + "description": "Whole program static stack analysis The tool produces the full call graph of a program as a dot file.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-deny": { + "name": "cargo-deny", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache License" + ], + "types": [ + "cli" + ], + "homepage": "https://embarkstudios.github.io/cargo-deny", + "source": "https://github.com/EmbarkStudios/cargo-deny", + "pricing": null, + "plans": null, + "description": "A cargo plugin for linting your dependencies. It can be used either as a command line too, a Rust crate, or a Github action for CI. It checks for valid license information, duplicate crates, security vulnerabilities, and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-expand": { + "name": "cargo-expand", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dtolnay/cargo-expand", + "source": "https://github.com/dtolnay/cargo-expand", + "pricing": null, + "plans": null, + "description": "Cargo subcommand to show result of macro expansion and #[derive] expansion applied to the current crate. This is a wrapper around a more verbose compiler command.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-geiger": { + "name": "cargo-geiger", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/geiger-rs/cargo-geiger", + "source": "https://github.com/geiger-rs/cargo-geiger", + "pricing": null, + "plans": null, + "description": "A cargo plugin for analysing the usage of unsafe Rust code Provides statistical output to aid security auditing", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-inspect": { + "name": "cargo-inspect", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mre/cargo-inspect", + "source": "https://github.com/mre/cargo-inspect", + "pricing": null, + "plans": null, + "description": "Inspect Rust code without syntactic sugar to see what the compiler does behind the curtains.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-semver-checks": { + "name": "cargo-semver-checks", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache License (Version 2.0) or MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://crates.io/crates/cargo-semver-checks", + "source": "https://github.com/obi1kenobi/cargo-semver-checks", + "pricing": null, + "plans": null, + "description": "Scan your Rust crate releases for semver violations. It can be used either directly via the CLI, as a GitHub Action in CI, or via release managers like `release-plz`. It found semver violations in [more than 1 in 6 of the top 1000 most-downloaded crates](https://predr.ag/blog/semver-violations-are-common-better-tooling-is-the-answer/) on crates.io.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-show-asm": { + "name": "cargo-show-asm", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT / Apache 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/pacak/cargo-show-asm", + "source": "https://github.com/pacak/cargo-show-asm", + "pricing": null, + "plans": null, + "description": "cargo subcommand showing the assembly, LLVM-IR and MIR generated for Rust code", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-spellcheck": { + "name": "cargo-spellcheck", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache 2.0 / MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/drahnr/cargo-spellcheck", + "source": "https://github.com/drahnr/cargo-spellcheck", + "pricing": null, + "plans": null, + "description": "Checks all your documentation for spelling and grammar mistakes with hunspell (ready) and languagetool (preview)", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-udeps": { + "name": "cargo udeps", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT License / Apache 2.0 license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/est31/cargo-udeps", + "source": "https://github.com/est31/cargo-udeps", + "pricing": null, + "plans": null, + "description": "Find unused dependencies in Cargo.toml. It either prints out a \"unused crates\" line listing the crates, or it prints out a line saying that no crates were unused.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cargo-unused-features": { + "name": "cargo-unused-features", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/TimonPost/cargo-unused-features", + "source": "https://github.com/TimonPost/cargo-unused-features", + "pricing": null, + "plans": null, + "description": "Find potential unused enabled feature flags and prune them. You can generate a simple HTML report from the json to make it easier to inspect results.\nIt removes a feature of a dependency and then compiles the project to see if it still compiles. If it does, the feature flag can possibly be removed, but it can be a false-positive.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cast-highlight": { + "name": "CAST Highlight", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "c", + "csharp", + "cpp", + "cobol", + "java", + "javascript", + "jsp", + "php", + "plsql", + "python", + "tsql", + "vbasic" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.castsoftware.com/products/highlight", + "source": null, + "pricing": "https://www.castsoftware.com/products/highlight/pricing#pricing", + "plans": null, + "description": "Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cbmc": { + "name": "CBMC", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "BSD-4-Clause-UC" + ], + "types": [ + "cli" + ], + "homepage": "http://www.cprover.org/cbmc", + "source": "https://github.com/diffblue/cbmc", + "pricing": null, + "plans": null, + "description": "Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cfn-lint": { + "name": "cfn-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/awslabs/cfn-python-lint", + "source": "https://github.com/awslabs/cfn-python-lint", + "pricing": null, + "plans": null, + "description": "AWS Labs CloudFormation linter.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cfn-nag": { + "name": "cfn_nag", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/stelligent/cfn_nag", + "source": "https://github.com/stelligent/cfn_nag", + "pricing": null, + "plans": null, + "description": "A linter for AWS CloudFormation templates.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "chart-testing": { + "name": "chart-testing", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/helm/chart-testing", + "source": "https://github.com/helm/chart-testing", + "pricing": null, + "plans": null, + "description": "ct is the tool for testing Helm charts. It is meant to be used for linting and testing pull requests. It automatically detects charts changed against the target branch.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "checker-framework": { + "name": "Checker Framework", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "GPL with Classpath exception / MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://checkerframework.org", + "source": "https://github.com/typetools/checker-framework", + "pricing": null, + "plans": null, + "description": "Pluggable type-checking for Java. This is not just a bug-finder, but a verification tool that gives a guarantee of correctness. It comes with 27 pre-built type systems, and it enables users to define their own type system; the manual lists over 30 user-contributed type systems.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "checkmake": { + "name": "checkmake", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "buildtool", + "make" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mrtazz/checkmake", + "source": "https://github.com/mrtazz/checkmake", + "pricing": null, + "plans": null, + "description": "Linter / Analyzer for Makefiles.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "checkmarx-cxsast": { + "name": "Checkmarx CxSAST", + "categories": [ + "linter" + ], + "languages": [ + "asp", + "apex", + "c", + "csharp", + "cpp", + "go", + "groovy", + "java", + "javascript", + "objectivec", + "perl", + "php", + "python", + "ruby", + "scala", + "swift", + "vbscript", + "vbasic", + "vbnet", + "visualforce" + ], + "other": [ + "html", + "mobile", + "nodejs", + "phonegap", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.checkmarx.com/products/static-application-security-testing", + "source": null, + "pricing": "https://checkmarx.com/packaging/", + "plans": { + "free": false, + "oss": false + }, + "description": "Commercial Static Code Analysis which doesn't require pre-compilation.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "checkov": { + "name": "checkov", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.checkov.io", + "source": "https://github.com/bridgecrewio/checkov", + "pricing": null, + "plans": null, + "description": "Static analysis tool for Terraform files (tf>=v0.12), preventing cloud misconfigs at build time.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "checkstyle": { + "name": "checkstyle", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://checkstyle.org", + "source": "https://github.com/checkstyle/checkstyle", + "pricing": null, + "plans": null, + "description": "Checking Java source code for adherence to a Code Standard or set of validation rules (best practices).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "chktex": { + "name": "ChkTeX", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "latex" + ], + "licenses": [ + "GNU Public License version 2 or greater" + ], + "types": [ + "cli" + ], + "homepage": "http://www.nongnu.org/chktex", + "source": "http://git.savannah.nongnu.org/cgit/chktex.git", + "pricing": null, + "plans": null, + "description": "A linter for LaTex which catches some typographic errors LaTeX oversees.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "churn": { + "name": "Churn", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/danmayer/churn", + "source": "https://github.com/danmayer/churn", + "pricing": null, + "plans": null, + "description": "A Project to give the churn file, class, and method for a project for a given checkin. Over time the tool adds up the history of churns to give the number of times a file, class, or method is changing during the life of a project.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "churn-php": { + "name": "churn-php", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/bmitch/churn-php", + "source": "https://github.com/bmitch/churn-php", + "pricing": null, + "plans": null, + "description": "Helps discover good candidates for refactoring.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ciocheck": { + "name": "ciocheck", + "categories": [ + "formatter", + "meta" + ], + "languages": [ + "python" + ], + "other": [ + "meta" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ContinuumIO/ciocheck", + "source": "https://github.com/ContinuumIO/ciocheck", + "pricing": null, + "plans": null, + "description": "Linter, formatter and test suite helper. As a linter, it is a wrapper around `pep8`, `pydocstyle`, `flake8`, and `pylint`.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ck": { + "name": "ck", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mauricioaniche/ck", + "source": "https://github.com/mauricioaniche/ck", + "pricing": null, + "plans": null, + "description": "Calculates Chidamber and Kemerer object-oriented metrics by processing the source Java files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ckjm": { + "name": "ckjm", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "http://www.spinellis.gr/sw/ckjm", + "source": "https://github.com/dspinellis/ckjm", + "pricing": null, + "plans": null, + "description": "Calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "clair": { + "name": "clair", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/coreos/clair", + "source": "https://github.com/coreos/clair", + "pricing": null, + "plans": null, + "description": "Vulnerability Static Analysis for Containers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "clang-tidy": { + "name": "clang-tidy", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Apache License v2.0 with LLVM Exceptions" + ], + "types": [ + "cli" + ], + "homepage": "https://clang.llvm.org/extra/clang-tidy", + "source": "https://clang.llvm.org/extra/clang-tidy", + "pricing": null, + "plans": null, + "description": "Clang-based C++ linter tool with the (limited) ability to fix issues, too.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "classgraph": { + "name": "ClassGraph", + "categories": [ + "linter" + ], + "languages": [ + "groovy", + "java", + "kotlin" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/classgraph/classgraph", + "source": "https://github.com/classgraph/classgraph", + "pricing": null, + "plans": null, + "description": "A classpath and module path scanner for querying or visualizing class metadata or class relatedness.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "clayton": { + "name": "Clayton", + "categories": [ + "linter" + ], + "languages": [ + "apex", + "lwc", + "visualforce" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.getclayton.com/", + "source": null, + "pricing": "https://www.getclayton.com/pricing", + "plans": null, + "description": "AI-powered code reviews for Salesforce. Secure your developments, enforce best practice and control your technical debt in real-time.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "clazy": { + "name": "clazy", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "LGPL" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/KDE/clazy", + "source": "https://github.com/KDE/clazy", + "pricing": null, + "plans": null, + "description": "Qt-oriented static code analyzer based on the Clang framework. clazy is a compiler plugin which allows clang to understand Qt semantics. You get more than 50 Qt related compiler warnings, ranging from unneeded memory allocations to misusage of API, including fix-its for automatic refactoring.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "clippy": { + "name": "clippy", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache-2.0, MIT license" + ], + "types": [ + "cli" + ], + "homepage": "https://rust-lang.github.io/rust-clippy", + "source": "https://github.com/rust-lang/rust-clippy", + "pricing": null, + "plans": null, + "description": "A code linter to catch common mistakes and improve your Rust code.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Rust For Beginners Tutorial - Linting with Clippy", + "url": "https://www.youtube.com/watch?v=BE9KY6X7aUM" + }, + { + "title": "Easy Rust 096: Final example of iterators and quick look at clippy", + "url": "https://www.youtube.com/watch?v=OgcrRt84bUY" + } + ], + "reviews": null, + "demos": [ + "https://play.rust-lang.org" + ], + "wrapper": null + }, + "clj-kondo": { + "name": "clj-kondo", + "categories": [ + "linter" + ], + "languages": [ + "clojure" + ], + "other": [], + "licenses": [ + "Eclipse Public License 1.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/borkdude/clj-kondo", + "source": "https://github.com/borkdude/clj-kondo", + "pricing": null, + "plans": null, + "description": "A linter for Clojure code that sparks joy. It informs you about potential errors while you are typing.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "closure-compiler": { + "name": "Closure Compiler", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://developers.google.com/closure/compiler", + "source": "https://github.com/google/closure-compiler", + "pricing": null, + "plans": null, + "description": "A compiler tool to increase efficiency, reduce size, and provide code warnings in JavaScript files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "closurelinter": { + "name": "ClosureLinter", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/google/closure-linter", + "source": "https://github.com/google/closure-linter", + "pricing": null, + "plans": null, + "description": "Ensures that all of your project's JavaScript code follows the guidelines in the Google JavaScript Style Guide. It can also automatically fix many common errors.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cloud-iac-security-for-jetbrains-ides": { + "name": "Cloud (IaC) Security for JetBrains IDEs", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "dockerfile", + "kubernetes", + "security" + ], + "licenses": [ + "MIT" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://plugins.jetbrains.com/plugin/25413-cloud-iac-security", + "source": "https://github.com/NordCoderd/cloud-security-plugin", + "pricing": null, + "plans": null, + "description": "Cloud (IaC) Security plugin for JetBrains IDEs. Performs real-time inspections of Docker & Kubernetes IaC with 50+ rules based on Docker image/build security best practices, Kubernetes Pod Security Standards, and NSA/CISA Kubernetes Hardening Guidance.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Bundled-rules documentation", + "url": "https://protsenko.dev/infrastructure-security/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "clusterlint": { + "name": "clusterlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/digitalocean/clusterlint", + "source": "https://github.com/digitalocean/clusterlint", + "pricing": null, + "plans": null, + "description": "Clusterlint queries live Kubernetes clusters for resources, executes common and platform specific checks against these resources and provides actionable feedback to cluster operators. It is a non invasive tool that is run externally. Clusterlint does not alter the resource configurations.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cmetrics": { + "name": "CMetrics", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/MetricsGrimoire/CMetrics", + "source": "https://github.com/MetricsGrimoire/CMetrics", + "pricing": null, + "plans": null, + "description": "Measures size and complexity for C files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "coala": { + "name": "coala", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "javascript" + ], + "other": [ + "css" + ], + "licenses": [ + "AGPL-3.0-only" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/coala/coala", + "source": "https://github.com/coala/coala", + "pricing": null, + "plans": null, + "description": "Language independent framework for creating code analysis - supports over 60 languages by default.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cobra": { + "name": "Cobra", + "categories": [ + "linter" + ], + "languages": [ + "ada", + "c", + "cpp", + "python" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://spinroot.com/cobra", + "source": null, + "pricing": null, + "plans": { + "free": true, + "oss": true + }, + "description": "Structural source code analyzer by NASA's Jet Propulsion Laboratory.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codacy": { + "name": "Codacy", + "categories": [ + "linter" + ], + "languages": [ + "apex", + "csharp", + "cpp", + "coffeescript", + "crystal", + "elixir", + "go", + "groovy", + "java", + "javascript", + "jsp", + "kotlin", + "php", + "plsql", + "python", + "ruby", + "scala", + "shell", + "swift", + "tsql", + "typescript", + "vbscript", + "visualforce" + ], + "other": [ + "css", + "json", + "markdown", + "xml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.codacy.com", + "source": null, + "pricing": "https://www.codacy.com/pricing", + "plans": { + "free": false, + "oss": true + }, + "description": "Code Analysis to ship Better Code, Faster.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Automate your code quality with Codacy Static Analysis Tool", + "url": "https://www.youtube.com/watch?v=oxqTu2ouxaw" + }, + { + "title": "A founder's journey - Codacy", + "url": "https://www.youtube.com/watch?v=lVxkD_bmbFY" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "code-climate": { + "name": "Code Climate", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "ci" + ], + "licenses": [ + "AGPL-3.0 License" + ], + "types": [ + "service" + ], + "homepage": "https://codeclimate.com", + "source": "https://github.com/codeclimate/codeclimate", + "pricing": null, + "plans": null, + "description": "The open and extensible static analysis platform, for everyone.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "code-cracker": { + "name": "code-cracker", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://code-cracker.github.io", + "source": "https://github.com/code-cracker/code-cracker", + "pricing": null, + "plans": null, + "description": "An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "code-graph-rag": { + "name": "Code-Graph-RAG", + "categories": [ + "meta" + ], + "languages": [ + "cpp", + "go", + "java", + "javascript", + "lua", + "python", + "rust", + "scala", + "typescript" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://code-graph-rag.com", + "source": "https://github.com/vitali87/code-graph-rag", + "pricing": null, + "plans": null, + "description": "Builds knowledge graphs from multi-language codebases using Tree-sitter AST parsing and stores them in Memgraph. Supports 11 programming languages with a unified graph schema and enables natural language querying and editing of code structure and relationships. Functions as an MCP server for AI assistant integration.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "code-intelligence": { + "name": "Code Intelligence", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "go", + "java" + ], + "other": [ + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.code-intelligence.com", + "source": null, + "pricing": "https://www.code-intelligence.com/product-pricing", + "plans": { + "free": false, + "oss": true + }, + "description": "CI/CD-agnostic DevSecOps platform which combines industry-leading fuzzing engines for finding bugs and visualizing code coverage", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Code Intelligence | Introduction", + "url": "https://www.youtube.com/watch?v=Qfsz_ZTKM6Y" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "code-pathfinder": { + "name": "Code Pathfinder", + "categories": [ + "linter" + ], + "languages": [ + "go", + "python" + ], + "other": [ + "container", + "ci", + "dockerfile", + "security" + ], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://codepathfinder.dev", + "source": "https://github.com/shivasurya/code-pathfinder", + "pricing": null, + "plans": null, + "description": "Opensource Static Code Analysis for security teams with Inter file dataflow taint analysis. Built for finding vulnerabilities, advanced structural search, derive insights and supports MCP server.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Code Pathfinder Rules Registry", + "url": "https://codepathfinder.dev/registry" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "codeac": { + "name": "Codeac", + "categories": [ + "linter" + ], + "languages": [ + "go", + "java", + "javascript", + "php", + "python", + "ruby", + "typescript" + ], + "other": [ + "container", + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.codeac.io/?ref=awesome-static-analysis", + "source": null, + "pricing": "https://www.codeac.io/pricing.html", + "plans": { + "free": true, + "oss": true + }, + "description": "Automated code review tool integrates with GitHub, Bitbucket and GitLab (even self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source free)", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codeburner": { + "name": "codeburner", + "categories": [ + "meta" + ], + "languages": [ + "c", + "cpp", + "java", + "javascript", + "php" + ], + "other": [ + "meta" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://groupon.github.io/codeburner", + "source": "https://github.com/groupon/codeburner", + "pricing": null, + "plans": null, + "description": "Provides a unified interface to sort and act on the issues it finds.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codechecker": { + "name": "codechecker", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [ + "buildtool" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://codechecker.readthedocs.io/en/latest", + "source": "https://github.com/Ericsson/codechecker", + "pricing": null, + "plans": null, + "description": "A defect database and viewer extension for the Clang Static Analyzer with web GUI.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codecov": { + "name": "Codecov", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://about.codecov.io/", + "source": null, + "pricing": "https://about.codecov.io/pricing/", + "plans": { + "free": true, + "oss": true + }, + "description": "Codecov is a company that provides code coverage tools for developers and engineering leaders to gain visibility into their code coverage.\nThey offer flexible and unified reporting, seamless coverage insights, and robust coverage controls. Codecov supports over 20 languages and is CI/CD agnostic. Over 29,000 organizations and 1 million developers use Codecov. Codecov has recently joined Sentry.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Codecov Overview", + "url": "https://www.youtube.com/watch?v=wwFookaYHoo" + }, + { + "title": "Codecov Onboarding 1: Account Creation", + "url": "https://www.youtube.com/watch?v=8xToLcchs4Y" + }, + { + "title": "Codecov Github Tutorial/Demo", + "url": "https://docs.codecov.com/docs/github-tutorial" + } + ], + "reviews": [ + "https://www.g2.com/products/codecov/reviews" + ], + "demos": null, + "wrapper": null + }, + "codedepends": { + "name": "CodeDepends", + "categories": [ + "linter" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "GPL" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/duncantl/CodeDepends", + "source": "https://github.com/duncantl/CodeDepends", + "pricing": null, + "plans": null, + "description": "Static Code Analysis for R.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codefactor": { + "name": "CodeFactor", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "coffeescript", + "dart", + "go", + "groovy", + "java", + "javascript", + "kotlin", + "php", + "powershell", + "python", + "r", + "ruby", + "scala", + "shell", + "swift", + "typescript" + ], + "other": [ + "container", + "ci", + "css", + "html", + "vue", + "yaml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://codefactor.io", + "source": null, + "pricing": "https://codefactor.io/pricing", + "plans": { + "free": false, + "oss": true + }, + "description": "Automated Code Analysis for repos on GitHub or BitBucket.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Getting started with CodeFactor.io", + "url": "https://www.youtube.com/watch?v=0wL1bgoya2U" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "codeflow": { + "name": "CodeFlow", + "categories": [ + "linter" + ], + "languages": [ + "java", + "javascript", + "php", + "python", + "ruby", + "typescript" + ], + "other": [ + "container", + "ci", + "css" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.getcodeflow.com", + "source": null, + "pricing": "https://www.getcodeflow.com", + "plans": { + "free": false, + "oss": true + }, + "description": "Automated code analysis tool to deal with technical depth. Integrates with Bitbucket and Gitlab. (free for Open Source Projects)", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codelyzer": { + "name": "Codelyzer", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://codelyzer.com", + "source": "https://github.com/mgechev/codelyzer", + "pricing": null, + "plans": null, + "description": "A set of tslint rules for static code analysis of Angular 2 TypeScript projects.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codemodder": { + "name": "Codemodder", + "categories": [ + "linter" + ], + "languages": [ + "java", + "python" + ], + "other": [], + "licenses": [ + "GNU AFFERO GENERAL PUBLIC LICENSE 3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://codemodder.io/", + "source": "https://github.com/pixee/codemodder-java", + "pricing": null, + "plans": null, + "description": "Codemodder is a pluggable framework for building expressive codemods. Use Codemodder when you need more than a linter or code formatting tool. Use it to fix non-trivial security issues and other code quality problems.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codenarc": { + "name": "CodeNarc", + "categories": [ + "linter" + ], + "languages": [ + "groovy" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://codenarc.github.io/CodeNarc", + "source": "https://github.com/CodeNarc/CodeNarc", + "pricing": null, + "plans": null, + "description": "A static analysis tool for Groovy source code, enabling monitoring and enforcement of many coding standards and best practices.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codeql": { + "name": "codeql", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "java", + "javascript", + "python", + "typescript" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "MIT" + ], + "types": [ + "service", + "ide-plugin" + ], + "homepage": "https://github.com/github/codeql", + "source": null, + "pricing": null, + "plans": null, + "description": "Deep code analysis - semantic queries and dataflow for several languages with VSCode plugin support.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Community-powered security analysis with CodeQL - GitHub Universe 2020", + "url": "https://www.youtube.com/watch?v=Y6PjAaZKNYk" + }, + { + "title": "Continuous code analysis with CodeQL", + "url": "https://www.youtube.com/watch?v=KEPiDz2oO-I" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "codeque": { + "name": "CodeQue", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "jsx", + "lua", + "python", + "typescript" + ], + "other": [ + "json" + ], + "licenses": [ + "Sustainable Use License" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://codeque.co", + "source": "https://github.com/codeque-co/codeque", + "pricing": null, + "plans": null, + "description": "Ecosystem for structural matching JavaScript and TypeScript code. Offers search tool that understands code structure. Available as CLI tool and Visual Studio Code extension. It helps to search code faster and more accurately making you workflow more effective. Soon it will offer ESLint plugin to create your own rules in minutes to help with assuring codebase quality.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Documentation", + "url": "https://codeque.co/docs" + }, + { + "title": "Visual Studio Code Extension", + "url": "https://codeque.co/r/vsc" + }, + { + "title": "CLI via NPM", + "url": "https://www.npmjs.com/package/@codeque/cli" + }, + { + "title": "Core via NPM", + "url": "https://www.npmjs.com/package/@codeque/core" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "coderabbit": { + "name": "CodeRabbit", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://coderabbit.ai", + "source": "https://github.com/coderabbitai", + "pricing": "https://coderabbit.ai/pricing", + "plans": { + "free": true, + "oss": true + }, + "description": "AI-powered code review tool that helps developers write better code faster. CodeRabbit provides automated code reviews, identifies security vulnerabilities, and suggests code improvements. It integrates with GitHub and GitLab.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "AI Code Reviews Demo", + "url": "https://www.youtube.com/watch?v=3SyUOSebG7E" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "coderush": { + "name": "CodeRush", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "aspnet", + "csharp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.devexpress.com/products/coderush", + "source": null, + "pricing": "https://www.devexpress.com/buy/net/", + "plans": null, + "description": "Code creation, debugging, navigation, refactoring, analysis and visualization tools that use the Roslyn engine in Visual Studio 2015 and up.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codescan": { + "name": "CodeScan", + "categories": [ + "linter" + ], + "languages": [ + "apex", + "lwc", + "visualforce" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.codescan.io/", + "source": null, + "pricing": "https://www.codescan.io/pricing", + "plans": null, + "description": "Code Quality and Security for Salesforce Developers. Made exclusively for the Salesforce platform, CodeScan’s code analysis solutions provide you with total visibility into your code health.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codescene": { + "name": "CodeScene", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "clojure", + "dart", + "elixir", + "erlang", + "go", + "groovy", + "java", + "javascript", + "kotlin", + "perl", + "php", + "powershell", + "python", + "ruby", + "scala", + "swift", + "typescript" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://codescene.com", + "source": null, + "pricing": "https://codescene.com/pricing", + "plans": { + "free": false, + "oss": true + }, + "description": "CodeScene is a quality visualization tool for software. Prioritize technical debt, detect delivery risks, and measure organizational aspects. Fully automated.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "CodeScene Introduction - short video with the essentials of CodeScene", + "url": "https://www.youtube.com/watch?v=4Mwv-Swxo84" + }, + { + "title": "Augmented Code Analysis with CodeScene", + "url": "https://www.youtube.com/watch?v=c2lqk98bC00" + }, + { + "title": "Beyond code: interview with Adam Tornhill about CodeScene", + "url": "https://www.youtube.com/watch?v=tbCA2JiO_K8" + } + ], + "reviews": [ + "https://www.capterra.com/p/193379/CodeScene/" + ], + "demos": null, + "wrapper": null + }, + "codesee": { + "name": "CodeSee", + "categories": [ + "linter" + ], + "languages": [ + "go", + "java", + "javascript", + "python", + "rust", + "typescript" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service", + "ide-plugin" + ], + "homepage": "https://www.codesee.io/", + "source": null, + "pricing": "https://www.codesee.io/pricing", + "plans": { + "free": true, + "oss": false + }, + "description": "CodeSee is mapping and automating your app's services, directories, file dependencies, and code changes. It's like Google Map, but for code.t", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": [ + "https://www.codesee.io/maps-demos" + ], + "wrapper": null + }, + "codesonar-from-grammatech": { + "name": "CodeSonar from GrammaTech", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "java" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://codesecure.com/our-products/codesonar/", + "source": null, + "pricing": "https://codesecure.com/trial-request/", + "plans": { + "free": false, + "oss": false + }, + "description": "Advanced, whole program, deep path, static analysis of C, C++, Java and C# with easy-to-understand explanations and code and path visualization.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codespell": { + "name": "codespell", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/codespell-project/codespell", + "source": "https://github.com/codespell-project/codespell", + "pricing": null, + "plans": null, + "description": "Check code for common misspellings.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codety": { + "name": "Codety", + "categories": [ + "linter" + ], + "languages": [ + "cpp", + "go", + "java", + "javascript", + "jsp", + "kotlin", + "plsql", + "python", + "scala", + "swift", + "typescript" + ], + "other": [ + "ci", + "json" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.codety.io", + "source": "https://github.com/codetyio/codety-scanner", + "pricing": "https://www.codety.io", + "plans": { + "free": true, + "oss": true + }, + "description": "Codety Scanner is a comprehensive source code scanner that embeds 5000+ static code analysis rules, which aim to detect code issues for 20+ programming languages and IaC tools.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "codiga": { + "name": "Codiga", + "categories": [ + "linter" + ], + "languages": [ + "apex", + "c", + "cpp", + "go", + "java", + "javascript", + "kotlin", + "php", + "python", + "ruby", + "scala", + "typescript" + ], + "other": [ + "ci", + "dockerfile" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.codiga.io", + "source": null, + "pricing": "https://www.codiga.io/pricing", + "plans": { + "free": true, + "oss": false + }, + "description": "Automated Code Reviews and Technical Debt management platform that supports 12+ languages.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Codiga Code Analysis Demonstration", + "url": "https://www.youtube.com/watch?v=hQ_BjDYlsCU" + }, + { + "title": "Codiga Coding Assistant", + "url": "https://www.youtube.com/watch?v=alS_h2ig7ZI" + } + ], + "reviews": [ + "https://www.capterra.com/p/234335/Codiga/" + ], + "demos": null, + "wrapper": null + }, + "coffeelint": { + "name": "coffeelint", + "categories": [ + "linter" + ], + "languages": [ + "coffeescript" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://coffeelint.github.io/", + "source": "https://github.com/clutchski/coffeelint", + "pricing": null, + "plans": null, + "description": "A style checker that helps keep CoffeeScript code clean and consistent.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cognicrypt": { + "name": "CogniCrypt", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Eclipse Public License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.eclipse.org/cognicrypt", + "source": "https://github.com/eclipse-cognicrypt/CogniCrypt", + "pricing": null, + "plans": null, + "description": "Checks Java source and byte code for incorrect uses of cryptographic APIs.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "Tutorial: CogniCrypt basics, and how to integrate your own Crypto APIs into CognICrypt", + "url": "https://www.youtube.com/watch?v=vOZKN8yQcAY" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "cohesion": { + "name": "cohesion", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mschwager/cohesion", + "source": "https://github.com/mschwager/cohesion", + "pricing": null, + "plans": null, + "description": "A tool for measuring Python class cohesion.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "collector": { + "name": "collector", + "categories": [ + "formatter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/banyanops/collector", + "source": "https://github.com/banyanops/collector", + "pricing": null, + "plans": null, + "description": "Run arbitrary scripts inside containers, and gather useful information.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "commitlint": { + "name": "commitlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "git" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://commitlint.js.org", + "source": "https://github.com/conventional-changelog/commitlint", + "pricing": null, + "plans": null, + "description": "checks if your commit messages meet the conventional commit format", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "complexity-report": { + "name": "complexity-report", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/escomplex/complexity-report", + "source": "https://github.com/escomplex/complexity-report", + "pricing": null, + "plans": null, + "description": "Software complexity analysis for JavaScript projects.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "composer-dependency-analyser": { + "name": "composer-dependency-analyser", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [ + "ci", + "package" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/shipmonk-rnd/composer-dependency-analyser", + "source": "https://github.com/shipmonk-rnd/composer-dependency-analyser", + "pricing": null, + "plans": null, + "description": "Fast detection of composer dependency issues.\n\n* 💪 Powerful: Detects unused, shadow and misplaced composer dependencies\n* ⚡ Performant: Scans 15 000 files in 2s!\n* ⚙️ Configurable: Fine-grained ignores via PHP config\n* 🕸️ Lightweight: No composer dependencies\n* 🍰 Easy-to-use: No config needed for first try\n* ✨ Compatible: PHP >= 7.2\n", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cookstyle": { + "name": "cookstyle", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://docs.chef.io/cookstyle.html", + "source": "https://github.com/chef/cookstyle", + "pricing": null, + "plans": null, + "description": "Cookstyle is a linting tool based on the RuboCop Ruby linting tool for Chef cookbooks.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "corgea": { + "name": "Corgea", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "kotlin", + "php", + "python", + "ruby", + "typescript" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://corgea.com/", + "source": null, + "pricing": "https://corgea.com/pricing", + "plans": { + "free": true, + "oss": false + }, + "description": "Corgea is an AI-powered SAST scanner that helps developers find and fix insecure code. It finds business logic flaws, broken authentication, API vulnerabilities, and more with little false positives. Additionally, it automatically writes security fixes for them to approve. Corgea integrates with GitHub, GitLab, Azure DevOps, IDEs and CLI. It is free to try it.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Product homepage", + "url": "https://corgea.com/" + }, + { + "title": "Corgea Docs", + "url": "https://docs.corgea.app/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "corrode": { + "name": "Corrode", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "rust" + ], + "other": [], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jameysharp/corrode", + "source": "https://github.com/jameysharp/corrode", + "pricing": null, + "plans": null, + "description": "Semi-automatic translation from C to Rust. Could reveal bugs in the original implementation by showing Rust compiler warnings and errors. Superseded by C2Rust.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "coverity": { + "name": "Coverity", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "fortran", + "java", + "javascript", + "php", + "python", + "scala", + "typescript", + "vbnet" + ], + "other": [ + "rails", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html", + "source": null, + "pricing": "https://www.synopsys.com/software-integrity/contact-sales.html", + "plans": { + "free": false, + "oss": true + }, + "description": "Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Coverity - Static Analysis by Synopsys", + "url": "https://www.youtube.com/watch?v=FZ-ySGEcD0c" + }, + { + "title": "Checkmarx - Source Code Analysis Made Easy 2017", + "url": "https://www.youtube.com/watch?v=zo1pCl6yQ34" + } + ], + "reviews": [ + "https://www.g2.com/products/coverity/reviews", + "https://www.gartner.com/reviews/market/application-security-testing/vendor/synopsys/product/coverity-sast", + "https://www.peerspot.com/products/coverity-reviews" + ], + "demos": null, + "wrapper": null + }, + "cpachecker": { + "name": "CPAchecker", + "categories": [ + "linter" + ], + "languages": [ + "c" + ], + "other": [], + "licenses": [ + "Apache 2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://cpachecker.sosy-lab.org", + "source": "https://cpachecker.sosy-lab.org/download.php", + "pricing": null, + "plans": null, + "description": "A tool for configurable software verification of C programs. The name CPAchecker was chosen to reflect that the tool is based on the CPA concepts and is used for checking software programs.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cpp-linter-action": { + "name": "cpp-linter-action", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "python" + ], + "other": [ + "ci" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://cpp-linter.github.io/cpp-linter-action/", + "source": "https://github.com/cpp-linter/cpp-linter-action", + "pricing": null, + "plans": null, + "description": "A Github Action for linting C/C++ code integrating clang-tidy and clang-format to collect feedback provided in the form of thread comments and/or annotations.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "C/C++ Lint Action introduction", + "url": "https://github.com/cpp-linter/cpp-linter-action" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "cppcheck": { + "name": "cppcheck", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://cppcheck.sourceforge.io", + "source": "https://github.com/danmar/cppcheck", + "pricing": null, + "plans": null, + "description": "Static analysis of C/C++ code.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Cppcheck introduction", + "url": "https://www.viva64.com/en/t/0083/" + }, + { + "title": "Using cppcheck for C & C++ Static Analysis", + "url": "https://www.youtube.com/watch?v=oJ8SXVoefaA" + } + ], + "reviews": [ + "https://sourceforge.net/projects/cppcheck/reviews/" + ], + "demos": [ + "https://cppcheck.sourceforge.io/demo/", + "https://www.g2.com/products/cppcheck/reviews" + ], + "wrapper": null + }, + "cppdepend": { + "name": "CppDepend", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.cppdepend.com", + "source": null, + "pricing": "https://www.cppdepend.com/purchase", + "plans": null, + "description": "Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.", + "discussion": null, + "deprecated": false, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cpplint": { + "name": "cpplint", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/cpplint/cpplint", + "source": "https://github.com/cpplint/cpplint", + "pricing": null, + "plans": null, + "description": "Automated C++ checker that follows Google's style guide.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cqc": { + "name": "cqc", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "jsx" + ], + "other": [ + "css", + "less", + "vue" + ], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/xcatliu/cqc", + "source": "https://github.com/xcatliu/cqc", + "pricing": null, + "plans": null, + "description": "Check your code quality for js, jsx, vue, css, less, scss, sass and styl files.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cqmetrics": { + "name": "cqmetrics", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dspinellis/cqmetrics", + "source": "https://github.com/dspinellis/cqmetrics", + "pricing": null, + "plans": null, + "description": "Quality metrics for C code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "credential-digger": { + "name": "Credential Digger", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/SAP/credential-digger", + "source": "https://github.com/SAP/credential-digger", + "pricing": null, + "plans": null, + "description": "Credential Digger is a GitHub scanning tool that identifies hardcoded credentials (Passwords, API Keys, Secret Keys, Tokens, personal information, etc), and filtering the false positive data through a machine learning model called [Password Model](https://huggingface.co/SAPOSS/password-model). This scanner is able to detect passwords and non structured tokens with a low false positive rate. ", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "credo": { + "name": "credo", + "categories": [ + "linter" + ], + "languages": [ + "elixir" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rrrene/credo", + "source": "https://github.com/rrrene/credo", + "pricing": null, + "plans": null, + "description": "A static code analysis tool with a focus on code consistency and teaching.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "crystal": { + "name": "crystal", + "categories": [ + "linter" + ], + "languages": [ + "crystal" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://crystal-lang.org", + "source": "https://github.com/crystal-lang/crystal", + "pricing": null, + "plans": null, + "description": "The Crystal compiler has built-in linting functionality.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cscout": { + "name": "CScout", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.spinellis.gr/cscout", + "source": "https://github.com/dspinellis/cscout", + "pricing": null, + "plans": null, + "description": "Complexity and quality metrics for C and C preprocessor code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "csharpessentials": { + "name": "CSharpEssentials", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/DustinCampbell/CSharpEssentials", + "source": "https://github.com/DustinCampbell/CSharpEssentials", + "pricing": null, + "plans": null, + "description": "C# Essentials is a collection of Roslyn diagnostic analyzers, code fixes and refactorings that make it easy to work with C# 6 language features.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "css-stats": { + "name": "CSS Stats", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://cssstats.com", + "source": "https://github.com/cssstats/cssstats", + "pricing": null, + "plans": null, + "description": "Potentially interesting stats on stylesheets.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "csscomb": { + "name": "CSScomb", + "categories": [ + "formatter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/csscomb/csscomb.js", + "source": "https://github.com/csscomb/csscomb.js", + "pricing": null, + "plans": null, + "description": "A coding style formatter for CSS. Supports own configurations to make style sheets beautiful and consistent.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "csslint": { + "name": "CSSLint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "http://csslint.net", + "source": "https://github.com/CSSLint/csslint", + "pricing": null, + "plans": null, + "description": "Does basic syntax checking and finds problematic patterns or signs of inefficiency.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cwe-checker": { + "name": "cwe_checker", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "GNU Lesser General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/fkie-cad/cwe_checker", + "source": "https://github.com/fkie-cad/cwe_checker", + "pricing": null, + "plans": null, + "description": "cwe_checker finds vulnerable patterns in binary executables.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "cyclocomp": { + "name": "cyclocomp", + "categories": [ + "linter" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/MangoTheCat/cyclocomp", + "source": "https://github.com/MangoTheCat/cyclocomp", + "pricing": null, + "plans": null, + "description": "Quantifies the cyclomatic complexity of R functions / expressions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "d-scanner": { + "name": "D-scanner", + "categories": [ + "linter" + ], + "languages": [ + "dlang" + ], + "other": [], + "licenses": [ + "Boost Software License 1.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dlang-community/D-Scanner", + "source": "https://github.com/dlang-community/D-Scanner", + "pricing": null, + "plans": null, + "description": "D-Scanner is a tool for analyzing D source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dagda": { + "name": "dagda", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/eliasgranderubio/dagda", + "source": "https://github.com/eliasgranderubio/dagda", + "pricing": null, + "plans": null, + "description": "Perform static analysis of known vulnerabilities in docker images/containers.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dart-code-metrics": { + "name": "Dart Code Metrics", + "categories": [ + "linter" + ], + "languages": [ + "dart" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pub.dev/packages/dart_code_metrics", + "source": "https://github.com/dart-code-checker/dart-code-metrics", + "pricing": null, + "plans": null, + "description": "Additional linter for Dart. Reports code metrics, checks for anti-patterns and provides additional rules for Dart analyzer.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "databaseconsistency": { + "name": "DatabaseConsistency", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "rails" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/djezzzl/database_consistency", + "source": "https://github.com/djezzzl/database_consistency", + "pricing": null, + "plans": null, + "description": "The tool to avoid various issues due to inconsistencies and inefficiencies between a database schema and application models.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dataflow-framework": { + "name": "Dataflow Framework", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "GPL with Classpath exception / MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/typetools/checker-framework", + "source": "https://github.com/typetools/checker-framework", + "pricing": null, + "plans": null, + "description": "An industrial-strength dataflow framework for Java. The Dataflow Framework is used in the Checker Framework, Google’s Error Prone, Uber’s NullAway, Meta’s Nullsafe, and in other contexts. It is distributed with the Checker Framework.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "User Manual", + "url": "https://checkerframework.org/manual/checker-framework-dataflow-manual.pdf" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "datree": { + "name": "Datree", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes", + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://datree.io/", + "source": "https://github.com/datreeio/datree", + "pricing": null, + "plans": null, + "description": "A CLI tool to prevent Kubernetes misconfigurations by ensuring that manifests and Helm charts follow best practices as well as your organization’s policies", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dawnscanner": { + "name": "dawnscanner", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "rails" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/thesp0nge/dawnscanner", + "source": "https://github.com/thesp0nge/dawnscanner", + "pricing": null, + "plans": null, + "description": "A static analysis security scanner for ruby written web applications. It supports Sinatra, Padrino and Ruby on Rails frameworks.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dbcritic": { + "name": "dbcritic", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "BSD-3-Clause License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/channable/dbcritic", + "source": "https://github.com/channable/dbcritic", + "pricing": null, + "plans": null, + "description": "dbcritic finds problems in a database schema, such as a missing primary key constraint in a table.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deadcode": { + "name": "deadcode", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tsenart/deadcode", + "source": "https://github.com/tsenart/deadcode", + "pricing": null, + "plans": null, + "description": "Finds unused code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deadnix": { + "name": "deadnix", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "nix" + ], + "licenses": [ + "GPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/astro/deadnix", + "source": "https://github.com/astro/deadnix", + "pricing": null, + "plans": null, + "description": "Scan Nix files for dead code (unused variable bindings)", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deal": { + "name": "deal", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://deal.readthedocs.io/", + "source": "https://github.com/life4/deal", + "pricing": null, + "plans": null, + "description": "Design by contract for Python. Write bug-free code. By adding a few decorators to your code, you get for free tests, static analysis, formal verification, and much more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deepcode": { + "name": "DeepCode", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "javascript", + "python", + "typescript" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://snyk.io/platform/deepcode-ai/", + "source": null, + "pricing": null, + "plans": null, + "description": "DeepCode was acquired by Snyk is now Snyk Code.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "Intro to DeepCode", + "url": "https://www.youtube.com/watch?v=5ThvYN3nWcg" + }, + { + "title": "Introduction to DeepCode's CLI - Install, config, first use", + "url": "https://www.youtube.com/watch?v=PG8PmrKEuLY" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "deepscan": { + "name": "DeepScan", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://deepscan.io", + "source": null, + "pricing": "https://deepscan.io/pricing", + "plans": { + "free": false, + "oss": true + }, + "description": "An analyzer for JavaScript which targets runtime errors and quality issues rather than coding conventions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deepsource": { + "name": "DeepSource", + "categories": [ + "linter" + ], + "languages": [ + "go", + "javascript", + "python", + "ruby", + "sql" + ], + "other": [ + "configmanagement", + "container" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://deepsource.com", + "source": null, + "pricing": "https://deepsource.io/pricing", + "plans": { + "free": true, + "oss": true + }, + "description": "In-depth static analysis to find issues in verticals of bug risks, security, anti-patterns, performance, documentation and style. Native integrations with GitHub, GitLab and Bitbucket. Less than 5% false positives.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "What is DeepSource?", + "url": "https://www.youtube.com/watch?v=SwEQXK1ms_U" + }, + { + "title": "Static analysis for C# with DeepSource", + "url": "https://www.youtube.com/watch?v=hgWui62Aa0E" + } + ], + "reviews": [ + "https://www.capterra.com/p/199025/DeepSource/" + ], + "demos": null, + "wrapper": null + }, + "deleaker": { + "name": "deleaker", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "c", + "csharp", + "cpp", + "delphi" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.deleaker.com/", + "source": null, + "pricing": "https://www.deleaker.com/order.html", + "plans": { + "free": false, + "oss": false + }, + "description": "Deleaker is a memory leak detection tool for C++, .NET, and Delphi, integrating with Visual Studio, Qt Creator, and RAD Studio or running as a standalone application. It helps developers find and fix memory, GDI, and handle leaks efficiently.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "delphilint": { + "name": "DelphiLint", + "categories": [ + "linter" + ], + "languages": [ + "delphi" + ], + "other": [], + "licenses": [ + "LGPL-3.0-only license" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/integrated-application-development/delphilint", + "source": "https://github.com/integrated-application-development/delphilint", + "pricing": null, + "plans": null, + "description": "A Delphi IDE package providing on-the-fly code analysis and linting, powered by SonarDelphi.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dennis": { + "name": "dennis", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "translation" + ], + "licenses": [ + "BSD-3-Clause" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/willkg/dennis", + "source": "https://github.com/willkg/dennis", + "pricing": null, + "plans": null, + "description": "A set of utilities for working with PO files to ease development and improve quality.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deno-lint": { + "name": "deno_lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "deno" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/denoland/deno_lint", + "source": "https://github.com/denoland/deno_lint", + "pricing": null, + "plans": null, + "description": "Official linter for Deno.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "depends": { + "name": "Depends", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/multilang-depends/depends", + "source": "https://github.com/multilang-depends/depends", + "pricing": null, + "plans": null, + "description": "Analyses the comprehensive dependencies of code elements for Java, C/C++, Ruby.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dephpend": { + "name": "dephpend", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mihaeu/dephpend", + "source": "https://github.com/mihaeu/dephpend", + "pricing": null, + "plans": null, + "description": "Dependency analysis tool.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deprecation-detector": { + "name": "deprecation-detector", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sensiolabs-de/deprecation-detector", + "source": "https://github.com/sensiolabs-de/deprecation-detector", + "pricing": null, + "plans": null, + "description": "Finds usages of deprecated (Symfony) code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "deptrac": { + "name": "deptrac", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sensiolabs-de/deptrac", + "source": "https://github.com/sensiolabs-de/deptrac", + "pricing": null, + "plans": null, + "description": "Enforce rules for dependencies between software layers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "derscanner": { + "name": "DerScanner", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "asp", + "apex", + "c", + "csharp", + "cpp", + "cobol", + "dart", + "delphi", + "go", + "groovy", + "java", + "javascript", + "kotlin", + "objectivec", + "pascal", + "perl", + "php", + "plsql", + "python", + "ruby", + "rust", + "scala", + "swift", + "vbscript", + "vbasic", + "vbnet" + ], + "other": [ + "html", + "mobile", + "nodejs", + "security", + "xml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://derscanner.com/", + "source": null, + "pricing": "https://derscanner.com/pricing", + "plans": null, + "description": "Multi-language Static Application Security Testing (SAST) platform that detects critical vulnerabilities, including hardcoded secrets, weak cryptography, backdoors, SQL injections, insecure configurations, etc.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "designite": { + "name": "Designite", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "http://www.designite-tools.com", + "source": null, + "pricing": "http://www.designite-tools.com/buy", + "plans": null, + "description": "Designite supports detection of various architecture, design, and implementation smells, computation of various code quality metrics, and trend analysis.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "designitejava": { + "name": "DesigniteJava", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "http://www.designite-tools.com/designitejava", + "source": null, + "pricing": "http://www.designite-tools.com/buy", + "plans": null, + "description": "DesigniteJava supports detection of various architecture, design, and implementation smells along with computation of various code quality metrics.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "designpatterndetector": { + "name": "DesignPatternDetector", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Halleck45/DesignPatternDetector", + "source": "https://github.com/Halleck45/DesignPatternDetector", + "pricing": null, + "plans": null, + "description": "Detection of design patterns in PHP code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "detect-secrets": { + "name": "detect-secrets", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Yelp/detect-secrets", + "source": "https://github.com/Yelp/detect-secrets", + "pricing": null, + "plans": null, + "description": "An enterprise friendly way of detecting and preventing secrets in code.\nIt does this by running periodic diff outputs against heuristically crafted regex statements, to identify whether any new secret has been committed. This way, it avoids the overhead of digging through all git history, as well as the need to scan the entire repository every time.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "detekt": { + "name": "detekt", + "categories": [ + "linter" + ], + "languages": [ + "kotlin" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://detekt.github.io/detekt", + "source": "https://github.com/detekt/detekt", + "pricing": null, + "plans": null, + "description": "Static code analysis for Kotlin code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "devskim": { + "name": "DevSkim", + "categories": [ + "linter" + ], + "languages": [ + "asp", + "c", + "cpp", + "java", + "php", + "python", + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/microsoft/devskim", + "source": "https://github.com/microsoft/devskim", + "pricing": null, + "plans": null, + "description": "Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "ToorCon 19 — Pavel Bansky - Detecting security issues as fast as you making them", + "url": "https://www.youtube.com/watch?v=VK80nTLGUk4" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "dialyxir": { + "name": "dialyxir", + "categories": [ + "linter" + ], + "languages": [ + "elixir" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jeremyjh/dialyxir", + "source": "https://github.com/jeremyjh/dialyxir", + "pricing": null, + "plans": null, + "description": "Mix tasks to simplify use of Dialyzer in Elixir projects.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dialyzer": { + "name": "dialyzer", + "categories": [ + "linter" + ], + "languages": [ + "erlang" + ], + "other": [], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.erlang.org/doc/man/dialyzer.html", + "source": "https://github.com/erlang/otp/tree/master/lib/dialyzer", + "pricing": null, + "plans": null, + "description": "The DIALYZER, a DIscrepancy AnaLYZer for ERlang programs. Dialyzer is a static analysis tool that identifies software discrepancies, such as definite type errors, code that has become dead or unreachable because of programming error, and unnecessary tests, in single Erlang modules or entire (sets of) applications.\nDialyzer starts its analysis from either debug-compiled BEAM bytecode or from Erlang source code. The file and line number of a discrepancy is reported along with an indication of what the discrepancy is about. Dialyzer bases its analysis on the concept of success typings, which allows for sound warnings (no false positives).", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "ElixirConf 2016 - Dialyzer: Optimistic Type Checking for Erlang and Elixir by Jason Voegele", + "url": "https://www.youtube.com/watch?v=JT0ECYZ9FaQ" + }, + { + "title": "Sean Cribbs - Chemanalysis: Dialyzing Elixir | Code BEAM SF 19", + "url": "https://www.youtube.com/watch?v=k4au7VioXNk" + }, + { + "title": "Stavros Aronis - What does Dialyzer think about me? | Code BEAM STO 19", + "url": "https://www.youtube.com/watch?v=Nxsw1jRE2A4&t=709s" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "diesel-guard": { + "name": "diesel-guard", + "categories": [ + "linter" + ], + "languages": [ + "rust", + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ayarotsky/diesel-guard", + "source": "https://github.com/ayarotsky/diesel-guard", + "pricing": null, + "plans": null, + "description": "Linter for dangerous Postgres migration patterns in Diesel and SQLx. Prevents downtime caused by unsafe schema changes.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "diff-rs": { + "name": "diff.rs", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://diff.rs", + "source": "https://github.com/xfbs/diff.rs", + "pricing": null, + "plans": null, + "description": "Web application (WASM) to render a diff between Rust crate versions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "diffblue": { + "name": "Diffblue", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.diffblue.com/", + "source": null, + "pricing": "https://www.diffblue.com/pricing/", + "plans": { + "free": true + }, + "description": "Diffblue is a software company that provides AI-powered code analysis and testing solutions for software development teams.\nIts technology helps developers automate testing, find bugs, and reduce manual labor in their software development processes. The company's main product, Diffblue Cover, uses AI to generate and run unit tests for Java code, helping to catch errors and improve code quality.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Diffblue Cover Overview", + "url": "https://www.youtube.com/watch?v=9vt1szlaAKw" + }, + { + "title": "Codecov Github Tutorial/Demo", + "url": "https://docs.codecov.com/docs/github-tutorial" + }, + { + "title": "Diffblue Cover in Eclipse", + "url": "https://www.youtube.com/watch?v=jiUgMs21NNE" + }, + { + "title": "Diffblue Cover on a Pull Request", + "url": "https://www.youtube.com/watch?v=dhN-mbgOSMo" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "diktat": { + "name": "diktat", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "kotlin" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://diktat.saveourtool.com", + "source": "https://github.com/saveourtool/diktat", + "pricing": null, + "plans": null, + "description": "Strict coding standard for Kotlin and a linter that detects and auto-fixes code smells.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dingo-hunter": { + "name": "dingo-hunter", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nickng/dingo-hunter", + "source": "https://github.com/nickng/dingo-hunter", + "pricing": null, + "plans": null, + "description": "Static analyser for finding deadlocks in Go.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dlint": { + "name": "Dlint", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dlint-py/dlint", + "source": "https://github.com/dlint-py/dlint", + "pricing": null, + "plans": null, + "description": "A tool for ensuring Python code is secure.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "docker-label-inspector": { + "name": "Docker Label Inspector", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/garethr/docker-label-inspector", + "source": "https://github.com/garethr/docker-label-inspector", + "pricing": null, + "plans": null, + "description": "Lint and validate Dockerfile labels.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dockle": { + "name": "Dockle", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container", + "dockerfile", + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/goodwithtech/dockle", + "source": "https://github.com/goodwithtech/dockle", + "pricing": null, + "plans": null, + "description": "Container Image Linter for Security helping build the Best-Practice Docker Image. Scans Docker images for security vulnerabilities and CIS Benchmark compliance. Checks for secrets, credential exposure, and security best practices. Provides multiple severity levels (FATAL, WARN, INFO) and supports various output formats for CI/CD integration.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dodgy": { + "name": "Dodgy", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/landscapeio/dodgy", + "source": "https://github.com/landscapeio/dodgy", + "pricing": null, + "plans": null, + "description": "Dodgy is a very basic tool to run against your codebase to search for \"dodgy\" looking values. It is a series of simple regular expressions designed to detect things such as accidental SCM diff checkins, or passwords or secret keys hard coded into files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dogsled": { + "name": "dogsled", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/alexkohler/dogsled", + "source": "https://github.com/alexkohler/dogsled", + "pricing": null, + "plans": null, + "description": "Finds assignments/declarations with too many blank identifiers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "doop": { + "name": "Doop", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "UPL" + ], + "types": [ + "cli" + ], + "homepage": "https://plast-lab.github.io/doop-pldi15-tutorial/", + "source": "https://github.com/plast-lab/doop", + "pricing": null, + "plans": null, + "description": "Doop is a declarative framework for static analysis of Java/Android programs, centered on pointer analysis algorithms. Doop provides a large variety of analyses and also the surrounding scaffolding to run an analysis end-to-end (fact generation, processing, statistics, etc.).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dotenv-linter": { + "name": "dotenv-linter", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configfile" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://dotenv-linter.readthedocs.io/en/latest", + "source": "https://github.com/wemake-services/dotenv-linter", + "pricing": null, + "plans": null, + "description": "Linting dotenv files like a charm.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dotenv-linter-rust": { + "name": "dotenv-linter (Rust)", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configfile" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://dotenv-linter.github.io/#/", + "source": "https://github.com/dotenv-linter/dotenv-linter", + "pricing": null, + "plans": null, + "description": "Lightning-fast linter for .env files. Written in Rust", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dotnet-format": { + "name": "dotnet-format", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "csharp", + "vbasic" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dotnet/format", + "source": "https://github.com/dotnet/format", + "pricing": null, + "plans": null, + "description": "A code formatter for .NET. Preferences will be read from an `.editorconfig` file, if present, otherwise a default set of preferences will be used. At this time dotnet-format is able to format C# and Visual Basic projects with a subset of supported `.editorconfig` options.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "drnim": { + "name": "DrNim", + "categories": [ + "linter" + ], + "languages": [ + "nim" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://nim-lang.org/docs/drnim.html", + "source": "https://nim-lang.org/docs/drnim.html", + "pricing": null, + "plans": null, + "description": "DrNim combines the Nim frontend with the Z3 proof engine in order to allow verify / validate software written in Nim.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dupl": { + "name": "dupl", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mibk/dupl", + "source": "https://github.com/mibk/dupl", + "pricing": null, + "plans": null, + "description": "Reports potentially duplicated code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "dylint": { + "name": "dylint", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT License / Apache 2.0 license" + ], + "types": [ + "cli" + ], + "homepage": "https://www.trailofbits.com/post/write-rust-lints-without-forking-clippy", + "source": "https://github.com/trailofbits/dylint", + "pricing": null, + "plans": null, + "description": "A tool for running Rust lints from dynamic libraries. Dylint makes it easy for developers to maintain their own personal lint collections.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "easycodingstandard": { + "name": "EasyCodingStandard", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.tomasvotruba.com/blog/2017/05/03/combine-power-of-php-code-sniffer-and-php-cs-fixer-in-3-lines", + "source": "https://github.com/Symplify/EasyCodingStandard", + "pricing": null, + "plans": null, + "description": "Combine [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) and [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "effective-dart": { + "name": "effective_dart", + "categories": [ + "linter" + ], + "languages": [ + "dart" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pub.dev/packages/effective_dart", + "source": "https://github.com/tenhobi/effective_dart", + "pricing": null, + "plans": null, + "description": "Linter rules corresponding to the guidelines in Effective Dart", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "electrolysis": { + "name": "electrolysis", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://kha.github.io/electrolysis", + "source": "https://github.com/Kha/electrolysis", + "pricing": null, + "plans": null, + "description": "A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "elm-analyse": { + "name": "elm-analyse", + "categories": [ + "linter" + ], + "languages": [ + "elm" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://stil4m.github.io/elm-analyse", + "source": "https://github.com/stil4m/elm-analyse", + "pricing": null, + "plans": null, + "description": "A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "elm-review": { + "name": "elm-review", + "categories": [ + "linter" + ], + "languages": [ + "elm" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://package.elm-lang.org/packages/jfmengels/elm-review/latest", + "source": "https://github.com/jfmengels/elm-review", + "pricing": null, + "plans": null, + "description": "Analyzes whole Elm projects, with a focus on shareable and custom rules written in Elm that add guarantees the Elm compiler doesn't give you.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "elvis": { + "name": "elvis", + "categories": [ + "linter" + ], + "languages": [ + "erlang" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/inaka/elvis", + "source": "https://github.com/inaka/elvis", + "pricing": null, + "plans": null, + "description": "Erlang Style Reviewer.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ember-template-lint": { + "name": "ember-template-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "template" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ember-template-lint/ember-template-lint", + "source": "https://github.com/ember-template-lint/ember-template-lint", + "pricing": null, + "plans": null, + "description": "Linter for Ember or Handlebars templates.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "embold": { + "name": "Embold", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "kotlin", + "python", + "typescript" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://embold.io", + "source": null, + "pricing": "https://embold.io/pricing", + "plans": { + "free": true, + "oss": false + }, + "description": "Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "emerge": { + "name": "emerge", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "go", + "java", + "javascript", + "kotlin", + "objectivec", + "php", + "python", + "ruby", + "swift", + "typescript" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://github.com/glato/emerge", + "source": "https://github.com/glato/emerge", + "pricing": null, + "plans": null, + "description": "Emerge is a source code and dependency visualizer that can be used to gather insights about source code structure, metrics, dependencies and complexity of software projects. After scanning the source code of a project it provides you an interactive web interface to explore and analyze your project by using graph structures.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "enforster-ai": { + "name": "Enforster AI", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "php", + "python", + "typescript" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://enforster.ai/", + "source": null, + "pricing": null, + "plans": null, + "description": "Enforster AI performs Contextual Code Security SAST, leveraging LLMs and artificial intelligence to reduce and enrich the detection of Logic Flaws, Secrets, Data leaks, Supply chain and technical vulnerabilities. ", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Product homepage", + "url": "https://enforster.ai/" + }, + { + "title": "Docs", + "url": "https://docs.enforster.ai/" + }, + { + "title": "Platform Access", + "url": "https://app.enforster.ai/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "enlightn": { + "name": "Enlightn", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [ + "laravel", + "security" + ], + "licenses": [ + "LGPL-3.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.laravel-enlightn.com/", + "source": "https://github.com/enlightn/enlightn", + "pricing": null, + "plans": null, + "description": "A static and dynamic analysis tool for Laravel applications that provides recommendations to improve the performance, security and code reliability of Laravel apps. Contains 120 automated checks.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "Enlightn: Performance and Security Consultant", + "url": "https://www.youtube.com/watch?v=l6gY53fL1zI" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "enre-cpp": { + "name": "ENRE-cpp", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "LGPL-2.1 license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/xjtu-enre/ENRE-cpp", + "source": "https://github.com/xjtu-enre/ENRE-cpp", + "pricing": null, + "plans": null, + "description": "ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-cpp is a ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development)", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "enre-java": { + "name": "ENRE-java", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "LGPL-2.1 license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/xjtu-enre/ENRE-java", + "source": "https://github.com/xjtu-enre/ENRE-java", + "pricing": null, + "plans": null, + "description": "ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-java is a ENtity Relationship Extractor for Java projects based on @Eclipse JDT/parser.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "enre-py": { + "name": "ENRE-py", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "LGPL-2.1 license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/xjtu-enre/ENRE-py", + "source": "https://github.com/xjtu-enre/ENRE-py", + "pricing": null, + "plans": null, + "description": "ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-py is a ENtity Relationship Extractor for Python based on Python Language Services of The Standard Library.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "enre-ts": { + "name": "ENRE-ts", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "LGPL-2.1 license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/xjtu-enre/ENRE-ts", + "source": "https://github.com/xjtu-enre/ENRE-ts", + "pricing": null, + "plans": null, + "description": "ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-ts is a ENtity Relationship Extractor for ECMAScript and TypeScript based on @babel/parser.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "erb-formatter": { + "name": "ERB::Formatter", + "categories": [ + "formatter" + ], + "languages": [ + "ruby" + ], + "other": [ + "erb", + "html", + "rails" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nebulab/erb-formatter", + "source": "https://github.com/nebulab/erb-formatter", + "pricing": null, + "plans": null, + "description": "Format ERB files with speed and precision.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "erb-lint": { + "name": "ERB Lint", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "erb", + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Shopify/erb-lint", + "source": "https://github.com/Shopify/erb-lint", + "pricing": null, + "plans": null, + "description": "Lint your ERB or HTML files", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "errcheck": { + "name": "errcheck", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/kisielk/errcheck", + "source": "https://github.com/kisielk/errcheck", + "pricing": null, + "plans": null, + "description": "Check that error return values are used.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "error-prone": { + "name": "Error Prone", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://errorprone.info", + "source": "https://github.com/google/error-prone", + "pricing": null, + "plans": null, + "description": "Catch common Java mistakes as compile-time errors.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "errwrap": { + "name": "errwrap", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 3-Clause License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/fatih/errwrap", + "source": "https://github.com/fatih/errwrap", + "pricing": null, + "plans": null, + "description": "Wrap and fix Go errors with the new %w verb directive. This tool analyzes fmt.Errorf() calls and reports calls that contain a verb directive that is different than the new %w verb directive introduced in Go v1.13. It's also capable of rewriting calls to use the new %w wrap verb directive.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "es6-plato": { + "name": "es6-plato", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/the-simian/es6-plato", + "source": "https://github.com/the-simian/es6-plato", + "pricing": null, + "plans": null, + "description": "Visualize JavaScript (ES6) source complexity.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "esbmc": { + "name": "ESBMC", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "http://esbmc.org", + "source": "https://github.com/esbmc/esbmc", + "pricing": null, + "plans": null, + "description": "ESBMC is an open source, permissively licensed, context-bounded model checker based on satisfiability modulo theories for the verification of single- and multi-threaded C/C++ programs.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "escomplex": { + "name": "escomplex", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jared-stilwell/escomplex", + "source": "https://github.com/jared-stilwell/escomplex", + "pricing": null, + "plans": null, + "description": "Software complexity analysis of JavaScript-family abstract syntax trees.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "eslint": { + "name": "ESLint", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "jsx", + "typescript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/eslint/eslint", + "source": "https://github.com/eslint/eslint", + "pricing": null, + "plans": null, + "description": "An extensible linter for JS, following the ECMAScript standard.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "ESLint Tutorial with VSCode", + "url": "https://www.youtube.com/watch?v=fslNny60HzI" + }, + { + "title": "VSCode ESLint, Prettier & Airbnb Style Guide Setup", + "url": "https://www.youtube.com/watch?v=SydnKbGc7W8" + } + ], + "reviews": [ + "https://openbase.com/js/eslint/reviews", + "https://stackshare.io/eslint" + ], + "demos": [ + "https://eslint.org/play/" + ], + "wrapper": null + }, + "esprima": { + "name": "Esprima", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "BSD 2-Clause \"Simplified\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://esprima.org", + "source": "https://github.com/jquery/esprima", + "pricing": null, + "plans": null, + "description": "ECMAScript parsing infrastructure for multipurpose analysis.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "exakat": { + "name": "exakat", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [ + "ci" + ], + "licenses": [ + "Other" + ], + "types": [ + "service" + ], + "homepage": "https://www.exakat.io", + "source": "https://github.com/exakat/exakat", + "pricing": null, + "plans": null, + "description": "An automated code reviewing engine for PHP.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ezno": { + "name": "ezno", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "typescript" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://kaleidawave.github.io/posts/introducing-ezno/", + "source": "https://github.com/kaleidawave/ezno", + "pricing": null, + "plans": null, + "description": "A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance. Ezno's type checker is built from scratch. The checker is fully compatible with TypeScript type annotations and can work without any type annotations at all.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fantomas": { + "name": "fantomas", + "categories": [ + "formatter" + ], + "languages": [ + "fsharp" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://fsprojects.github.io/fantomas/", + "source": "https://github.com/fsprojects/fantomas", + "pricing": null, + "plans": null, + "description": "F# source code formatter.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fasterer": { + "name": "Fasterer", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/DamirSvrtan/fasterer", + "source": "https://github.com/DamirSvrtan/fasterer", + "pricing": null, + "plans": null, + "description": "Common Ruby idioms checker.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fb-contrib": { + "name": "fb-contrib", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "GNU Lesser General Public License v2.1" + ], + "types": [ + "cli" + ], + "homepage": "http://fb-contrib.sourceforge.net", + "source": "https://github.com/mebigfatguy/fb-contrib", + "pricing": null, + "plans": null, + "description": "A plugin for FindBugs with additional bug detectors.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "find-security-bugs": { + "name": "Find Security Bugs", + "categories": [ + "linter" + ], + "languages": [ + "groovy", + "java", + "kotlin", + "scala" + ], + "other": [], + "licenses": [ + "LGPL-3.0-only" + ], + "types": [ + "cli" + ], + "homepage": "https://find-sec-bugs.github.io", + "source": "https://github.com/find-sec-bugs/find-sec-bugs", + "pricing": null, + "plans": null, + "description": "The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects)", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fix-insight": { + "name": "Fix Insight", + "categories": [ + "linter" + ], + "languages": [ + "delphi" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.tmssoftware.com/site/fixinsight.asp", + "source": "https://www.tmssoftware.com/site/fixinsight.asp", + "pricing": "https://tmssoftware.com/site/tmsallaccess.asp#product-buy-online", + "plans": null, + "description": "A free IDE Plugin for static code analysis. A _Pro_ edition includes a command line tool for automation purposes.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fixinator": { + "name": "Fixinator", + "categories": [ + "linter" + ], + "languages": [ + "coldfusion" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://fixinator.app", + "source": null, + "pricing": "https://fixinator.app", + "plans": null, + "description": "Static security code analysis for ColdFusion or CFML code. Designed to work within a CI pipeline or from the developers terminal.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Fixinator Getting Started Guide", + "url": "https://github.com/foundeo/fixinator/wiki/Getting-Started" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "fixit": { + "name": "fixit", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.org/project/fixit", + "source": "https://github.com/Instagram/Fixit", + "pricing": null, + "plans": null, + "description": "A framework for creating lint rules and corresponding auto-fixes for source code.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Enforcing coding conventions using libCST and Fixit", + "url": "https://www.digitalernachschub.de/blog/enforcing-coding-conventions-using-libcst-and-fixit/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "flake8": { + "name": "flake8", + "categories": [ + "meta" + ], + "languages": [ + "python" + ], + "other": [ + "meta" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/PyCQA/flake8", + "source": "https://github.com/PyCQA/flake8", + "pricing": null, + "plans": null, + "description": "A wrapper around `pyflakes`, `pycodestyle` and `mccabe`.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "My Python Code Looks Ugly and Confusing - Help!", + "url": "https://www.youtube.com/watch?v=TDUf93vqq3g" + }, + { + "title": "flake8 in Python | Linters | PEP8 Standards", + "url": "https://www.youtube.com/watch?v=qUpfUenwUPA" + }, + { + "title": "A flake8 plugin from scratch (intermediate)", + "url": "https://www.youtube.com/watch?v=ot5Z4KQPBL8" + } + ], + "reviews": [ + "https://www.slant.co/options/12632/~flake8-review" + ], + "demos": null, + "wrapper": null + }, + "flakeheaven": { + "name": "flakeheaven", + "categories": [ + "meta" + ], + "languages": [ + "python" + ], + "other": [ + "meta" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.org/project/flakeheaven/", + "source": "https://github.com/flakeheaven/flakeheaven", + "pricing": null, + "plans": null, + "description": "flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flawfinder": { + "name": "flawfinder", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "http://dwheeler.com/flawfinder/", + "source": "https://github.com/david-a-wheeler/flawfinder", + "pricing": null, + "plans": null, + "description": "Finds possible security weaknesses.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flay": { + "name": "flay", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://ruby.sadi.st/Flay.html", + "source": "https://github.com/seattlerb/flay", + "pricing": null, + "plans": null, + "description": "Flay analyzes code for structural similarities.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flen": { + "name": "flen", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lafolle/flen", + "source": "https://github.com/lafolle/flen", + "pricing": null, + "plans": null, + "description": "Get info on length of functions in a Go package.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flint": { + "name": "flint++", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Boost Software License 1.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/JossWhittle/FlintPlusPlus", + "source": "https://github.com/JossWhittle/FlintPlusPlus", + "pricing": null, + "plans": null, + "description": "Cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flog": { + "name": "flog", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://ruby.sadi.st/Flog.html", + "source": "https://github.com/seattlerb/flog", + "pricing": null, + "plans": null, + "description": "Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flow": { + "name": "flow", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://flow.org", + "source": "https://github.com/facebook/flow", + "pricing": null, + "plans": null, + "description": "A static type checker for JavaScript.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flowdroid": { + "name": "FlowDroid", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile" + ], + "licenses": [ + "GNU Lesser General Public License v2.1" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/secure-software-engineering/FlowDroid", + "source": "https://github.com/secure-software-engineering/FlowDroid", + "pricing": null, + "plans": null, + "description": "Static taint analysis tool for Android applications.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "flowr": { + "name": "flowR", + "categories": [ + "linter" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "GPL-3" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://github.com/flowr-analysis/flowr", + "source": "https://github.com/flowr-analysis/flowr", + "pricing": null, + "plans": null, + "description": "A [program slicer](https://github.com/flowr-analysis/flowr/wiki/Terminology#program-slice) and [dataflow analyzer](https://en.wikipedia.org/wiki/Data-flow_analysis) for the [R](https://www.r-project.org/) programming language. Its slicer allows you to reduce a complicated program just to the parts related for a specific task (e.g., the generation of a single or collection of plots, a significance test, ...). The dataflow analysis provides you with a detailed view on the semantics of the R code which can greatly improve other analyses. To use _flowR_, check out the [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr), the [RStudio Addin](https://github.com/flowr-analysis/rstudio-addin-flowr), the [Docker image](https://hub.docker.com/r/eagleoutice/flowr), or the [R package](https://github.com/flowr-analysis/flowr-r-adapter).", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Wiki Pages", + "url": "https://github.com/flowr-analysis/flowr/wiki" + }, + { + "title": "Overview of the VS Code extension", + "url": "https://www.youtube.com/watch?v=Zgq6rnbvvhk" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "foodcritic": { + "name": "foodcritic", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://www.foodcritic.io", + "source": "https://github.com/foodcritic/foodcritic", + "pricing": null, + "plans": null, + "description": "A lint tool that checks Chef cookbooks for common problems.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "forbidden-apis": { + "name": "forbidden-apis", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/policeman-tools/forbidden-apis", + "source": "https://github.com/policeman-tools/forbidden-apis", + "pricing": null, + "plans": null, + "description": "Detects and forbids invocations of specific method/class/field (like reading from a text stream without a charset). Maven/Gradle/Ant compatible.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fortify": { + "name": "Fortify", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "actionscript", + "apex", + "aspnet", + "c", + "csharp", + "cpp", + "cobol", + "coldfusion", + "java", + "javascript", + "jsp", + "objectivec", + "php", + "plsql", + "python", + "ruby", + "scala", + "swift", + "tsql", + "vbscript", + "vbasic", + "vbnet" + ], + "other": [ + "html", + "security", + "xml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://www.microfocus.com/en-us/cyberres/application-security/static-code-analyzer", + "source": null, + "pricing": "https://www.opentext.com/products/fortify-on-demand/trial", + "plans": { + "free": false, + "oss": false + }, + "description": "A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Visual Studio - real-time security with Fortify Security Assistant (2018)", + "url": "https://www.youtube.com/watch?v=7CfeUXtDlwQ" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "fortitude": { + "name": "Fortitude", + "categories": [ + "linter" + ], + "languages": [ + "fortran" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://fortitude.readthedocs.io", + "source": "https://github.com/PlasmaFAIR/fortitude", + "pricing": null, + "plans": null, + "description": "Fortran linter, inspired by (and built on) Ruff, and based on community best practices. Supports latest Fortran (2023) standard.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fprettify": { + "name": "fprettify", + "categories": [ + "linter" + ], + "languages": [ + "fortran" + ], + "other": [], + "licenses": [ + "NOASSERTION" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.python.org/pypi/fprettify", + "source": "https://github.com/pseewald/fprettify", + "pricing": null, + "plans": null, + "description": "Auto-formatter for modern fortran source code, written in Python.\nFprettify is a tool that provides consistent whitespace, indentation, and delimiter alignment in code, including the ability to change letter case and handle preprocessor directives, all while preserving revision history and tested for editor integration.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "frama-c": { + "name": "Frama-C", + "categories": [ + "linter" + ], + "languages": [ + "c" + ], + "other": [], + "licenses": [ + "GNU Lesser General Public License v2.1" + ], + "types": [ + "cli" + ], + "homepage": "https://www.frama-c.com", + "source": "https://www.frama-c.com/html/get-frama-c.html", + "pricing": null, + "plans": null, + "description": "A sound and extensible static analyzer for C code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "freeplane-code-explorer": { + "name": "Freeplane Code Explorer", + "categories": [ + "meta" + ], + "languages": [ + "java", + "kotlin", + "scala" + ], + "other": [], + "licenses": [ + "GPL-2.0-or-later" + ], + "types": [ + "gui" + ], + "homepage": "https://docs.freeplane.org/user-documentation/Code_Explorer.html", + "source": "https://github.com/freeplane/freeplane", + "pricing": null, + "plans": null, + "description": "The Code Explorer mode in Freeplane is designed for analyzing the structure and dependencies of code compiled to JVM class files. It also allows displaying ArchUnit test results directly in Freeplane, if Freeplane is running and ArchUnit detects rule violations during the tests.\n", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "frink": { + "name": "Frink", + "categories": [ + "formatter" + ], + "languages": [ + "tcl" + ], + "other": [], + "licenses": [ + "unknown" + ], + "types": [ + "cli" + ], + "homepage": "http://catless.ncl.ac.uk/Programs/Frink", + "source": "http://catless.ncl.ac.uk/Programs/Frink", + "pricing": null, + "plans": null, + "description": "A Tcl formatting and static check program (can prettify the program, minimise, obfuscate or just sanity check it).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fsharplint": { + "name": "FSharpLint", + "categories": [ + "linter" + ], + "languages": [ + "fsharp" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/fsprojects/FSharpLint", + "source": "https://github.com/fsprojects/FSharpLint", + "pricing": null, + "plans": null, + "description": "Lint tool for F#.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "fta": { + "name": "fta", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://ftaproject.dev/", + "source": "https://github.com/sgb-io/fta", + "pricing": null, + "plans": null, + "description": "Rust-based static analysis for TypeScript projects", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": [ + "https://ftaproject.dev/playground" + ], + "wrapper": null + }, + "fukuzatsu": { + "name": "Fukuzatsu", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/CoralineAda/fukuzatsu", + "source": "https://github.com/CoralineAda/fukuzatsu", + "pricing": null, + "plans": null, + "description": "A tool for measuring code complexity in Ruby class files. Its analysis generates scores based on cyclomatic complexity algorithms with no added \"opinions\".", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gawk-lint": { + "name": "gawk --lint", + "categories": [ + "linter" + ], + "languages": [ + "awk" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.gnu.org/software/gawk/manual/html_node/Options.html", + "source": "https://www.gnu.org/software/gawk/manual/html_node/Options.html", + "pricing": null, + "plans": null, + "description": "Warns about constructs that are dubious or nonportable to other awk implementations.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gcc": { + "name": "GCC", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "GPL" + ], + "types": [ + "cli" + ], + "homepage": "https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html", + "source": "https://github.com/gcc-mirror/gcc", + "pricing": null, + "plans": null, + "description": "The GCC compiler has static analysis capabilities since version 10. This option is only available if GCC was configured with analyzer support enabled. It can also output its diagnostics to a JSON file in the SARIF format (from v13).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gendarme": { + "name": "Gendarme", + "categories": [ + "formatter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://www.mono-project.com/docs/tools+libraries/tools/gendarme", + "source": "https://github.com/mono/mono-tools", + "pricing": null, + "plans": null, + "description": "Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gherkin-lint": { + "name": "gherkin-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "gherkin" + ], + "licenses": [ + "ISC License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/vsiakka/gherkin-lint", + "source": "https://github.com/vsiakka/gherkin-lint", + "pricing": null, + "plans": null, + "description": "A linter for the Gherkin-Syntax written in Javascript.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ghidra": { + "name": "Ghidra", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://ghidra-sre.org", + "source": "https://github.com/NationalSecurityAgency/ghidra", + "pricing": null, + "plans": null, + "description": "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Ghidra Installation Guide", + "url": "https://ghidra-sre.org/InstallationGuide.html" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "gitguardian-ggshield": { + "name": "GitGuardian ggshield", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "dotenv", + "container", + "ci", + "git", + "security", + "terraform" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://www.gitguardian.com/ggshield", + "source": "https://github.com/gitguardian/ggshield", + "pricing": null, + "plans": null, + "description": "ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Getting started with ggshield", + "url": "https://docs.gitguardian.com/ggshield-docs/getting-started" + }, + { + "title": "A Developer's View of GitGuardian ggshield Throughout The Software Development Lifecycle", + "url": "https://www.youtube.com/watch?v=diuBTBjx7Qc" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "gitleaks": { + "name": "Gitleaks", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/zricethezav/gitleaks", + "source": "https://github.com/zricethezav/gitleaks", + "pricing": null, + "plans": null, + "description": "A SAST tool for detecting hardcoded secrets like passwords, api keys, and tokens in git repos.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gixy": { + "name": "gixy", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configfile" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/yandex/gixy", + "source": "https://github.com/yandex/gixy", + "pricing": null, + "plans": null, + "description": "A tool to analyze Nginx configuration. The main goal is to prevent misconfiguration and automate flaw detection.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "go-ast": { + "name": "go/ast", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://golang.org/pkg/go/ast", + "source": "https://github.com/golang/go/tree/master/src/go/ast", + "pricing": null, + "plans": null, + "description": "Package ast declares the types used to represent syntax trees for Go packages.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "go-consistent": { + "name": "go-consistent", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Quasilyte/go-consistent", + "source": "https://github.com/Quasilyte/go-consistent", + "pricing": null, + "plans": null, + "description": "Analyzer that helps you to make your Go programs more consistent.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "go-critic": { + "name": "go-critic", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/go-critic/go-critic", + "source": "https://github.com/go-critic/go-critic", + "pricing": null, + "plans": null, + "description": "Go source code linter that maintains checks which are currently not implemented in other linters.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "go-meta-linter": { + "name": "Go Meta Linter", + "categories": [ + "meta" + ], + "languages": [ + "go" + ], + "other": [ + "meta" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/alecthomas/gometalinter", + "source": "https://github.com/alecthomas/gometalinter", + "pricing": null, + "plans": null, + "description": "Concurrently run Go lint tools and normalise their output. Use `golangci-lint` for new projects.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "go-tool-vet-shadow": { + "name": "go tool vet --shadow", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://golang.org/cmd/vet#hdr-Shadowed_variables", + "source": "https://github.com/golang/go/tree/master/src/cmd/vet", + "pricing": null, + "plans": null, + "description": "Reports variables that may have been unintentionally shadowed.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "go-vet": { + "name": "go vet", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://golang.org/cmd/vet", + "source": "https://github.com/golang/go/tree/master/src/cmd/vet", + "pricing": null, + "plans": null, + "description": "Examines Go source code and reports suspicious.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goast": { + "name": "goast", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/m-mizutani/goast", + "source": "https://github.com/m-mizutani/goast", + "pricing": null, + "plans": null, + "description": "Go AST (Abstract Syntax Tree) based static analysis tool with Rego.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goblint": { + "name": "Goblint", + "categories": [ + "linter" + ], + "languages": [ + "c" + ], + "other": [ + "ci" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://goblint.in.tum.de", + "source": "https://github.com/goblint/analyzer", + "pricing": null, + "plans": null, + "description": "A static analyzer for the analysis of multi-threaded C programs. Its primary focus is the detection of data races, but it also reports other runtime errors, such as buffer overflows and null-pointer dereferences.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gochecknoglobals": { + "name": "gochecknoglobals", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/leighmcculloch/gochecknoglobals", + "source": "https://github.com/leighmcculloch/gochecknoglobals", + "pricing": null, + "plans": null, + "description": "Checks that no globals are present.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goconst": { + "name": "goconst", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jgautheron/goconst", + "source": "https://github.com/jgautheron/goconst", + "pricing": null, + "plans": null, + "description": "Finds repeated strings that could be replaced by a constant.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gocyclo": { + "name": "gocyclo", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/fzipp/gocyclo", + "source": "https://github.com/fzipp/gocyclo", + "pricing": null, + "plans": null, + "description": "Calculate cyclomatic complexities of functions in Go source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gofmt-s": { + "name": "gofmt -s", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://golang.org/cmd/gofmt", + "source": "https://github.com/golang/go/tree/master/src/cmd/gofmt", + "pricing": null, + "plans": null, + "description": "Checks if the code is properly formatted and could not be further simplified.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gofumpt": { + "name": "gofumpt", + "categories": [ + "formatter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://github.com/mvdan/gofumpt", + "source": "https://github.com/mvdan/gofumpt", + "pricing": null, + "plans": null, + "description": "Enforce a stricter format than `gofmt`, while being backwards-compatible. That is, `gofumpt` is happy with a subset of the formats that `gofmt` is happy with.\nThe tool is a fork of `gofmt` as of Go 1.19, and requires Go 1.18 or later. It can be used as a drop-in replacement to format your Go code, and running gofmt after gofumpt should produce no changes.\n`gofumpt` will never add rules which disagree with `gofmt` formatting. So we extend `gofmt` rather than compete with it.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goimports": { + "name": "goimports", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://pkg.go.dev/golang.org/x/tools/cmd/goimports", + "source": "https://github.com/golang/tools/tree/master/cmd/goimports", + "pricing": null, + "plans": null, + "description": "Checks missing or unreferenced package imports.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gokart": { + "name": "gokart", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [ + "security" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/praetorian-inc/gokart", + "source": "https://github.com/praetorian-inc/gokart", + "pricing": null, + "plans": null, + "description": "Golang security analysis with a focus on minimizing false positives. It is capable of tracing the source of variables and function arguments to determine whether input sources are safe.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "golangci-lint": { + "name": "GolangCI-Lint", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://golangci-lint.run", + "source": "https://github.com/golangci/golangci-lint", + "pricing": null, + "plans": null, + "description": "Fast linters runner for Go. It aggregates multiple Go linters and provides a unified configuration, caching, and output format. Alternative to `Go Meta Linter`.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "GopherCon 2019: Denis Isaev (author of golangci-lint) - Go Linters: Myths and Best Practices", + "url": "https://www.youtube.com/watch?v=1U-Gzz4TYP0" + } + ], + "reviews": [ + "https://stackshare.io/golangci-lint" + ], + "demos": null, + "wrapper": null + }, + "golint": { + "name": "golint", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/golang/lint", + "source": "https://github.com/golang/lint", + "pricing": null, + "plans": null, + "description": "Prints out coding style mistakes in Go source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goodcheck": { + "name": "Goodcheck", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://sider.github.io/goodcheck", + "source": null, + "pricing": null, + "plans": null, + "description": "Regexp based customizable linter.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goodpractice": { + "name": "goodpractice", + "categories": [ + "linter" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://docs.ropensci.org/goodpractice/", + "source": "https://github.com/mangothecat/goodpractice", + "pricing": null, + "plans": null, + "description": "Analyses the source code for R packages and provides best-practice recommendations.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "google-java-format": { + "name": "google-java-format", + "categories": [ + "formatter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://github.com/google/google-java-format", + "source": "https://github.com/google/google-java-format", + "pricing": null, + "plans": null, + "description": "Reformats Java source code to comply with Google Java Style", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goone": { + "name": "goone", + "categories": [ + "linter" + ], + "languages": [ + "go", + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/masibw/goone", + "source": "https://github.com/masibw/goone", + "pricing": null, + "plans": null, + "description": "Finds N+1 queries (SQL calls in a for loop) in go code", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goreporter": { + "name": "goreporter", + "categories": [ + "meta" + ], + "languages": [ + "go" + ], + "other": [ + "meta" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/360EntSecGroup-Skylar/goreporter", + "source": "https://github.com/360EntSecGroup-Skylar/goreporter", + "pricing": null, + "plans": null, + "description": "Concurrently runs many linters and normalises their output to a report.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "goroutine-inspect": { + "name": "goroutine-inspect", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 2-Clause \"Simplified\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/linuxerwang/goroutine-inspect", + "source": "https://github.com/linuxerwang/goroutine-inspect", + "pricing": null, + "plans": null, + "description": "An interactive tool to analyze Golang goroutine dump.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gosec-gas": { + "name": "gosec (gas)", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://securego.io", + "source": "https://github.com/securego/gosec", + "pricing": null, + "plans": null, + "description": "Inspects source code for security problems by scanning the Go AST.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gotype": { + "name": "gotype", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "3-Clause BSD License + Patent Grant" + ], + "types": [ + "cli" + ], + "homepage": "https://pkg.go.dev/golang.org/x/tools/cmd/gotype", + "source": "https://golang.org/x/tools/cmd/gotype", + "pricing": null, + "plans": null, + "description": "Syntactic and semantic analysis similar to the Go compiler.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "govulncheck": { + "name": "govulncheck", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3-Clause" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://go.dev/blog/vuln", + "source": "https://pkg.go.dev/golang.org/x/vuln/vulncheck", + "pricing": null, + "plans": null, + "description": "Govulncheck reports known vulnerabilities that affect Go code. It uses static analysis of source code or a binary's symbol table to narrow down reports to only those that could affect the application.\nBy default, govulncheck makes requests to the Go vulnerability database at https://vuln.go.dev. Requests to the vulnerability database contain only module paths, not code or other properties of your program.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "graphmycss-com": { + "name": "GraphMyCSS.com", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://graphmycss.com", + "source": "https://github.com/TheJaredWilcurt/itcss-specificity-graph", + "pricing": null, + "plans": null, + "description": "CSS Specificity Graph Generator.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "graudit": { + "name": "graudit", + "categories": [ + "linter" + ], + "languages": [ + "asp", + "c", + "csharp", + "cpp", + "java", + "perl", + "php", + "python", + "ruby" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "http://www.justanotherhacker.com", + "source": "https://github.com/wireghoul/graudit", + "pricing": null, + "plans": null, + "description": "Grep rough audit - source code auditing tool.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "griffe": { + "name": "Griffe", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "ISC License" + ], + "types": [ + "cli" + ], + "homepage": "https://mkdocstrings.github.io/griffe/", + "source": "https://github.com/mkdocstrings/griffe", + "pricing": null, + "plans": null, + "description": "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "grumphp": { + "name": "GrumPHP", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/phpro/grumphp", + "source": "https://github.com/phpro/grumphp", + "pricing": null, + "plans": null, + "description": "Checks code on every commit.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "grunt-bootlint": { + "name": "grunt-bootlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/twbs/grunt-bootlint", + "source": "https://github.com/twbs/grunt-bootlint", + "pricing": null, + "plans": null, + "description": "A Grunt wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "grype": { + "name": "Grype", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container", + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/anchore/grype", + "source": "https://github.com/anchore/grype", + "pricing": null, + "plans": null, + "description": "Vulnerability scanner for container images and filesystems. Developed by Anchore, it scans container images, directories, and archives for known vulnerabilities. Supports multiple image formats, SBOM integration, and VEX (Vulnerability Exploitability eXchange) for accurate vulnerability assessment. Works with various vulnerability databases and provides detailed reporting.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "gulp-bootlint": { + "name": "gulp-bootlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tschortsch/gulp-bootlint", + "source": "https://github.com/tschortsch/gulp-bootlint", + "pricing": null, + "plans": null, + "description": "A gulp wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "haml-lint": { + "name": "haml-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "template" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sds/haml-lint", + "source": "https://github.com/sds/haml-lint", + "pricing": null, + "plans": null, + "description": "Tool for writing clean and consistent HAML.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "haskell-dockerfile-linter": { + "name": "Haskell Dockerfile Linter", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lukasmartinelli/hadolint", + "source": "https://github.com/lukasmartinelli/hadolint", + "pricing": null, + "plans": null, + "description": "A smarter Dockerfile linter that helps you build best practice Docker images.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "hasmysecretleaked": { + "name": "HasMySecretLeaked", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "git", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://gitguardian.com/hasmysecretleaked", + "source": "https://github.com/GitGuardian/ggshield", + "pricing": null, + "plans": null, + "description": "HasMySecretLeaked is a project from GitGuardian that aims to help individual users and organizations search across 20 million exposed secrets to verify if their developer secrets have leaked on public repositories, gists, and issues on GitHub projects.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "haxe-checkstyle": { + "name": "Haxe Checkstyle", + "categories": [ + "linter" + ], + "languages": [ + "haxe" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://haxecheckstyle.github.io/docs/haxe-checkstyle/home.html", + "source": "https://github.com/HaxeCheckstyle/haxe-checkstyle", + "pricing": null, + "plans": null, + "description": "A static analysis tool to help developers write Haxe code that adheres to a coding standard.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "hcl-appscan-source": { + "name": "HCL AppScan Source", + "categories": [ + "linter" + ], + "languages": [ + "asp", + "aspnet", + "c", + "csharp", + "cpp", + "cobol", + "coldfusion", + "java", + "javascript", + "jsp", + "perl", + "php", + "plsql", + "tsql", + "vbscript", + "vbasic", + "vbnet" + ], + "other": [ + "mobile", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.hcltechsw.com/products/appscan", + "source": null, + "pricing": "http://www.hcl-software.com/appscan/contact-us", + "plans": { + "free": false, + "oss": false + }, + "description": "Commercial Static Code Analysis.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Introducing HCL AppScan Standard", + "url": "https://www.youtube.com/watch?v=TmYY67w18RI" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "hegel": { + "name": "hegel", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://hegel.js.org", + "source": "https://github.com/JSMonk/hegel", + "pricing": null, + "plans": null, + "description": "A static type checker for JavaScript with a bias on type inference and strong type systems.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "helix-qac": { + "name": "Helix QAC", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.perforce.com/products/helix-qac", + "source": null, + "pricing": "https://www.perforce.com/purchase", + "plans": null, + "description": "Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Code with Confidence - Helix QAC", + "url": "https://www.youtube.com/watch?v=HHaBnZx2fGY" + }, + { + "title": "How to Apply AUTOSAR Guidelines With Helix QAC", + "url": "https://www.youtube.com/watch?v=XFvZ_hh6LCo" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "herbie": { + "name": "herbie", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Mozilla Public License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mcarton/rust-herbie-lint", + "source": "https://github.com/mcarton/rust-herbie-lint", + "pricing": null, + "plans": null, + "description": "Adds warnings or errors to your crate when using a numerically unstable floating point expression.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "hlint": { + "name": "HLint", + "categories": [ + "linter" + ], + "languages": [ + "haskell" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ndmitchell/hlint", + "source": "https://github.com/ndmitchell/hlint", + "pricing": null, + "plans": null, + "description": "HLint is a tool for suggesting possible improvements to Haskell code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "holistic": { + "name": "holistic", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "service" + ], + "homepage": "https://holistic.dev/", + "source": null, + "pricing": null, + "plans": null, + "description": "More than 1,300 rules to analyze SQL queries. Takes an SQL schema definition and the query source code to generate improvement recommendations. Detects code smells, unused indexes, unused tables, views, materialized views, and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "hopper": { + "name": "Hopper", + "categories": [ + "linter" + ], + "languages": [ + "groovy", + "java", + "kotlin", + "scala" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/cuplv/hopper", + "source": "https://github.com/cuplv/hopper", + "pricing": null, + "plans": null, + "description": "A static analysis tool written in scala for languages that run on JVM.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "hound-ci": { + "name": "Hound CI", + "categories": [ + "linter" + ], + "languages": [ + "coffeescript", + "go", + "javascript", + "ruby", + "swift" + ], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://houndci.com", + "source": "https://github.com/houndci/hound", + "pricing": null, + "plans": null, + "description": "Comments on style violations in GitHub pull requests. Supports Coffeescript, Go, HAML, JavaScript, Ruby, SCSS and Swift.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "html-inspector": { + "name": "HTML Inspector", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/philipwalton/html-inspector", + "source": "https://github.com/philipwalton/html-inspector", + "pricing": null, + "plans": null, + "description": "HTML Inspector is a code quality tool to help you and your team write better markup.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "html-tidy": { + "name": "HTML Tidy", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "Custom" + ], + "types": [ + "cli" + ], + "homepage": "http://www.html-tidy.org", + "source": "https://github.com/htacg/tidy-html5", + "pricing": null, + "plans": null, + "description": "Corrects and cleans up HTML and XML documents by fixing markup errors and upgrading legacy code to modern standards.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "html-validate": { + "name": "HTML-Validate", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html", + "vue" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://html-validate.org/", + "source": "https://gitlab.com/html-validate/html-validate", + "pricing": null, + "plans": null, + "description": "Offline HTML5 validator.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "htmlbeautifier": { + "name": "htmlbeautifier", + "categories": [ + "formatter" + ], + "languages": [ + "ruby" + ], + "other": [ + "erb", + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/threedaymonk/htmlbeautifier", + "source": "https://github.com/threedaymonk/htmlbeautifier", + "pricing": null, + "plans": null, + "description": "A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "htmlhint": { + "name": "HTMLHint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://htmlhint.com", + "source": "https://github.com/yaniswang/HTMLHint", + "pricing": null, + "plans": null, + "description": "A Static Code Analysis Tool for HTML.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "huntbugs": { + "name": "HuntBugs", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/amaembo/huntbugs", + "source": "https://github.com/amaembo/huntbugs", + "pricing": null, + "plans": null, + "description": "Bytecode static analyzer tool based on Procyon Compiler Tools aimed to supersede FindBugs.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "i-code-cnes-for-fortran": { + "name": "i-Code CNES for Fortran", + "categories": [ + "linter" + ], + "languages": [ + "fortran" + ], + "other": [], + "licenses": [ + "Eclipse Public License 1.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lequal/i-CodeCNES", + "source": "https://github.com/lequal/i-CodeCNES", + "pricing": null, + "plans": null, + "description": "An open source static code analysis tool for Fortran 77, Fortran 90 and Shell.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "i-code-cnes-for-shell": { + "name": "i-Code CNES for Shell", + "categories": [ + "linter" + ], + "languages": [ + "shell" + ], + "other": [], + "licenses": [ + "Eclipse Public License 1.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lequal/i-CodeCNES", + "source": "https://github.com/lequal/i-CodeCNES", + "pricing": null, + "plans": null, + "description": "An open source static code analysis tool for Shell and Fortran (77 and 90).", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "iblessing": { + "name": "iblessing", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile", + "security" + ], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.kitploit.com/2020/08/iblessing-ios-security-exploiting.html", + "source": "https://github.com/Soulghost/iblessing", + "pricing": null, + "plans": null, + "description": "iblessing is an iOS security exploiting toolkit. It can be used for reverse engineering, binary analysis and vulnerability mining.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "icarus-verilog": { + "name": "Icarus Verilog", + "categories": [ + "linter" + ], + "languages": [ + "verilog" + ], + "other": [], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/steveicarus/iverilog", + "source": "http://iverilog.icarus.com/", + "pricing": null, + "plans": null, + "description": "A Verilog simulation and synthesis tool that operates by compiling source code written in IEEE-1364 Verilog into some target format", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ida-free": { + "name": "IDA Free", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.hex-rays.com/products/ida/support/download_freeware", + "source": null, + "pricing": null, + "plans": null, + "description": "Binary code analysis tool.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ikos": { + "name": "IKOS", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nasa-sw-vnv/ikos", + "source": "https://github.com/nasa-sw-vnv/ikos", + "pricing": null, + "plans": null, + "description": "A sound static analyzer for C/C++ code based on LLVM.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "imhotep": { + "name": "imhotep", + "categories": [ + "meta" + ], + "languages": [ + "javascript", + "python", + "ruby" + ], + "other": [ + "buildtool", + "meta" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/justinabrahms/imhotep", + "source": "https://github.com/justinabrahms/imhotep", + "pricing": null, + "plans": null, + "description": "Comment on commits coming into your repository and check for syntactic errors and general lint warnings.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "include-gardener": { + "name": "include-gardener", + "categories": [ + "formatter" + ], + "languages": [ + "c", + "cpp", + "python", + "ruby" + ], + "other": [], + "licenses": [ + "GNU Public License version 2 or greater" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/feddischson/include_gardener", + "source": "https://github.com/feddischson/include_gardener", + "pricing": null, + "plans": null, + "description": "A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ineffassign": { + "name": "ineffassign", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/gordonklaus/ineffassign", + "source": "https://github.com/gordonklaus/ineffassign", + "pricing": null, + "plans": null, + "description": "Detect ineffectual assignments in Go code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "infer": { + "name": "Infer", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "objectivec" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://fbinfer.com", + "source": "https://github.com/facebook/infer", + "pricing": null, + "plans": null, + "description": "A static analyzer for Java, C and Objective-C", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "inspectortiger": { + "name": "InspectorTiger", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/thg-consulting/it", + "source": "https://github.com/thg-consulting/it", + "pricing": null, + "plans": null, + "description": "IT, Inspector Tiger, is a modern python code review tool / framework. It comes with bunch of pre-defined handlers which warns you about improvements and possible bugs. Beside these handlers, you can write your own or use community ones.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "intellij-idea": { + "name": "IntelliJ IDEA", + "categories": [ + "formatter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://www.jetbrains.com/idea", + "source": null, + "pricing": "https://www.jetbrains.com/buy", + "plans": { + "free": false, + "oss": true + }, + "description": "Comes bundled with a lot of inspections for Java and Kotlin and includes tools for refactoring, formatting and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "interfacer": { + "name": "interfacer", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mvdan/interfacer", + "source": "https://github.com/mvdan/interfacer", + "pricing": null, + "plans": null, + "description": "Suggest narrower interfaces that can be used.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ionide-analyzers": { + "name": "ionide-analyzers", + "categories": [ + "linter" + ], + "languages": [ + "fsharp" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://ionide.io/ionide-analyzers/", + "source": "https://github.com/ionide/ionide-analyzers", + "pricing": null, + "plans": null, + "description": "A collection of F# analyzers, built with the FSharp.Analyzers.SDK.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jakstab": { + "name": "Jakstab", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jkinder/jakstab", + "source": "https://github.com/jkinder/jakstab", + "pricing": null, + "plans": null, + "description": "Jakstab is an Abstract Interpretation-based, integrated disassembly and static analysis framework for designing analyses on executables and recovering reliable control flow graphs.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jarchitect": { + "name": "JArchitect", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.jarchitect.com", + "source": null, + "pricing": "https://www.jarchitect.com/purchase", + "plans": null, + "description": "Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jbmc": { + "name": "JBMC", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "BSD-4-Clause-UC (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://www.cprover.org/jbmc", + "source": "https://github.com/peterschrammel/cbmc/releases/tag/jbmc-5.8-cav18", + "pricing": null, + "plans": null, + "description": "Bounded model-checker for Java (bytecode), verifies user-defined assertions, standard assertions, several coverage metric analyses.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jeb-decompiler": { + "name": "JEB Decompiler", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.pnfsoftware.com/", + "source": null, + "pricing": null, + "plans": null, + "description": "Decompile and debug binary code. Break down and analyze document files. Android Dalvik, MIPS, ARM, Intel x86, Java, WebAssembly & Ethereum Decompilers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jedi": { + "name": "jedi", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://jedi.readthedocs.io/en/latest", + "source": "https://github.com/davidhalter/jedi", + "pricing": null, + "plans": null, + "description": "Autocompletion/static analysis library for Python.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Choosing an Autocomplete for Python", + "url": "https://www.youtube.com/watch?v=Qa-5mYCqPto" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "jet": { + "name": "JET", + "categories": [ + "linter" + ], + "languages": [ + "julia" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/aviatesk/JET.jl", + "source": "https://github.com/aviatesk/JET.jl", + "pricing": null, + "plans": null, + "description": "Static type inference system to detect bugs and type instabilities.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jlisa": { + "name": "JLiSA", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "MIT license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lisa-analyzer/jlisa", + "source": "https://github.com/lisa-analyzer/jlisa", + "pricing": null, + "plans": null, + "description": "An abstract interpretation-based static analyzer for Java build upon the [LiSA](https://github.com/lisa-analyzer/lisa) framekwork.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "joern": { + "name": "Joern", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "jimple", + "kotlin", + "php", + "python", + "ruby", + "swift", + "typescript" + ], + "other": [ + "ghidra", + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://joern.io", + "source": "https://github.com/joernio/joern", + "pricing": null, + "plans": null, + "description": "Joern is a platform for analyzing source code, bytecode, and binary executables. It generates code property graphs (CPGs), a graph representation of code for cross-language code analysis. Code property graphs are stored in a custom graph database. This allows code to be mined using search queries formulated in a Scala-based domain-specific query language. Joern is developed with the goal of providing a useful tool for vulnerability discovery and research in static program analysis.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Documentation", + "url": "https://docs.joern.io" + }, + { + "title": "CPG Specification", + "url": "https://cpg.joern.io" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "jqassistant": { + "name": "jQAssistant", + "categories": [ + "linter" + ], + "languages": [ + "java", + "kotlin", + "typescript" + ], + "other": [ + "git", + "json", + "nodejs", + "spring", + "xml", + "yaml" + ], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://jqassistant.org/", + "source": "https://github.com/jqassistant/jqassistant", + "pricing": null, + "plans": null, + "description": "jQAssistant is a plugin based software analytics platform which allows scanning code structures and metadata from repositories into a Neo4j graph database. The gathered data can be used for ad-hoc exploration using queries, visualization or defining rules for continuous architecture validation.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Plugins", + "url": "https://github.com/jqassistant-plugin" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "jshint": { + "name": "jshint", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://jshint.com/about", + "source": "https://github.com/jshint/jshint", + "pricing": null, + "plans": null, + "description": "Detect errors and potential problems in JavaScript code and enforce your team's coding conventions.", + "discussion": "https://github.com/analysis-tools-dev/static-analysis/issues/223", + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jslint": { + "name": "JSLint", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "Llvm release license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/douglascrockford/JSLint", + "source": "https://github.com/douglascrockford/JSLint", + "pricing": null, + "plans": null, + "description": "The JavaScript Code Quality Tool.", + "discussion": "https://github.com/analysis-tools-dev/static-analysis/issues/223", + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jsonlint": { + "name": "jsonlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "json" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://jsonlint.com/", + "source": "https://github.com/zaach/jsonlint", + "pricing": null, + "plans": null, + "description": "A JSON parser and validator with a CLI. Standalone version of jsonlint.com", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "jsprime": { + "name": "JSPrime", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://dpnishant.github.io/jsprime", + "source": "https://github.com/dpnishant/jsprime", + "pricing": null, + "plans": null, + "description": "Static security analysis tool.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kani": { + "name": "kani", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [ + "security" + ], + "licenses": [ + "MIT & Apache 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/model-checking/kani", + "source": "https://github.com/model-checking/kani", + "pricing": null, + "plans": null, + "description": "The Kani Rust Verifier is a bit-precise model checker for Rust. \nKani is particularly useful for verifying unsafe code blocks in Rust, \nwhere the \"unsafe superpowers\" are unchecked by the compiler.\nKani verifies:\n\n* Memory safety (e.g., null pointer dereferences)\n* User-specified assertions (i.e., assert!(...))\n* The absence of panics (e.g., unwrap() on None values)\n* The absence of some types of unexpected behavior (e.g., arithmetic overflows)\n", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "keploy": { + "name": "keploy", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "go", + "java", + "javascript", + "python", + "rust" + ], + "other": [], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://keploy.io/", + "source": "https://github.com/keploy/", + "pricing": null, + "plans": null, + "description": "Keploy is an open-source testing platform that helps developers automate and streamline their testing process. It provides API, and integration testing agents, generating tests, mocks/stubs for APIs that actually work. Additionally, Keploy offers an AI-powered Unit Testing Agent that generates stable, useful unit tests directly in your GitHub PRs and in VSCode, helping catch errors and improve code quality.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Keploy PR Agent", + "url": "https://github.com/apps/keploy" + }, + { + "title": "Keploy Agent VSCode Extension", + "url": "https://marketplace.visualstudio.com/items?itemName=Keploy.keployio" + }, + { + "title": "Keploy Low code Integration Testing", + "url": "https://github.com/keploy/keploy" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "kics": { + "name": "kics", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "ansible", + "configmanagement", + "container", + "kubernetes", + "security", + "terraform" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://kics.io/", + "source": "https://github.com/Checkmarx/kics", + "pricing": null, + "plans": null, + "description": "Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kiuwan": { + "name": "Kiuwan", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "go", + "java", + "javascript", + "kotlin", + "php", + "python", + "scala", + "swift" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.kiuwan.com/code-security-sast", + "source": null, + "pricing": "https://www.kiuwan.com/pricing", + "plans": { + "free": false, + "oss": false + }, + "description": "Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, C\\C++, Java, C#, PHP and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "klee": { + "name": "KLEE", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "UIUC open source license" + ], + "types": [ + "cli" + ], + "homepage": "http://klee.github.io/", + "source": "https://github.com/klee/klee", + "pricing": null, + "plans": null, + "description": "A dynamic symbolic execution engine built on top of the LLVM compiler infrastructure. It can auto-generate test cases for programs such that the test cases exercise as much of the program as possible.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Introduction to symbolic execution with KLEE", + "url": "https://www.youtube.com/watch?v=z6bsk-lsk1Q" + }, + { + "title": "KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs [Original Paper]", + "url": "https://www.usenix.org/legacy/event/osdi08/tech/full_papers/cadar/cadar.pdf" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "klint": { + "name": "klint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/uswitch/klint", + "source": "https://github.com/uswitch/klint", + "pricing": null, + "plans": null, + "description": "A tool that listens to changes in Kubernetes resources and runs linting rules against them. Identify and debug erroneous objects and nudge objects in line with the policies as both change over time. Klint helps us encode checks and proactively alert teams when they need to take action.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "klocwork": { + "name": "Klocwork", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "java" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.perforce.com/products/klocwork", + "source": null, + "pricing": "https://www.perforce.com/purchase", + "plans": { + "free": false, + "oss": false + }, + "description": "Quality and Security Static analysis for C/C++, Java and C#.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kmdr": { + "name": "kmdr", + "categories": [ + "linter" + ], + "languages": [ + "shell" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ediardo/kmdr-cli", + "source": "https://github.com/ediardo/kmdr-cli", + "pricing": null, + "plans": null, + "description": "CLI tool for learning commands from your terminal. kmdr delivers a break down of commands with every attribute explained.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "krane": { + "name": "krane", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container", + "kubernetes" + ], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/appvia/krane", + "source": "https://github.com/appvia/krane", + "pricing": null, + "plans": null, + "description": "Krane is a simple Kubernetes RBAC static analysis tool.\nIt identifies potential security risks in K8s RBAC design and makes suggestions on how to mitigate them. Krane dashboard presents current RBAC security posture and lets you navigate through its definition.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ktfmt": { + "name": "ktfmt", + "categories": [ + "formatter" + ], + "languages": [ + "kotlin" + ], + "other": [], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://facebook.github.io/ktfmt/", + "source": "https://github.com/facebook/ktfmt", + "pricing": null, + "plans": null, + "description": "A program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions.\nA ktfmt IntelliJ plugin is available from the plugin repository. To install it, go to your IDE's settings and select the Plugins category. Click the Marketplace tab, search for the ktfmt plugin, and click the Install button.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ktlint": { + "name": "ktlint", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "kotlin" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://ktlint.github.io", + "source": "https://github.com/shyiko/ktlint", + "pricing": null, + "plans": null, + "description": "An anti-bikeshedding Kotlin linter with built-in formatter.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kube-hunter": { + "name": "kube-hunter", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes", + "security" + ], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://aquasecurity.github.io/kube-hunter/", + "source": "https://github.com/aquasecurity/kube-hunter", + "pricing": null, + "plans": null, + "description": "Hunt for security weaknesses in Kubernetes clusters.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kube-lint": { + "name": "kube-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/viglesiasce/kube-lint", + "source": "https://github.com/viglesiasce/kube-lint", + "pricing": null, + "plans": null, + "description": "A linter for Kubernetes resources with a customizable rule set. You define a list of rules that you would like to validate against your resources and kube-lint will evaluate those rules against them.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kube-linter": { + "name": "kube-linter", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/stackrox/kube-linter", + "source": "https://github.com/stackrox/kube-linter", + "pricing": null, + "plans": null, + "description": "KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kube-score": { + "name": "kube-score", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://kube-score.com", + "source": "https://github.com/zegl/kube-score", + "pricing": null, + "plans": null, + "description": "Static code analysis of your Kubernetes object definitions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "kubeconform": { + "name": "kubeconform", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Apache 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/yannh/kubeconform", + "source": "https://github.com/yannh/kubeconform", + "pricing": null, + "plans": null, + "description": "A fast Kubernetes manifests validator with support for custom resources.\n\nIt is inspired by, contains code from and is designed to stay close to [Kubeval](https://analysis-tools.dev/tool/kubeval),\nbut with the following improvements:\n* high performance: will validate & download manifests over multiple routines, caching downloaded files in memory\n* configurable list of remote, or local schemas locations, enabling validating Kubernetes custom resources (CRDs) and offline validation capabilities\n* uses by default a self-updating fork of the schemas registry maintained by the kubernetes-json-schema project - which guarantees up-to-date schemas for all recent versions of Kubernetes.\n", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Ensuring Kubernetes manifests validity & compliance - a tooling overview - Yann Hamon, Contentful", + "url": "https://youtu.be/YM7Wy_M7Lvw?t=657" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "kubelinter": { + "name": "KubeLinter", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/stackrox/kube-linter", + "source": "https://github.com/stackrox/kube-linter", + "pricing": null, + "plans": null, + "description": "KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "KubeLinter: An open source linter for Kubernetes, from StackRox", + "url": "https://www.youtube.com/watch?v=KWX0sWojV_0" + }, + { + "title": "Announcement blog post", + "url": "https://www.stackrox.com/post/2020/10/introducing-kubelinter-an-open-source-linter-for-kubernetes" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "kubeval": { + "name": "kubeval", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "kubernetes" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://kubeval.instrumenta.dev", + "source": "https://github.com/instrumenta/kubeval", + "pricing": null, + "plans": null, + "description": "Validates your Kubernetes configuration files and supports multiple Kubernetes versions.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lacheck": { + "name": "lacheck", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "latex" + ], + "licenses": [ + "GPL" + ], + "types": [ + "cli" + ], + "homepage": "https://www.ctan.org/pkg/lacheck", + "source": "https://www.ctan.org/tex-archive/support/lacheck", + "pricing": null, + "plans": null, + "description": "A tool for finding common mistakes in LaTeX documents.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "langlint": { + "name": "LangLint", + "categories": [ + "linter" + ], + "languages": [ + "cpp", + "go", + "java", + "javascript", + "python", + "rust", + "typescript" + ], + "other": [ + "json", + "markdown", + "translation", + "yaml" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/HzaCode/Langlint", + "source": "https://github.com/HzaCode/Langlint", + "pricing": null, + "plans": null, + "description": "Automated translation platform for code comments and docstrings across 20+ file types. Eliminates language barriers in international software collaboration. Supports 100+ language pairs with syntax protection. Integrates into CI/CD pipelines like Ruff. 10-20x faster with concurrent processing.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "languagetool": { + "name": "languagetool", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "GNU Lesser General Public License v2.1" + ], + "types": [ + "cli" + ], + "homepage": "https://languagetool.org", + "source": "https://github.com/languagetool-org/languagetool", + "pricing": null, + "plans": null, + "description": "Style and grammar checker for 25+ languages. It finds many errors that a simple spell checker cannot detect.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "larastan": { + "name": "larastan", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [ + "laravel" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/larastan/larastan", + "source": "https://github.com/larastan/larastan", + "pricing": null, + "plans": null, + "description": "Adds static analysis to Laravel improving developer productivity and code quality. It is a wrapper around PHPStan.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "laser": { + "name": "laser", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "GNU Affero General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/michaeledgar/laser", + "source": "https://github.com/michaeledgar/laser", + "pricing": null, + "plans": null, + "description": "Static analysis and style linter for Ruby code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ldra": { + "name": "LDRA", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://ldra.com", + "source": null, + "pricing": "https://ldra.com/register/", + "plans": { + "free": false, + "oss": false + }, + "description": "A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lgtm": { + "name": "LGTM", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "python", + "typescript" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://lgtm.com/", + "source": null, + "pricing": null, + "plans": null, + "description": "Find security vulnerabilities, variants, and critical code quality issues using CodeQL queries over source code. Automatic PR code review; free for open source. Formerly semmle. It supports public Git repositories hosted on Bitbucket Cloud, GitHub.com, GitLab.com.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Welcoming Semmle to GitHub", + "url": "https://github.blog/2019-09-18-github-welcomes-semmle/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "libvcs4j": { + "name": "LibVCS4j", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "support" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/uni-bremen-agst/libvcs4j", + "source": "https://github.com/uni-bremen-agst/libvcs4j", + "pricing": null, + "plans": null, + "description": "A Java library that allows existing tools to analyse the evolution of software systems by providing a common API for different version control systems and issue trackers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lint": { + "name": "lint", + "categories": [ + "linter" + ], + "languages": [ + "dart" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/passsy/dart-lint", + "source": "https://github.com/passsy/dart-lint", + "pricing": null, + "plans": null, + "description": "An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "linter": { + "name": "linter", + "categories": [ + "linter" + ], + "languages": [ + "scala" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/HairyFotr/linter", + "source": "https://github.com/HairyFotr/linter", + "pricing": null, + "plans": null, + "description": "Linter is a Scala static analysis compiler plugin which adds compile-time checks for various possible bugs, inefficiencies, and style problems.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "linter-for-dart": { + "name": "Linter for dart", + "categories": [ + "linter" + ], + "languages": [ + "dart" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dart-lang/linter", + "source": "https://github.com/dart-lang/linter", + "pricing": null, + "plans": null, + "description": "Style linter for Dart.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "linter-rust": { + "name": "linter-rust", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/AtomLinter/linter-rust", + "source": "https://github.com/AtomLinter/linter-rust", + "pricing": null, + "plans": null, + "description": "Linting your Rust-files in Atom, using rustc and cargo.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lintian": { + "name": "lintian", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "package" + ], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://wiki.debian.org/Lintian", + "source": "https://salsa.debian.org/lintian/lintian", + "pricing": null, + "plans": null, + "description": "Static analysis tool for Debian packages.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lintr": { + "name": "lintr", + "categories": [ + "linter" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jimhester/lintr", + "source": "https://github.com/jimhester/lintr", + "pricing": null, + "plans": null, + "description": "Static Code Analysis for R.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "linty-fresh": { + "name": "linty fresh", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lyft/linty_fresh", + "source": "https://github.com/lyft/linty_fresh", + "pricing": null, + "plans": null, + "description": "Parse lint errors and report them to Github as comments on a pull request.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "liquid-haskell": { + "name": "Liquid Haskell", + "categories": [ + "linter" + ], + "languages": [ + "haskell" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://ucsd-progsys.github.io/liquidhaskell-blog/", + "source": "https://github.com/ucsd-progsys/liquidhaskell", + "pricing": null, + "plans": null, + "description": "Liquid Haskell is a refinement type checker for Haskell programs.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lizard": { + "name": "lizard", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "lua", + "objectivec", + "php", + "python", + "ruby", + "rust", + "scala", + "swift", + "typescript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/terryyin/lizard", + "source": "https://github.com/terryyin/lizard", + "pricing": null, + "plans": null, + "description": "Lizard is an extensible Cyclomatic Complexity Analyzer for many programming languages including C/C++ (doesn't require all the header files or Java imports). It also does copy-paste detection (code clone detection/code duplicate detection) and many other forms of static code analysis. Counts lines of code without comments, CCN (cyclomatic complexity number), token count of functions, parameter count of functions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lll": { + "name": "lll", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/walle/lll", + "source": "https://github.com/walle/lll", + "pricing": null, + "plans": null, + "description": "Report long lines.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lockbud": { + "name": "lockbud", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "BSD-3-Clause" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/BurtonQin/lockbud", + "source": "https://github.com/BurtonQin/lockbud", + "pricing": null, + "plans": null, + "description": "Statically detects Rust deadlocks bugs. It currently detects two common kinds of deadlock bugs: doublelock and locks in conflicting order. It will print bugs in JSON format together with the source code location and an explanation of each bug.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lockfile-lint": { + "name": "lockfile-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "nodejs", + "security" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lirantal/lockfile-lint", + "source": "https://github.com/lirantal/lockfile-lint", + "pricing": null, + "plans": null, + "description": "Lint an npm or yarn lockfile to analyze and detect security issues", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "luacheck": { + "name": "luacheck", + "categories": [ + "linter" + ], + "languages": [ + "lua" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lunarmodules/luacheck", + "source": "https://github.com/lunarmodules/luacheck", + "pricing": null, + "plans": null, + "description": "A tool for linting and static analysis of Lua code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lualint": { + "name": "lualint", + "categories": [ + "linter" + ], + "languages": [ + "lua" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/philips/lualint", + "source": "https://github.com/philips/lualint", + "pricing": null, + "plans": null, + "description": "lualint performs luac-based static analysis of global variable usage in Lua source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "luanalysis": { + "name": "Luanalysis", + "categories": [ + "linter" + ], + "languages": [ + "lua" + ], + "other": [], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://plugins.jetbrains.com/plugin/14698-luanalysis", + "source": "https://github.com/Benjamin-Dobell/IntelliJ-Luanalysis", + "pricing": null, + "plans": null, + "description": "An IDE for statically typed Lua development.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "lunasec": { + "name": "LunaSec", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "Apache License Version 2.0" + ], + "types": [ + "service" + ], + "homepage": "https://github.com/marketplace/lunatrace-by-lunasec/", + "source": "https://github.com/lunasec-io/lunasec", + "pricing": null, + "plans": null, + "description": "Open Source AppSec platform that automatically notifies you the next time vulnerabilities like Log4Shell or node-ipc happen. Track your dependencies and builds in a centralized service.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mago": { + "name": "mago", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://mago.carthage.software", + "source": "https://github.com/carthage-software/mago", + "pricing": null, + "plans": null, + "description": "Mago is a complete toolchain for PHP, written in Rust, designed from the ground up for maximum performance.\n- ✨ A blazing-fast formatter that automatically formats your code according to PER-CS, ending style debates forever. - 🔎 An intelligent linter that catches stylistic issues, inconsistencies, and code smells before they become problems. - 🔬 A powerful static analyzer that finds type errors and logical bugs in your code without you ever having to run it. - 🛡️ A robust architectural guard that enforces dependency rules and structural conventions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "malcat": { + "name": "Malcat", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "gui" + ], + "homepage": "https://malcat.fr/", + "source": null, + "pricing": null, + "plans": { + "free": true + }, + "description": "Hexadecimal editor and disassembler for malware analysis and binary file inspection. Supports over 50 file formats and multiple CPU architectures (x86/x64, MIPS, .NET, Python, VB p-code). Features rapid analysis, embedded file extraction, Yara signature scanning, anomaly detection, and Python scripting. Designed for malware analysts, SOC operators, incident responders, and CTF players.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "maligned": { + "name": "maligned", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mdempsky/maligned", + "source": "https://github.com/mdempsky/maligned", + "pricing": null, + "plans": null, + "description": "Detect structs that would take less memory if their fields were sorted.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "manalyze": { + "name": "Manalyze", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/JusticeRage/Manalyze", + "source": "https://github.com/JusticeRage/Manalyze", + "pricing": null, + "plans": null, + "description": "A static analyzer, which checks portable executables for malicious content.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mariana-trench": { + "name": "Mariana Trench", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [ + "mobile" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://mariana-tren.ch/", + "source": "https://github.com/facebook/mariana-trench", + "pricing": null, + "plans": null, + "description": "Our security focused static analysis tool for Android and Java applications. Mariana Trench analyzes Dalvik bytecode and is built to run fast on large codebases (10s of millions of lines of code). It can find vulnerabilities as code changes, before it ever lands in your repository.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "markdownlint": { + "name": "markdownlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "markdown" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/DavidAnson/markdownlint", + "source": "https://github.com/DavidAnson/markdownlint", + "pricing": null, + "plans": null, + "description": "Node.js -based style checker and lint tool for Markdown/CommonMark files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mate": { + "name": "MATE", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "BSD-3-Clause" + ], + "types": [ + "cli" + ], + "homepage": "https://galoisinc.github.io/MATE/", + "source": "https://github.com/GaloisInc/MATE", + "pricing": null, + "plans": null, + "description": "A suite of tools for interactive program analysis with a focus on hunting for bugs in C and C++ code. MATE unifies application-specific and low-level vulnerability analysis using code property graphs (CPGs), enabling the discovery of highly application-specific vulnerabilities that depend on both implementation details and the high-level semantics of target C/C++ programs.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mbake": { + "name": "mbake", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "python" + ], + "other": [ + "make" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.org/project/mbake/", + "source": "https://github.com/EbodShojaei/bake", + "pricing": null, + "plans": null, + "description": "mbake is a Makefile formatter and linter. It only took 50 years!", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mccabe": { + "name": "mccabe", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.org/project/mccabe", + "source": "https://github.com/PyCQA/mccabe", + "pricing": null, + "plans": null, + "description": "Check McCabe complexity.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mcsema": { + "name": "mcsema", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "AGPL-3.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/lifting-bits/mcsema", + "source": "https://github.com/lifting-bits/mcsema", + "pricing": null, + "plans": null, + "description": "Framework for lifting x86, amd64, aarch64, sparc32, and sparc64 program binaries to LLVM bitcode. It translates (\"lifts\") executable binaries from native machine code to LLVM bitcode, which is very useful for performing program analysis methods.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mdformat": { + "name": "mdformat", + "categories": [ + "formatter" + ], + "languages": [], + "other": [ + "markdown" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://mdformat.rtfd.io", + "source": "https://github.com/executablebooks/mdformat", + "pricing": null, + "plans": null, + "description": "CommonMark compliant Markdown formatter", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mdl": { + "name": "mdl", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "markdown" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mivok/markdownlint", + "source": "https://github.com/mivok/markdownlint", + "pricing": null, + "plans": null, + "description": "A tool to check Markdown files and flag style issues.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mdsf": { + "name": "mdsf", + "categories": [ + "formatter" + ], + "languages": [], + "other": [ + "markdown" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/hougesen/mdsf", + "source": "https://github.com/hougesen/mdsf", + "pricing": null, + "plans": null, + "description": "Format markdown code blocks using your favorite code formatters.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mega-linter": { + "name": "Mega-Linter", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "apex", + "c", + "csharp", + "cpp", + "clojure", + "coffeescript", + "dart", + "go", + "groovy", + "java", + "javascript", + "jsx", + "kotlin", + "lwc", + "lua", + "perl", + "php", + "powershell", + "python", + "r", + "raku", + "ruby", + "rust", + "scala", + "shell", + "sql", + "typescript", + "vbnet" + ], + "other": [ + "dotenv", + "ansible", + "arm", + "cloudformation", + "configfile", + "configmanagement", + "container", + "ci", + "css", + "dockerfile", + "gherkin", + "html", + "json", + "kubernetes", + "latex", + "markdown", + "nodejs", + "protobuf", + "puppet", + "terraform", + "vue", + "writing", + "xml", + "yaml" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://megalinter.io/", + "source": "https://github.com/nvuillam/mega-linter", + "pricing": null, + "plans": null, + "description": "Mega-Linter can handle any type of project thanks to its 70+ embedded Linters,\n its advanced reporting, runnable on any CI system or locally,\n with assisted installation and configuration, able to apply formatting and fixes", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Hands on - Improving code standards with mega linter", + "url": "https://www.youtube.com/watch?v=3xgTU1GhRvs" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "metadata-json-lint": { + "name": "metadata-json-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement", + "puppet" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/voxpupuli/metadata-json-lint", + "source": "https://github.com/voxpupuli/metadata-json-lint", + "pricing": null, + "plans": null, + "description": "Tool to check the validity of Puppet metadata.json files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "metricfu": { + "name": "MetricFu", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/metricfu/metric_fu", + "source": "https://github.com/metricfu/metric_fu", + "pricing": null, + "plans": null, + "description": "MetricFu is a set of tools to provide reports that show which parts of your code might need extra work.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "meziantou-analyzer": { + "name": "Meziantou.Analyzer", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "MIT license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/meziantou/Meziantou.Analyzer", + "source": "https://github.com/meziantou/Meziantou.Analyzer", + "pricing": null, + "plans": null, + "description": "A Roslyn analyzer to enforce some good practices in C# in terms of design, usage, security, performance, and style.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mirai": { + "name": "MIRAI", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/facebookexperimental/MIRAI", + "source": "https://github.com/facebookexperimental/MIRAI", + "pricing": null, + "plans": null, + "description": "And abstract interpreter operating on Rust's mid-level intermediate language, and providing warnings based on taint analysis.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "miss-hit": { + "name": "MISS_HIT", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "matlab" + ], + "other": [], + "licenses": [ + "GPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://misshit.org/", + "source": "https://github.com/florianschanda/miss_hit", + "pricing": null, + "plans": null, + "description": "MISS_HIT is a free, open-source code quality toolset for MATLAB, Simulink, and Octave. It includes MH Style (style checker and formatter), MH Metrics (complexity metrics), MH Lint (static analysis), MH Trace (requirements traceability), and MH Copyright (copyright management). Designed to work standalone without requiring MATLAB/Octave installation.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "misspell": { + "name": "misspell", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/client9/misspell", + "source": "https://github.com/client9/misspell", + "pricing": null, + "plans": null, + "description": "Finds commonly misspelled English words.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "misspell-fixer": { + "name": "misspell-fixer", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/vlajos/misspell-fixer", + "source": "https://github.com/vlajos/misspell-fixer", + "pricing": null, + "plans": null, + "description": "Quick tool for fixing common misspellings, typos in source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "misspelled-words-in-context": { + "name": "Misspelled Words In Context", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://jwilk.net/software/mwic", + "source": "https://github.com/jwilk/mwic", + "pricing": null, + "plans": null, + "description": "A spell-checker that groups possible misspellings and shows them in their contexts.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mlint": { + "name": "mlint", + "categories": [ + "linter" + ], + "languages": [ + "matlab" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.mathworks.com/help/matlab/ref/mlint.html", + "source": null, + "pricing": null, + "plans": null, + "description": "Check MATLAB code files for possible problems.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mobb": { + "name": "Mobb", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "csharp", + "java", + "javascript", + "typescript" + ], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://mobb.ai", + "source": null, + "pricing": null, + "plans": null, + "description": "Mobb is a trusted, automatic vulnerability fixer that secures applications, reduces security backlogs, and frees developers to focus on innovation. Mobb is free for open-source projects.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mondrian": { + "name": "Mondrian", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "CC-BY-SA-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://trismegiste.github.io/Mondrian", + "source": "https://github.com/Trismegiste/Mondrian", + "pricing": null, + "plans": null, + "description": "A set of static analysis and refactoring tools which use graph theory.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mopsa": { + "name": "MOPSA", + "categories": [ + "linter" + ], + "languages": [ + "c", + "python" + ], + "other": [], + "licenses": [ + "GNU Lesser General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://mopsa.lip6.fr", + "source": "https://gitlab.com/mopsa/mopsa-analyzer", + "pricing": null, + "plans": null, + "description": "A static analyzer designed to easily reuse abstract domains across widely different languages (such as C and Python).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "multilint": { + "name": "multilint", + "categories": [ + "meta" + ], + "languages": [ + "python" + ], + "other": [ + "meta" + ], + "licenses": [ + "ISC License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/adamchainz/multilint", + "source": "https://github.com/adamchainz/multilint", + "pricing": null, + "plans": null, + "description": "A wrapper around `flake8`, `isort` and `modernize`.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "mypy": { + "name": "mypy", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "http://www.mypy-lang.org", + "source": "https://github.com/python/mypy", + "pricing": null, + "plans": null, + "description": "A static type checker that aims to combine the benefits of duck typing and static typing, frequently used with [MonkeyType](https://github.com/Instagram/MonkeyType).", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Static type checking with mypy", + "url": "https://www.youtube.com/watch?v=9gNnhNxra3E" + }, + { + "title": "Introduction to python typing + mypy (beginner - intermediate)", + "url": "https://www.youtube.com/watch?v=H5CnZQDKfhU" + } + ], + "reviews": null, + "demos": [ + "https://mypy-lang.org/examples.html" + ], + "wrapper": null + }, + "mythril": { + "name": "mythril", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "smart-contracts" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ConsenSys/mythril", + "source": "https://github.com/ConsenSys/mythril", + "pricing": null, + "plans": null, + "description": "A symbolic execution framework with batteries included, can be used to find and exploit vulnerabilities in smart contracts automatically.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "The Ether Wars: Exploits, counter exploits and honeypots - Bernhard Mueller, DEF CON 27 Conference", + "url": "https://www.youtube.com/watch?v=Qd9ubry-c_M" + }, + { + "title": "Smashing Ethereum Smart Contracts for Fun and ACTUAL Profit - Bernhard Mueller", + "url": "https://www.youtube.com/watch?v=iqf6epACgds" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "mythx": { + "name": "MythX", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "smart-contracts" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "service", + "ide-plugin" + ], + "homepage": "https://mythx.io", + "source": null, + "pricing": "https://mythx.io/plans/", + "plans": { + "free": false, + "oss": false + }, + "description": "MythX is an easy to use analysis platform which integrates several analysis methods like fuzzing, symbolic execution and static analysis to find vulnerabilities with high precision. It can be integrated with toolchains like Remix or VSCode or called from the command-line.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "What is MythX?", + "url": "https://www.youtube.com/watch?v=N-dAuqNztjA" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "nagelfar": { + "name": "Nagelfar", + "categories": [ + "linter" + ], + "languages": [ + "tcl" + ], + "other": [], + "licenses": [ + "GPL v2" + ], + "types": [ + "cli" + ], + "homepage": "https://sourceforge.net/projects/nagelfar", + "source": "https://sourceforge.net/p/nagelfar/code/ci/master/tree", + "pricing": null, + "plans": null, + "description": "A static syntax checker for Tcl.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "nakedret": { + "name": "nakedret", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/alexkohler/nakedret", + "source": "https://github.com/alexkohler/nakedret", + "pricing": null, + "plans": null, + "description": "Finds naked returns.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "nargs": { + "name": "nargs", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/alexkohler/nargs", + "source": "https://github.com/alexkohler/nargs", + "pricing": null, + "plans": null, + "description": "Finds unused arguments in function declarations.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "nauz-file-detector": { + "name": "Nauz File Detector", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/horsicq/Nauz-File-Detector", + "source": "https://github.com/horsicq/Nauz-File-Detector", + "pricing": null, + "plans": null, + "description": "Static Linker/Compiler/Tool detector for Windows, Linux and MacOS.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ndepend": { + "name": "NDepend", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "http://www.ndepend.com", + "source": null, + "pricing": "https://www.ndepend.com/purchase", + "plans": { + "free": false, + "oss": false + }, + "description": "Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "net-analyzers": { + "name": ".NET Analyzers", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/DotNetAnalyzers", + "source": "https://github.com/DotNetAnalyzers", + "pricing": null, + "plans": null, + "description": "An organization for the development of analyzers (diagnostics and code fixes) using the .NET Compiler Platform.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "neurolint-cli": { + "name": "Neurolint-CLI", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "typescript" + ], + "other": [], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://neurolint.dev", + "source": "https://github.com/Alcatecablee/Neurolint-CLI", + "pricing": null, + "plans": null, + "description": "Deterministic code transformation tool using AST parsing and rule-based transformations. \nAutomatically fixes 50+ issues including accessibility violations, hydration errors, \nReact 19/Next.js 16 migrations, and configuration updates. Features 5-step fail-safe \norchestration to ensure zero breaking changes. Specialized for React, Next.js, and TypeScript projects.\n", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "CLI Documentation", + "url": "https://neurolint.dev" + }, + { + "title": "GitHub Marketplace Action", + "url": "https://github.com/marketplace/actions/neurolint-deterministic-code-fixer" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "nimfmt": { + "name": "nimfmt", + "categories": [ + "linter" + ], + "languages": [ + "nim" + ], + "other": [], + "licenses": [ + "GPL-3.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/FedericoCeratto/nimfmt", + "source": "https://github.com/FedericoCeratto/nimfmt", + "pricing": null, + "plans": null, + "description": "Nim code formatter / linter / style checker", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "njsscan": { + "name": "njsscan", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "nodejs", + "security" + ], + "licenses": [ + "LGPL-2.1 License" + ], + "types": [ + "cli" + ], + "homepage": "https://opensecurity.in", + "source": "https://github.com/ajinabraham/njsscan", + "pricing": null, + "plans": null, + "description": "A static application testing (SAST) tool that can find insecure code patterns in your node.js applications using simple pattern matcher from libsast and syntax-aware semantic code pattern search tool semgrep.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "nodejsscan": { + "name": "NodeJSScan", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [ + "nodejs", + "security" + ], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://opensecurity.in", + "source": "https://github.com/ajinabraham/NodeJsScan", + "pricing": null, + "plans": null, + "description": "A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. It features a UI with various dashboards about an application's security status.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "nu-html-checker": { + "name": "Nu Html Checker", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css", + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://validator.github.io/validator/", + "source": "https://github.com/validator/validator", + "pricing": null, + "plans": null, + "description": "Helps you catch problems in your HTML/CSS/SVG", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "nullaway": { + "name": "NullAway", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/uber/NullAway", + "source": "https://github.com/uber/NullAway", + "pricing": null, + "plans": null, + "description": "Type-based null-pointer checker with low build-time overhead; an [Error Prone](http://errorprone.info/) plugin.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "oclint": { + "name": "oclint", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "objectivec" + ], + "other": [], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "http://oclint.org", + "source": "https://github.com/oclint/oclint", + "pricing": null, + "plans": null, + "description": "A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "oelint-adv": { + "name": "oelint-adv", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "embedded" + ], + "licenses": [ + "BSD 2-Clause \"Simplified\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/priv-kweihmann/oelint-adv", + "source": "https://github.com/priv-kweihmann/oelint-adv", + "pricing": null, + "plans": null, + "description": "Linter for bitbake recipes used in open-embedded and YOCTO", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "offensive-360": { + "name": "Offensive 360", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "asp", + "csharp", + "java", + "javascript", + "jsx", + "php", + "typescript", + "vbscript", + "vbasic", + "vbnet" + ], + "other": [ + "container", + "html", + "mobile", + "nodejs", + "phonegap", + "security", + "xml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://offensive360.com/", + "source": null, + "pricing": null, + "plans": null, + "description": "Commercial Static Code Analysis system doesn't require building the source code or pre-compilation.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "openrewrite": { + "name": "OpenRewrite", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "groovy", + "java", + "kotlin", + "python", + "sql" + ], + "other": [ + "git", + "json", + "xml", + "yaml" + ], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://docs.openrewrite.org/", + "source": "https://github.com/openrewrite/rewrite", + "pricing": null, + "plans": null, + "description": "OpenRewrite [fixes common static analysis issues](https://docs.openrewrite.org/running-recipes/popular-recipe-guides/common-static-analysis-issue-remediation) reported through Sonar and other tools using a Maven and Gradle plugin or the Moderne CLI.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "openscap": { + "name": "OpenSCAP", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "LGPL-2.1 License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.open-scap.org/", + "source": "https://github.com/OpenSCAP/openscap", + "pricing": null, + "plans": null, + "description": "Suite of automated audit tools to examine the configuration and known vulnerabilities following the NIST-certified Security Content Automation Protocol (SCAP).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "openstaticanalyzer": { + "name": "OpenStaticAnalyzer", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "java", + "javascript", + "python" + ], + "other": [], + "licenses": [ + "European Union Public Licence (EUPL) v1.2" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sed-inf-u-szeged/OpenStaticAnalyzer", + "source": null, + "pricing": null, + "plans": { + "free": true, + "oss": true + }, + "description": "OpenStaticAnalyzer is a source code analyzer tool, which can perform deep static analysis of the source code of complex systems.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "osv-scanner": { + "name": "OSV-Scanner", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [ + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://osv.dev/", + "source": "https://github.com/google/osv-scanner", + "pricing": null, + "plans": null, + "description": "Vulnerability scanner written in Go which uses the data provided by OSV.dev. Developed by Google to scan dependencies across multiple languages and package managers for known vulnerabilities. Supports container scanning, license scanning, and guided remediation. Works with lockfiles, SBOMs, and container images to identify security issues.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "oversecured": { + "name": "Oversecured", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://oversecured.com", + "source": null, + "pricing": null, + "plans": null, + "description": "Enterprise vulnerability scanner for Android and iOS apps. It allows app owners and developers to secure each new version of a mobile app by integrating Oversecured into the development process.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "owasp-dependency-check": { + "name": "OWASP Dependency Check", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://owasp.org/www-project-dependency-check", + "source": "https://github.com/jeremylong/DependencyCheck", + "pricing": null, + "plans": null, + "description": "Checks dependencies for known, publicly disclosed, vulnerabilities.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "owasp-noir": { + "name": "OWASP Noir", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://owasp-noir.github.io/noir/", + "source": "https://github.com/owasp-noir/noir", + "pricing": null, + "plans": null, + "description": "Attack surface detector that identifies endpoints by static analysis.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "OWASP Project Noir", + "url": "https://owasp.org/www-project-noir/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "oxc": { + "name": "oxc", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "javascript", + "typescript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/web-infra-dev/oxc", + "source": "https://github.com/web-infra-dev/oxc", + "pricing": null, + "plans": null, + "description": "The Oxidation Compiler is creating a suite of high-performance tools for the JavaScript / TypeScript language re-written in Rust.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": [ + "https://web-infra-dev.github.io/oxc/playground" + ], + "wrapper": null + }, + "pa11y": { + "name": "Pa11y", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "html" + ], + "licenses": [ + "LGPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://pa11y.org/", + "source": "https://github.com/pa11y/pa11y", + "pricing": null, + "plans": null, + "description": "Automated accessibility testing tool that runs HTML CodeSniffer or axe-core from the command line. Supports CI/CD integration, multiple reporters, and testing against WCAG 2.1 AA standards.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "packj": { + "name": "packj", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "archive" + ], + "licenses": [ + "AGPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ossillate-inc/packj", + "source": "https://github.com/ossillate-inc/packj", + "pricing": null, + "plans": null, + "description": "Packj (pronounced package) is a command line (CLI) tool to vet open-source software packages for \"risky\" attributes that make them vulnerable to supply chain attacks. This is the tool behind our large-scale security analysis platform Packj.dev that continuously vets packages and provides free reports.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "paprika": { + "name": "paprika", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile" + ], + "licenses": [ + "GNU Affero General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/GeoffreyHecht/paprika", + "source": "https://github.com/GeoffreyHecht/paprika", + "pricing": null, + "plans": null, + "description": "A toolkit to detect some code smells in analyzed Android applications.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "parallel-lint": { + "name": "parallel-lint", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", + "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", + "pricing": null, + "plans": null, + "description": "This tool checks syntax of PHP files faster than serial check with a fancier output.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "parasoft": { + "name": "parasoft", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "javascript" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.parasoft.com/", + "source": null, + "pricing": "https://www.parasoft.com/contact/", + "plans": { + "free": false, + "oss": false + }, + "description": "Automated Software Testing Solutions for unit-, API-, and web UI testing. Complies with MISRA, OWASP, and others.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "parker": { + "name": "Parker", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/katiefenn/parker", + "source": "https://github.com/katiefenn/parker", + "pricing": null, + "plans": null, + "description": "Stylesheet analysis tool.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "parse": { + "name": "Parse", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/psecio/parse", + "source": "https://github.com/psecio/parse", + "pricing": null, + "plans": null, + "description": "A Static Security Scanner.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pascal-analyzer": { + "name": "Pascal Analyzer", + "categories": [ + "linter" + ], + "languages": [ + "delphi" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://peganza.com/products_pal.html", + "source": null, + "pricing": "https://peganza.com/orders.html", + "plans": null, + "description": "A static code analysis tool with numerous reports. A free _Lite_ version is available with limited reporting.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pascal-expert": { + "name": "Pascal Expert", + "categories": [ + "linter" + ], + "languages": [ + "delphi" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://peganza.com/products_pex.html", + "source": null, + "pricing": null, + "plans": null, + "description": "IDE plugin for code analysis. Includes a subset of Pascal Analyzer reporting capabilities and is available for Delphi versions 2007 and later.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pc-lint": { + "name": "PC-lint", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://pclintplus.com/", + "source": null, + "pricing": "https://pclintplus.com/pricing/", + "plans": null, + "description": "Static analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes code for virtually any platform, supporting C11/C18 and C++17.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pdepend": { + "name": "pdepend", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://pdepend.org", + "source": "https://github.com/pdepend/pdepend", + "pricing": null, + "plans": null, + "description": "Calculates software metrics like cyclomatic complexity for PHP code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pelusa": { + "name": "pelusa", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/codegram/pelusa", + "source": "https://github.com/codegram/pelusa", + "pricing": null, + "plans": null, + "description": "Static analysis Lint-type tool to improve your OO Ruby code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "perl-analyzer": { + "name": "Perl::Analyzer", + "categories": [ + "linter" + ], + "languages": [ + "perl" + ], + "other": [], + "licenses": [ + "Artistic License (2.0)" + ], + "types": [ + "cli", + "service", + "ide-plugin" + ], + "homepage": "https://technix.github.io/Perl-Analyzer/", + "source": "https://github.com/technix/Perl-Analyzer", + "pricing": null, + "plans": null, + "description": "Perl-Analyzer is a set of programs and modules that allow users to analyze and visualize Perl codebases by providing information about namespaces and their relations, dependencies, inheritance, and methods implemented, inherited, and redefined in packages, as well as calls to methods from parent packages via SUPER. ", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "perl-critic": { + "name": "Perl::Critic", + "categories": [ + "linter" + ], + "languages": [ + "perl" + ], + "other": [], + "licenses": [ + "GPL v2" + ], + "types": [ + "cli" + ], + "homepage": "https://metacpan.org/pod/Perl::Critic", + "source": "https://metacpan.org/release/Perl-Critic/source/lib/Perl/Critic.pm", + "pricing": null, + "plans": null, + "description": "Critique Perl source code for best-practices.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "perltidy": { + "name": "perltidy", + "categories": [ + "formatter" + ], + "languages": [ + "perl" + ], + "other": [], + "licenses": [ + "GPL-2.0 license" + ], + "types": [ + "cli" + ], + "homepage": "https://perltidy.sourceforge.net/", + "source": "https://github.com/perltidy/perltidy", + "pricing": null, + "plans": null, + "description": "Perltidy is a Perl script which indents and reformats Perl scripts to make them easier to read. \nThe formatting can be controlled with command line parameters. The default parameter settings approximately follow the suggestions in the Perl Style Guide. \nBesides reformatting scripts, Perltidy can be a great help in tracking down errors with missing or extra braces, parentheses, and square brackets because it is very good at localizing errors.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pfff": { + "name": "pfff", + "categories": [ + "formatter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "erlang", + "haskell", + "java", + "javascript", + "php", + "python", + "rust" + ], + "other": [ + "css", + "html" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/facebookarchive/pfff/wiki/Main", + "source": "https://github.com/returntocorp/pfff", + "pricing": null, + "plans": null, + "description": "Facebook's tools for code analysis, visualizations, or style-preserving source transformation for many languages.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pgspot": { + "name": "pgspot", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "PostgreSQL License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/timescale/pgspot", + "source": "https://github.com/timescale/pgspot", + "pricing": null, + "plans": null, + "description": "Spot vulnerabilities in postgres extension scripts. Finds unsafe search_path usage and unsafe object creation in PostgreSQL extension scripts or any other PostgreSQL SQL code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phan": { + "name": "phan", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/phan/phan/wiki", + "source": "https://github.com/etsy/phan", + "pricing": null, + "plans": null, + "description": "A modern static analyzer from etsy.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phasar": { + "name": "Phasar", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://phasar.org", + "source": "https://github.com/secure-software-engineering/phasar", + "pricing": null, + "plans": null, + "description": "A LLVM-based static analysis framework which comes with a taint and type state analysis.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-architecture-tester": { + "name": "PHP Architecture Tester", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/carlosas/phpat", + "source": "https://github.com/carlosas/phpat", + "pricing": null, + "plans": null, + "description": "Easy to use architecture testing tool for PHP.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-assumptions": { + "name": "PHP Assumptions", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rskuipers/php-assumptions", + "source": "https://github.com/rskuipers/php-assumptions", + "pricing": null, + "plans": null, + "description": "Checks for weak assumptions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-codesniffer": { + "name": "PHP_CodeSniffer", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://pear.php.net/package/PHP_CodeSniffer", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "pricing": null, + "plans": null, + "description": "Detects violations of a defined set of coding standards.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-coding-standards-fixer": { + "name": "PHP Coding Standards Fixer", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://cs.symfony.com", + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer", + "pricing": null, + "plans": null, + "description": "Fixes your code according to standards like PSR-1, PSR-2, and the Symfony standard.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-insights": { + "name": "PHP Insights", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nunomaduro/phpinsights", + "source": "https://github.com/nunomaduro/phpinsights", + "pricing": null, + "plans": null, + "description": "Instant PHP quality checks from your console. Analysis of code quality and coding style as well as overview of code architecture and its complexity.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-inspections-ea-extended": { + "name": "Php Inspections (EA Extended)", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-", + "source": "https://github.com/kalessil/phpinspectionsea", + "pricing": null, + "plans": null, + "description": "A Static Code Analyzer for PHP.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-parser": { + "name": "PHP-Parser", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nikic/PHP-Parser", + "source": "https://github.com/nikic/PHP-Parser", + "pricing": null, + "plans": null, + "description": "A PHP parser written in PHP.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-refactoring-browser": { + "name": "PHP Refactoring Browser", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://qafoolabs.github.io/php-refactoring-browser", + "source": "https://github.com/QafooLabs/php-refactoring-browser", + "pricing": null, + "plans": null, + "description": "Refactoring helper.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-semantic-versioning-checker": { + "name": "PHP Semantic Versioning Checker", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tomzx/php-semver-checker", + "source": "https://github.com/tomzx/php-semver-checker", + "pricing": null, + "plans": null, + "description": "Suggests a next version according to semantic versioning.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-speller": { + "name": "php-speller", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mekras/php-speller", + "source": "https://github.com/mekras/php-speller", + "pricing": null, + "plans": null, + "description": "PHP spell check library.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php-token-reflection": { + "name": "PHP-Token-Reflection", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Andrewsville/PHP-Token-Reflection", + "source": "https://github.com/Andrewsville/PHP-Token-Reflection", + "pricing": null, + "plans": null, + "description": "Library emulating the PHP internal reflection.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php7cc": { + "name": "php7cc", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sstalle/php7cc", + "source": "https://github.com/sstalle/php7cc", + "pricing": null, + "plans": null, + "description": "PHP 7 Compatibility Checker.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "php7mar": { + "name": "php7mar", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Alexia/php7mar", + "source": "https://github.com/Alexia/php7mar", + "pricing": null, + "plans": null, + "description": "Assist developers in porting their code quickly to PHP 7.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phparkitect": { + "name": "PHPArkitect", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/phparkitect/arkitect", + "source": "https://github.com/phparkitect/arkitect", + "pricing": null, + "plans": null, + "description": "PHPArkitect helps you to keep your PHP codebase coherent and solid, by permitting to add some architectural constraint check to your workflow. You can express the constraint that you want to enforce, in simple and readable PHP code.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "PUG Romagna - Testing Architectural Decisions with PHPArkitect (Italian)", + "url": "https://www.youtube.com/watch?v=fhRDZs82AbE" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpca": { + "name": "phpca", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/wapmorgan/PhpCodeAnalyzer", + "source": "https://github.com/wapmorgan/PhpCodeAnalyzer", + "pricing": null, + "plans": null, + "description": "Finds usage of non-built-in extensions.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpcpd": { + "name": "phpcpd", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "source": "https://github.com/sebastianbergmann/phpcpd", + "pricing": null, + "plans": null, + "description": "Copy/Paste Detector for PHP code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpdcd": { + "name": "phpdcd", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sebastianbergmann/phpdcd", + "source": "https://github.com/sebastianbergmann/phpdcd", + "pricing": null, + "plans": null, + "description": "Dead Code Detector (DCD) for PHP code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpdependencyanalysis": { + "name": "PhpDependencyAnalysis", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://mamuz.github.io/PhpDependencyAnalysis", + "source": "https://github.com/mamuz/PhpDependencyAnalysis", + "pricing": null, + "plans": null, + "description": "Builds a dependency graph for a project.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpdeprecationdetector": { + "name": "PhpDeprecationDetector", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "BSD-3-Clause" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/wapmorgan/PhpDeprecationDetector", + "source": "https://github.com/wapmorgan/PhpDeprecationDetector", + "pricing": null, + "plans": null, + "description": "Analyzer of PHP code to search issues with deprecated functionality in newer interpreter versions. It finds removed objects (functions, variables, constants and ini-directives), deprecated functions functionality, and usage of forbidden names or tricks (e.g. reserved identifiers in newer versions).", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpdoc-to-typehint": { + "name": "phpdoc-to-typehint", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dunglas/phpdoc-to-typehint", + "source": "https://github.com/dunglas/phpdoc-to-typehint", + "pricing": null, + "plans": null, + "description": "Add scalar type hints and return types to existing PHP projects using PHPDoc annotations.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpdocumentor": { + "name": "phpDocumentor", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.phpdoc.org", + "source": "https://github.com/phpDocumentor/phpDocumentor", + "pricing": null, + "plans": null, + "description": "Analyzes PHP source code to generate documentation.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phploc": { + "name": "phploc", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sebastianbergmann/phploc", + "source": "https://github.com/sebastianbergmann/phploc", + "pricing": null, + "plans": null, + "description": "A tool for quickly measuring the size and analyzing the structure of a PHP project.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpmd": { + "name": "PHPMD", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://phpmd.org", + "source": "https://github.com/phpmd/phpmd", + "pricing": null, + "plans": null, + "description": "Finds possible bugs in your code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpmetrics": { + "name": "PhpMetrics", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://www.phpmetrics.org", + "source": "https://github.com/phpmetrics/PhpMetrics", + "pricing": null, + "plans": null, + "description": "Calculates and visualizes various code quality metrics.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpmnd": { + "name": "phpmnd", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/povils/phpmnd", + "source": "https://github.com/povils/phpmnd", + "pricing": null, + "plans": null, + "description": "Helps to detect magic numbers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpqa": { + "name": "PHPQA", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://edgedesigncz.github.io/phpqa", + "source": "https://github.com/EdgedesignCZ/phpqa", + "pricing": null, + "plans": null, + "description": "A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpqa-jakzal": { + "name": "phpqa - jakzal", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jakzal/phpqa", + "source": "https://github.com/jakzal/phpqa", + "pricing": null, + "plans": null, + "description": "Many tools for PHP static analysis in one container.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpqa-jmolivas": { + "name": "phpqa - jmolivas", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jmolivas/phpqa", + "source": "https://github.com/jmolivas/phpqa", + "pricing": null, + "plans": null, + "description": "PHPQA all-in-one Analyzer CLI tool.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpsa": { + "name": "phpsa", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ovr/phpsa", + "source": "https://github.com/ovr/phpsa", + "pricing": null, + "plans": null, + "description": "Static analysis tool for PHP.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "phpstan": { + "name": "PHPStan", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://phpstan.org", + "source": "https://github.com/phpstan/phpstan", + "pricing": null, + "plans": null, + "description": "PHP Static Analysis Tool - discover bugs in your code without running it!", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Measure PHP Code Quality With Static Analysis Using PHPStan", + "url": "https://www.youtube.com/watch?v=OiS2xGVWEa0" + } + ], + "reviews": null, + "demos": [ + "https://phpstan.org/try" + ], + "wrapper": null + }, + "pip-audit": { + "name": "pip-audit", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [ + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/pypa/pip-audit", + "source": "https://github.com/pypa/pip-audit", + "pricing": null, + "plans": null, + "description": "Tool for scanning Python packages for known vulnerabilities. Developed by the Python Packaging Authority (PyPA) and supported by Trail of Bits and Google. Scans Python environments and requirements files to identify vulnerable packages and suggests remediation. Supports GitHub Actions, pre-commit hooks, and multiple vulnerability service integrations.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pixee": { + "name": "Pixee", + "categories": [], + "languages": [ + "java", + "python" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://pixee.ai", + "source": null, + "pricing": "https://www.pixee.ai/pricing", + "plans": { + "free": true, + "oss": false + }, + "description": "Pixeebot finds security and code quality issues in your code and creates merge-ready pull requests with recommended fixes.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "plato": { + "name": "plato", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/es-analysis/plato", + "source": "https://github.com/es-analysis/plato", + "pricing": null, + "plans": null, + "description": "Visualize JavaScript source complexity.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pmd": { + "name": "PMD", + "categories": [ + "linter" + ], + "languages": [ + "apex", + "java", + "javascript", + "plsql", + "scala", + "visualforce" + ], + "other": [ + "xml" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://pmd.github.io", + "source": "https://github.com/pmd/pmd", + "pricing": null, + "plans": null, + "description": "A source code analyzer for Java, Salesforce Apex, Javascript, PLSQL, XML, XSL and others.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "polymer-analyzer": { + "name": "Polymer-analyzer", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [ + "html" + ], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Polymer/tools/tree/master/packages/analyzer", + "source": "https://github.com/Polymer/tools/tree/master/packages/analyzer", + "pricing": null, + "plans": null, + "description": "A static analysis framework for Web Components.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "polyspace-bug-finder": { + "name": "Polyspace Bug Finder", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.mathworks.com/products/polyspace-bug-finder.html", + "source": null, + "pricing": "https://www.mathworks.com/company/aboutus/contact_us/req_quote.html", + "plans": null, + "description": "Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "polyspace-code-prover": { + "name": "Polyspace Code Prover", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.mathworks.com/products/polyspace-code-prover.html", + "source": null, + "pricing": null, + "plans": null, + "description": "Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "polyspace-for-ada": { + "name": "Polyspace for Ada", + "categories": [ + "linter" + ], + "languages": [ + "ada" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.mathworks.com/products/polyspace-ada.html", + "source": null, + "pricing": null, + "plans": null, + "description": "Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "portlint": { + "name": "portlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "buildtool", + "make" + ], + "licenses": [ + "BSD License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports", + "source": "https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports", + "pricing": null, + "plans": null, + "description": "A verifier for FreeBSD and DragonFlyBSD port directories.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "postcss": { + "name": "PostCSS", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://postcss.org", + "source": "https://github.com/postcss/postcss", + "pricing": null, + "plans": null, + "description": "A tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "prae": { + "name": "prae", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/teenjuna/prae", + "source": "https://github.com/teenjuna/prae", + "pricing": null, + "plans": null, + "description": "Provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you specified. ", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pre-commit": { + "name": "pre-commit", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pre-commit.com", + "source": "https://github.com/pre-commit/pre-commit", + "pricing": null, + "plans": null, + "description": "A framework for managing and maintaining multi-language pre-commit hooks.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "prealloc": { + "name": "prealloc", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/alexkohler/prealloc", + "source": "https://github.com/alexkohler/prealloc", + "pricing": null, + "plans": null, + "description": "Finds slice declarations that could potentially be preallocated.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "precaution": { + "name": "Precaution", + "categories": [ + "linter" + ], + "languages": [ + "go", + "java", + "python" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "Business Source License 1.1" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://www.securesauce.dev/", + "source": "https://github.com/securesauce/precli", + "pricing": "https://www.securesauce.dev/", + "plans": { + "free": true, + "oss": true + }, + "description": "Precaution is a static analysis security tool (SAST) designed to find potentially critical vulnerabilities in source code prior to production. It is available as a CLI, GitHub Action, and GitHub App.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Introducing Precaution", + "url": "https://blog.securesauce.dev/introducing-precaution" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "prettier": { + "name": "Prettier", + "categories": [ + "formatter" + ], + "languages": [ + "javascript", + "typescript" + ], + "other": [ + "html" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://prettier.io", + "source": "https://github.com/prettier/prettier", + "pricing": null, + "plans": null, + "description": "An opinionated code formatter.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Code Formatting with Prettier in Visual Studio Code", + "url": "https://www.youtube.com/watch?v=h3PJjP0nE98" + }, + { + "title": "VSCode ESLint, Prettier & Airbnb Style Guide Setup", + "url": "https://www.youtube.com/watch?v=SydnKbGc7W8" + } + ], + "reviews": [ + "https://plugins.jetbrains.com/plugin/10456-prettier/reviews", + "https://stackshare.io/prettier", + "https://www.producthunt.com/products/prettier/reviews" + ], + "demos": [ + "https://prettier.io/playground" + ], + "wrapper": null + }, + "primitive-erlang-security-tool-pest": { + "name": "Primitive Erlang Security Tool (PEST)", + "categories": [ + "linter" + ], + "languages": [ + "erlang" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/okeuday/pest", + "source": "https://github.com/okeuday/pest", + "pricing": null, + "plans": null, + "description": "A tool to do a basic scan of Erlang source code and report any function calls that may cause Erlang source code to be insecure.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "progpilot": { + "name": "Progpilot", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/designsecurity/progpilot", + "source": "https://github.com/designsecurity/progpilot", + "pricing": null, + "plans": null, + "description": "A static analysis tool for security purposes.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "project-wallace-css-analyzer": { + "name": "Project Wallace CSS Analyzer", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.projectwallace.com", + "source": "https://github.com/projectwallace/css-analyzer", + "pricing": null, + "plans": null, + "description": "Analytics for CSS, part of [Project Wallace](https://www.projectwallace.com).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "promformat": { + "name": "promformat", + "categories": [ + "formatter" + ], + "languages": [], + "other": [ + "prometheus" + ], + "licenses": [ + "GPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/facetoe/promformat", + "source": "https://github.com/facetoe/promformat", + "pricing": null, + "plans": null, + "description": "Promformat is a PromQL formatter written in Python.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "promval": { + "name": "promval", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "prometheus" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/facetoe/promval", + "source": "https://github.com/facetoe/promval", + "pricing": null, + "plans": null, + "description": "PromQL validator written in Python. It can be used to validate that PromQL expressions are written as expected.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pronto": { + "name": "Pronto", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "elixir", + "java", + "javascript", + "php", + "ruby" + ], + "other": [ + "ci" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/prontolabs/pronto", + "source": "https://github.com/prontolabs/pronto", + "pricing": null, + "plans": null, + "description": "Quick automated code review of your changes. Supports more than 40 runners for various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "proselint": { + "name": "proselint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "BSD-3-Clause" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/amperser/proselint", + "source": "https://github.com/amperser/proselint", + "pricing": null, + "plans": null, + "description": "A linter for English prose with a focus on writing style instead of grammar.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "prospector": { + "name": "prospector", + "categories": [ + "meta" + ], + "languages": [ + "python" + ], + "other": [ + "meta" + ], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/PyCQA/prospector", + "source": "https://github.com/PyCQA/prospector", + "pricing": null, + "plans": null, + "description": "A wrapper around `pylint`, `pep8`, `mccabe` and others.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "protolint": { + "name": "protolint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "protobuf" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/yoheimuta/protolint", + "source": "https://github.com/yoheimuta/protolint", + "pricing": null, + "plans": null, + "description": "Pluggable linter and fixer to enforce Protocol Buffer style and conventions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "prusti": { + "name": "Prusti", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://www.pm.inf.ethz.ch/research/prusti.html", + "source": "https://github.com/viperproject/prusti-dev", + "pricing": null, + "plans": null, + "description": "A static verifier for Rust, based on the Viper verification infrastructure. By default Prusti verifies absence of panics by proving that statements such as unreachable!() and panic!() are unreachable.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "psalm": { + "name": "Psalm", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://psalm.dev", + "source": "https://github.com/vimeo/psalm", + "pricing": null, + "plans": null, + "description": "Static analysis tool for finding type errors in PHP applications.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Try it Tuesday - PHP Static Analysis Tool Psalm", + "url": "https://www.youtube.com/watch?v=ZxXw5Fkp9R8" + } + ], + "reviews": null, + "demos": [ + "https://psalm.dev/r/dcb13e702f" + ], + "wrapper": null + }, + "pt-application-inspector": { + "name": "PT Application Inspector", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.ptsecurity.com", + "source": null, + "pricing": null, + "plans": null, + "description": "Identifies code flaws and detects vulnerabilities to prevent web attacks. Demonstrates remote code execution by presenting possible exploits.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Introduction video", + "url": "https://www.youtube.com/watch?v=gtFH6tV2dlM" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "pt-pm": { + "name": "PT.PM", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "java", + "javascript", + "php", + "plsql", + "tsql" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/PositiveTechnologies/PT.PM", + "source": "https://github.com/PositiveTechnologies/PT.PM", + "pricing": null, + "plans": null, + "description": "An engine for searching patterns in the source code, based on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, and JavaScript are supported. Patterns can be described within the code or using a DSL.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pullrequest": { + "name": "PullRequest", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.hackerone.com/product/code", + "source": null, + "pricing": null, + "plans": null, + "description": "Code review as a service with built-in static analysis. Increase velocity and reduce technical debt through quality code review by expert engineers backed by best-in-class automation.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "puma-scan": { + "name": "Puma Scan", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "Mozilla Public License 2.0" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://pumasecurity.io", + "source": "https://github.com/pumasecurity/puma-scan", + "pricing": null, + "plans": null, + "description": "Puma Scan provides real time secure code analysis for common vulnerabilities (XSS, SQLi, CSRF, LDAPi, crypto, deserialization, etc.) as development teams write code in Visual Studio.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "puppet-lint": { + "name": "Puppet Lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rodjek/puppet-lint", + "source": "https://github.com/rodjek/puppet-lint", + "pricing": null, + "plans": null, + "description": "Check that your Puppet manifests conform to the style guide.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pure": { + "name": "pure", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "archive" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ronomon/pure", + "source": "https://github.com/ronomon/pure", + "pricing": null, + "plans": null, + "description": "Pure is a static analysis file format checker that checks ZIP files for dangerous compression ratios, spec deviations, malicious archive signatures, mismatching local and central directory headers, ambiguous UTF-8 filenames, directory and symlink traversals, invalid MS-DOS dates, overlapping headers, overflow, underflow, sparseness, accidental buffer bleeds etc.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "putout": { + "name": "Putout", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "jsx", + "typescript" + ], + "other": [ + "css", + "json", + "markdown", + "yaml" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/coderaiser/putout", + "source": "https://github.com/coderaiser/putout", + "pricing": null, + "plans": null, + "description": "Pluggable and configurable code transformer with built-in eslint, babel plugins support for js, jsx typescript, flow, markdown, yaml and json.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pvs-studio": { + "name": "PVS-Studio", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "java" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://pvs-studio.com", + "source": null, + "pricing": "https://pvs-studio.com/en/order/license/", + "plans": null, + "description": "A ([conditionally free](https://pvs-studio.com/en/order/open-source-license) for FOSS and individual developers) static analysis of C, C++, C# and Java code. For advertising purposes [you can propose a large FOSS project for analysis by PVS employees](https://github.com/viva64/pvs-studio-check-list). Supports CWE mapping, OWASP ASVS, MISRA, AUTOSAR and SEI CERT coding standards.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "PVS-Studio is now in Compiler Explorer!", + "url": "https://www.youtube.com/watch?v=hw5npZqB3b8" + }, + { + "title": "PVS-Studio in 2019", + "url": "https://www.youtube.com/watch?v=FkfMGqxIR-I" + }, + { + "title": "Static Analysis in C++ (mostly about PVS-Studio)", + "url": "https://www.youtube.com/watch?v=vYW6TOwFK2M" + } + ], + "reviews": [ + "https://www.g2.com/products/pvs-studio/reviews", + "https://www.gartner.com/reviews/market/application-security-testing/vendor/pvs-studio/product/pvs-studio" + ], + "demos": null, + "wrapper": null + }, + "py-find-injection": { + "name": "py-find-injection", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/uber/py-find-injection", + "source": "https://github.com/uber/py-find-injection", + "pricing": null, + "plans": null, + "description": "Find SQL injection vulnerabilities in Python code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyanalyze": { + "name": "pyanalyze", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://pyanalyze.readthedocs.io/en/latest/", + "source": "https://github.com/quora/pyanalyze", + "pricing": null, + "plans": null, + "description": "A tool for programmatically detecting common mistakes in Python code, such as references to undefined variables and type errors. It can be extended to add additional rules and perform checks specific to particular functions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pycodestyle": { + "name": "pycodestyle", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://pycodestyle.pycqa.org/en/latest", + "source": "https://github.com/PyCQA/pycodestyle", + "pricing": null, + "plans": null, + "description": "(Formerly `pep8`) Check Python code against some of the style conventions in PEP 8.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pydocstyle": { + "name": "pydocstyle", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://www.pydocstyle.org", + "source": "https://github.com/PyCQA/pydocstyle", + "pricing": null, + "plans": null, + "description": "Check compliance with Python docstring conventions.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyflakes": { + "name": "pyflakes", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.org/project/pyflakes", + "source": "https://github.com/pyflakes/pyflakes", + "pricing": null, + "plans": null, + "description": "Check Python source files for errors.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pylama": { + "name": "pylama", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "python" + ], + "other": [ + "meta" + ], + "licenses": [ + "LGPL-3.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://klen.github.io/pylama/", + "source": "https://github.com/klen/pylama", + "pricing": null, + "plans": null, + "description": "Code audit tool for Python and JavaScript. Wraps pycodestyle, pydocstyle, PyFlakes, Mccabe, Pylint, and more", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pylint": { + "name": "pylint", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "http://pylint.pycqa.org/en/latest", + "source": "https://github.com/PyCQA/pylint", + "pricing": null, + "plans": null, + "description": "Looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. It additionally includes `pyreverse` (an UML diagram generator) and `symilar` (a similarities checker).", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Pylint Tutorial – How to Write Clean Python", + "url": "https://www.youtube.com/watch?v=fFY5103p5-c" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "pylyzers": { + "name": "pylyzers", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://mtshiba.github.io/pylyzer/", + "source": "https://github.com/mtshiba/pylyzer", + "pricing": null, + "plans": null, + "description": "A static code analyzer / language server for Python, written in Rust, focused on type checking and readable output.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyra": { + "name": "Pyra", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MPL-2.0 license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/spangea/Pyra", + "source": "https://github.com/spangea/Pyra", + "pricing": null, + "plans": null, + "description": "Pyra is a high-level linter static analyzer for data science applications written in Python, that helps developers identify potential issues in their data science code written in Python, as an extension of [Lyra](https://github.com/caterinaurban/Lyra).", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Demo", + "url": "https://www.youtube.com/watch?v=D-AsyuhsTyo" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyre-check": { + "name": "pyre-check", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pyre-check.org", + "source": "https://github.com/facebook/pyre-check", + "pricing": null, + "plans": null, + "description": "A fast, scalable type checker for large Python codebases. Pyre-check has been superseded by Pyrefly, its next iteration.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyrefly": { + "name": "pyrefly", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pyrefly.org/", + "source": "https://github.com/facebook/pyrefly", + "pricing": null, + "plans": null, + "description": "A fast, incremental type checker and language server for Python, providing IDE features like code navigation, semantic highlighting, and code completion.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyright": { + "name": "pyright", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Microsoft/pyright", + "source": "https://github.com/Microsoft/pyright", + "pricing": null, + "plans": null, + "description": "Static type checker for Python, created to address gaps in existing tools like mypy.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyroma": { + "name": "pyroma", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/regebro/pyroma", + "source": "https://github.com/regebro/pyroma", + "pricing": null, + "plans": null, + "description": "Rate how well a Python project complies with the best practices of the Python packaging ecosystem, and list issues that could be improved.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pysa": { + "name": "Pysa", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pyre-check.org/docs/pysa-basics.html", + "source": "https://github.com/facebook/pyre-check", + "pricing": null, + "plans": null, + "description": "A tool based on Facebook's pyre-check to identify potential security issues in Python code identified with taint analysis.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Workshop: Graham Bleaney - Pysa to Identify Python Vulnerabilities - DEF CON 28SM AppSec Village", + "url": "https://www.youtube.com/watch?v=8I3zlvtpOww" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyt-python-taint": { + "name": "PyT - Python Taint", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/python-security/pyt", + "source": "https://github.com/python-security/pyt", + "pricing": null, + "plans": null, + "description": "A static analysis tool for detecting security vulnerabilities in Python web applications.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pytype": { + "name": "pytype", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://google.github.io/pytype", + "source": "https://github.com/google/pytype", + "pricing": null, + "plans": null, + "description": "A static type analyzer for Python code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "pyupgrade": { + "name": "pyupgrade", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://pypi.org/project/pyupgrade-docs/", + "source": "https://github.com/asottile/pyupgrade", + "pricing": null, + "plans": null, + "description": "A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Python linter comparison 2022.", + "url": "https://inventwithpython.com/blog/2022/11/19/python-linter-comparison-2022-pylint-vs-pyflakes-vs-flake8-vs-autopep8-vs-bandit-vs-prospector-vs-pylama-vs-pyroma-vs-black-vs-mypy-vs-radon-vs-mccabe/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "qafoo-quality-analyzer": { + "name": "Qafoo Quality Analyzer", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "GNU Affero General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Qafoo/QualityAnalyzer", + "source": "https://github.com/Qafoo/QualityAnalyzer", + "pricing": null, + "plans": null, + "description": "Visualizes metrics and source code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "qark": { + "name": "qark", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/linkedin/qark", + "source": "https://github.com/linkedin/qark", + "pricing": null, + "plans": null, + "description": "Tool to look for several security related Android application vulnerabilities.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "quality": { + "name": "quality", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "ci" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/apiology/quality", + "source": "https://github.com/apiology/quality", + "pricing": null, + "plans": null, + "description": "Runs quality checks on your code using community tools, and makes sure your numbers don't get any worse over time.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "qualys-container-security": { + "name": "Qualys Container Security", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.qualys.com/apps/container-security", + "source": null, + "pricing": "https://www.qualys.com/free-trial/", + "plans": null, + "description": "Container native application protection to provide visibility and control of containerized applications.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "quantifiedcode": { + "name": "QuantifiedCode", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "service" + ], + "homepage": "https://github.com/quantifiedcode/quantifiedcode", + "source": "https://github.com/quantifiedcode/quantifiedcode", + "pricing": null, + "plans": null, + "description": "Automated code review & repair. It helps you to keep track of issues and metrics in your software projects, and can be easily extended to support new types of analyses.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "querly": { + "name": "Querly", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/soutaro/querly", + "source": "https://github.com/soutaro/querly", + "pricing": null, + "plans": null, + "description": "Pattern Based Checking Tool for Ruby.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "qulice": { + "name": "qulice", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://www.qulice.com", + "source": "https://github.com/teamed/qulice", + "pricing": null, + "plans": null, + "description": "Combines a few (pre-configured) static analysis tools (checkstyle, PMD, Findbugs, ...).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "qwiet-ai": { + "name": "Qwiet AI", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "go", + "java", + "javascript", + "jsp", + "python", + "scala" + ], + "other": [ + "configmanagement", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://qwiet.ai/", + "source": null, + "pricing": "https://www.shiftleft.io/pricing", + "plans": null, + "description": "Identify vulnerabilities that are unique to your code base before they reach production. Leverages the Code Property Graph (CPG) to run its analyses concurrently in a single graph of graphs. Automatically finds business logic flaws in dev like hardcoded secrets and logic bombs", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Securing Every Pull Request with ShiftLeft", + "url": "https://vimeo.com/383381584" + }, + { + "title": "ShiftLeft Intro", + "url": "https://vimeo.com/233423863" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "r-language-server": { + "name": "R Language Server", + "categories": [ + "linter" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "MIT + file LICENSE" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/REditorSupport/languageserver/", + "source": "https://github.com/REditorSupport/languageserver/", + "pricing": null, + "plans": null, + "description": "Provides code completion, refactoring, folding, diagnostics (with lintr), and more for R.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "radon": { + "name": "radon", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://radon.readthedocs.io/en/latest", + "source": "https://github.com/rubik/radon", + "pricing": null, + "plans": null, + "description": "A Python tool that computes various metrics from the source code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "railroader": { + "name": "Railroader", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://railroader.org", + "source": "https://github.com/david-a-wheeler/railroader", + "pricing": null, + "plans": null, + "description": "An open source static analysis security vulnerability scanner for Ruby on Rails applications.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rails-best-practices": { + "name": "rails_best_practices", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://rails-bestpractices.com", + "source": "https://github.com/flyerhzm/rails_best_practices", + "pricing": null, + "plans": null, + "description": "A code metric tool for Rails projects", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rco": { + "name": "rco", + "categories": [ + "performance" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "GPL-3" + ], + "types": [ + "cli" + ], + "homepage": "https://jcrodriguez1989.github.io/rco/", + "source": "https://github.com/jcrodriguez1989/rco", + "pricing": null, + "plans": null, + "description": "Performance optimizer for R code (with GUI).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rector": { + "name": "rector", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://getrector.org", + "source": "https://github.com/rectorphp/rector", + "pricing": null, + "plans": null, + "description": "Instant Upgrades and Automated Refactoring of any PHP 5.3+ code. It upgrades your code for PHP 7.4, 8.0 and beyond. Rector promises a low false-positive rate because it looks for narrowly defined AST (abstract syntax tree) patterns. The main use-case are tackling technical debt in your legacy code and removing dead code. Rector provides a set of special rules for Symfony, Doctrine, PHPUnit, and many more.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Rector: Install & Setup ", + "url": "https://www.youtube.com/watch?v=_Uk95vG3ezQ" + } + ], + "reviews": null, + "demos": [ + "https://getrector.com/demo" + ], + "wrapper": null + }, + "redex": { + "name": "redex", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "mobile" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://fbredex.com", + "source": "https://github.com/facebook/redex", + "pricing": null, + "plans": null, + "description": "Redex provides a framework for reading, writing, and analyzing .dex files, and a set of optimization passes that use this framework to improve the bytecode. An APK optimized by Redex should be smaller and faster.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "droidcon SF 2017 - Redex, Your Build, And You", + "url": "https://www.youtube.com/watch?v=vtxJvJj6gSE" + }, + { + "title": "Optimizing Android bytecode with ReDex", + "url": "https://engineering.fb.com/android/optimizing-android-bytecode-with-redex/" + }, + { + "title": "", + "url": "https://www.youtube.com/watch?v=h_Gkl5eAdc4" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "reek": { + "name": "reek", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/troessner/reek", + "source": "https://github.com/troessner/reek", + "pricing": null, + "plans": null, + "description": "Code smell detector for Ruby.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "refactorfirst": { + "name": "RefactorFirst", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [ + "ci", + "support" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jimbethancourt/RefactorFirst", + "source": "https://github.com/jimbethancourt/RefactorFirst", + "pricing": null, + "plans": null, + "description": "Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "refactoring-essentials": { + "name": "Refactoring Essentials", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "vbnet" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.RefactoringEssentialsforVisualStudio", + "source": "https://github.com/icsharpcode/RefactoringEssentials", + "pricing": null, + "plans": null, + "description": "The free Visual Studio 2015 extension for C# and VB.NET refactorings, including code best practice analyzers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "reflection": { + "name": "Reflection", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/phpDocumentor/Reflection", + "source": "https://github.com/phpDocumentor/Reflection", + "pricing": null, + "plans": null, + "description": "Reflection library to do Static Analysis for PHP Projects", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "refurb": { + "name": "refurb", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "GPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dosisod/refurb", + "source": "https://github.com/dosisod/refurb", + "pricing": null, + "plans": null, + "description": "A tool for refurbishing and modernizing Python codebases. Refurb is heavily inspired by clippy, the built-in linter for Rust.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "regal": { + "name": "Regal", + "categories": [ + "linter" + ], + "languages": [ + "rego" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/styrainc/regal", + "source": "https://github.com/styrainc/regal", + "pricing": null, + "plans": null, + "description": "Regal is a linter for the policy language Rego. Regal aims to catch bugs and mistakes in policy code, while at the same time helping people learn the language, best practices and idiomatic constructs.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Guarding the Guardrails — Introducing Regal, the Rego Linter", + "url": "https://www.styra.com/blog/guarding-the-guardrails-introducing-regal-the-rego-linter" + }, + { + "title": "Regal the Rego Linter, CNCF London meetup, June 2023 (video)", + "url": "https://www.youtube.com/watch?v=Xx8npd2TQJ0&t=2567s" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "relint": { + "name": "relint", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "c", + "cpp", + "java", + "javascript", + "jsx", + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/codingjoe/relint", + "source": "https://github.com/codingjoe/relint", + "pricing": null, + "plans": null, + "description": "A static file linter that allows you to write custom rules using regular expressions (RegEx).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "remark-lint": { + "name": "remark-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "markdown" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://remark.js.org", + "source": "https://github.com/remarkjs/remark-lint", + "pricing": null, + "plans": null, + "description": "Pluggable Markdown code style linter written in JavaScript.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "resharper": { + "name": "ReSharper", + "categories": [ + "linter" + ], + "languages": [ + "asp", + "csharp", + "javascript", + "typescript", + "vbnet" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.jetbrains.com/resharper", + "source": null, + "pricing": "https://www.jetbrains.com/buy", + "plans": null, + "description": "Extends Visual Studio with on-the-fly code inspections for C#, VB.NET, ASP.NET, JavaScript, TypeScript and other technologies.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "retire-js": { + "name": "retire.js", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://retirejs.github.io/retire.js", + "source": "https://github.com/RetireJS/retire.js", + "pricing": null, + "plans": null, + "description": "Scanner detecting the use of JavaScript libraries with known vulnerabilities.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rev-dep": { + "name": "Rev-dep", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "jsx", + "typescript" + ], + "other": [ + "ci" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jayu/rev-dep", + "source": "https://github.com/jayu/rev-dep", + "pricing": null, + "plans": null, + "description": "Dependency analysis and optimization toolkit for modern JavaScript and TypeScript projects. Trace imports, identify circular dependencies, find unused code, clean node modules.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Install via NPM", + "url": "https://www.npmjs.com/package/rev-dep" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "reviewdog": { + "name": "Reviewdog", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [ + "ci" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/haya14busa/reviewdog", + "source": "https://github.com/haya14busa/reviewdog", + "pricing": null, + "plans": null, + "description": "A tool for posting review comments from any linter in any code hosting service.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "revive": { + "name": "revive", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://revive.run", + "source": "https://github.com/mgechev/revive", + "pricing": null, + "plans": null, + "description": "Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rhabdomancer": { + "name": "rhabdomancer", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://crates.io/crates/rhabdomancer", + "source": "https://github.com/0xdea/rhabdomancer", + "pricing": null, + "plans": null, + "description": "IDA Pro headless plugin that locates calls to potentially insecure API functions in a binary file.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Streamlining Vulnerability Research with the idalib Rust Bindings for IDA 9.2", + "url": "https://hex-rays.com/blog/streamlining-vulnerability-research-idalib-rust-bindings" + }, + { + "title": "Streamlining vulnerability research with IDA Pro and Rust", + "url": "https://hnsecurity.it/blog/streamlining-vulnerability-research-with-ida-pro-and-rust" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "rips": { + "name": "RIPS", + "categories": [ + "linter" + ], + "languages": [ + "java", + "php" + ], + "other": [ + "nodejs" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.ripstech.com", + "source": null, + "pricing": "https://sonarsource.com/plans-and-pricing/", + "plans": null, + "description": "A static source code analyser for vulnerabilities in PHP scripts.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "roodi": { + "name": "Roodi", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/roodi/roodi", + "source": "https://github.com/roodi/roodi", + "pricing": null, + "plans": null, + "description": "Roodi stands for Ruby Object Oriented Design Inferometer. It parses your Ruby code and warns you about design issues you have based on the checks that it has configured.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "roslyn-analyzers": { + "name": "Roslyn Analyzers", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "csharp" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dotnet/roslyn-analyzers", + "source": "https://github.com/dotnet/roslyn-analyzers", + "pricing": null, + "plans": null, + "description": "Roslyn-based implementation of FxCop analyzers.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "roslyn-security-guard": { + "name": "Roslyn Security Guard", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "vbnet" + ], + "other": [], + "licenses": [ + "GNU Lesser General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://security-code-scan.github.io", + "source": "https://github.com/security-code-scan/security-code-scan", + "pricing": null, + "plans": null, + "description": "Project that focuses on the identification of potential vulnerabilities such as SQL injection, cross-site scripting (XSS), CSRF, cryptography weaknesses, hardcoded passwords and many more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "roslynator": { + "name": "Roslynator", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/JosefPihrt/Roslynator", + "source": "https://github.com/JosefPihrt/Roslynator", + "pricing": null, + "plans": null, + "description": "A collection of 190+ analyzers and 190+ refactorings for C#, powered by Roslyn.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rpmlint": { + "name": "rpmlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "package" + ], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rpm-software-management/rpmlint", + "source": "https://github.com/rpm-software-management/rpmlint", + "pricing": null, + "plans": null, + "description": "Tool for checking common errors in rpm packages.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rslint": { + "name": "RSLint", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://rslint.org/", + "source": "https://github.com/RDambrosio016/RSLint", + "pricing": null, + "plans": null, + "description": "A (WIP) JavaScript linter written in Rust designed to be as fast as possible, customizable, and easy to use.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rubocop": { + "name": "RuboCop", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://docs.rubocop.org/rubocop", + "source": "https://github.com/rubocop-hq/rubocop", + "pricing": null, + "plans": null, + "description": "A Ruby static code analyzer, based on the community Ruby style guide.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Ruby Code Linting with RuboCop", + "url": "https://www.youtube.com/watch?v=sfOGjcMVQ9U" + } + ], + "reviews": [ + "https://stackshare.io/rubocop" + ], + "demos": null, + "wrapper": null + }, + "rubrowser": { + "name": "Rubrowser", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/blazeeboy/rubrowser", + "source": "https://github.com/blazeeboy/rubrowser", + "pricing": null, + "plans": null, + "description": "Ruby classes interactive dependency graph generator.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ruby-lint": { + "name": "ruby-lint", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "Mozilla Public License, version 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://gitlab.com/yorickpeterse/ruby-lint", + "source": "https://gitlab.com/yorickpeterse/ruby-lint", + "pricing": null, + "plans": null, + "description": "Static code analysis for Ruby.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rubycritic": { + "name": "rubycritic", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/whitesmith/rubycritic", + "source": "https://github.com/whitesmith/rubycritic", + "pricing": null, + "plans": null, + "description": "A Ruby code quality reporter.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rudra": { + "name": "Rudra", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sslab-gatech/Rudra", + "source": "https://github.com/sslab-gatech/Rudra", + "pricing": null, + "plans": null, + "description": "Rust Memory Safety & Undefined Behavior Detection. It is capable of analyzing single Rust packages as well as all the packages on crates.io.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ruff": { + "name": "ruff", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://astral.sh/ruff", + "source": "https://github.com/charliermarsh/ruff", + "pricing": null, + "plans": null, + "description": "Fast Python linter, written in Rust. 10-100x faster than existing linters. Compatible with Python 3.10. Supports file watcher.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Python tooling could be much, much faster (announcement)", + "url": "https://notes.crmarsh.com/python-tooling-could-be-much-much-faster" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "rufo": { + "name": "rufo", + "categories": [ + "formatter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ruby-formatter/rufo", + "source": "https://github.com/ruby-formatter/rufo", + "pricing": null, + "plans": null, + "description": "An opinionated ruby formatter, intended to be used via the command line as a text-editor plugin, to autoformat files on save or on demand.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rust-analyzer": { + "name": "rust-analyzer", + "categories": [ + "formatter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://rust-analyzer.github.io", + "source": "https://github.com/rust-analyzer/rust-analyzer", + "pricing": null, + "plans": null, + "description": "Supports functionality such as 'goto definition', type inference, symbol search, reformatting, and code completion, and enables renaming and refactorings.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rust-audit": { + "name": "rust-audit", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [ + "binary" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Shnatsel/rust-audit", + "source": "https://github.com/Shnatsel/rust-audit", + "pricing": null, + "plans": null, + "description": "Audit Rust binaries for known bugs or security vulnerabilities. This works by embedding data about the dependency tree (Cargo.lock) in JSON format into a dedicated linker section of the compiled executable.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rust-language-server": { + "name": "Rust Language Server", + "categories": [ + "formatter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/rust-lang-nursery/rls", + "source": "https://github.com/rust-lang-nursery/rls", + "pricing": null, + "plans": null, + "description": "Supports functionality such as 'goto definition', symbol search, reformatting, and code completion, and enables renaming and refactorings.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rustfix": { + "name": "rustfix", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rust-lang/rustfix", + "source": "https://github.com/rust-lang/rustfix", + "pricing": null, + "plans": null, + "description": "Read and apply the suggestions made by rustc (and third-party lints, like those offered by clippy).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rustfmt": { + "name": "rustfmt", + "categories": [ + "formatter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "Apache License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rust-lang/rustfmt", + "source": "https://github.com/rust-lang/rustfmt", + "pricing": null, + "plans": null, + "description": "A tool for formatting Rust code according to style guidelines.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "rustviz": { + "name": "RustViz", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rustviz/rustviz", + "source": "https://github.com/rustviz/rustviz", + "pricing": null, + "plans": null, + "description": "RustViz is a tool that generates visualizations from simple Rust programs to assist users in better understanding the Rust Lifetime and Borrowing mechanism. It generates SVG files with graphical indicators that integrate with mdbook to render visualizations of data-flow in Rust programs.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "safeql": { + "name": "SafeQL", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "sql", + "typescript" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://safeql.dev", + "source": "https://github.com/ts-safeql/safeql", + "pricing": null, + "plans": null, + "description": "Validate and auto-generate TypeScript types from raw SQL queries in PostgreSQL. SafeQL is an ESLint plugin for writing SQL queries in a type-safe way.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "safesql": { + "name": "safesql", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/stripe/safesql", + "source": "https://github.com/stripe/safesql", + "pricing": null, + "plans": null, + "description": "Static analysis tool for Golang that protects against SQL injections.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "safety": { + "name": "Safety", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [ + "security" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://safetycli.com/", + "source": "https://github.com/pyupio/safety", + "pricing": null, + "plans": null, + "description": "Python dependency vulnerability scanner designed to enhance software supply chain security by detecting packages with known vulnerabilities. Checks Python dependencies against a database of known security vulnerabilities and provides detailed reports. Supports CI/CD integration and multiple output formats.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "saikuro": { + "name": "Saikuro", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "BSD License" + ], + "types": [ + "cli" + ], + "homepage": "https://metricfu.github.io/Saikuro", + "source": "https://github.com/metricfu/Saikuro", + "pricing": null, + "plans": null, + "description": "A Ruby cyclomatic complexity analyzer.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sandimeter": { + "name": "SandiMeter", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://rubygems.org/gems/sandi_meter", + "source": "https://github.com/makaroni4/sandi_meter", + "pricing": null, + "plans": null, + "description": "Static analysis tool for checking Ruby code for Sandi Metz' rules.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sass-lint": { + "name": "sass-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sasstools/sass-lint", + "source": "https://github.com/sasstools/sass-lint", + "pricing": null, + "plans": null, + "description": "A Node-only Sass linter for both sass and scss syntax.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sast-online": { + "name": "SAST Online", + "categories": [ + "linter" + ], + "languages": [ + "dart", + "java", + "kotlin" + ], + "other": [ + "mobile", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://sast.online/", + "source": "https://sast.online/", + "pricing": "https://sast.online/pricing", + "plans": { + "free": true + }, + "description": "Check the Android Source code thoroughly to uncover and address potential security concerns and vulnerabilities. Static application security testing (Static Code Analysis) tool Online", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "scalastyle": { + "name": "Scalastyle", + "categories": [ + "linter" + ], + "languages": [ + "scala" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "http://www.scalastyle.org", + "source": "https://github.com/scalastyle/scalastyle", + "pricing": null, + "plans": null, + "description": "Scalastyle examines your Scala code and indicates potential problems with it.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "scan-build": { + "name": "scan-build", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Apache License v2.0 with LLVM Exceptions" + ], + "types": [ + "cli" + ], + "homepage": "https://clang-analyzer.llvm.org/scan-build.html", + "source": "https://clang-analyzer.llvm.org/scan-build.html", + "pricing": null, + "plans": null, + "description": "Frontend to drive the Clang Static Analyzer built into Clang via a regular build.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "scapegoat": { + "name": "scapegoat", + "categories": [ + "linter" + ], + "languages": [ + "scala" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sksamuel/scapegoat", + "source": "https://github.com/sksamuel/scapegoat", + "pricing": null, + "plans": null, + "description": "Scala compiler plugin for static code analysis.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "scorecard": { + "name": "scorecard", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ossf/scorecard", + "source": "https://github.com/ossf/scorecard", + "pricing": null, + "plans": null, + "description": "Security Scorecards - Security health metrics for Open Source", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "scrutinizer": { + "name": "Scrutinizer", + "categories": [ + "linter" + ], + "languages": [ + "go", + "java", + "javascript", + "php", + "python", + "ruby", + "typescript" + ], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://scrutinizer-ci.com", + "source": null, + "pricing": "https://scrutinizer-ci.com/pricing", + "plans": { + "free": false, + "oss": true + }, + "description": "A proprietary code quality checker that can be integrated with GitHub.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "scsslint": { + "name": "scsslint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/brigade/scss-lint", + "source": "https://github.com/brigade/scss-lint", + "pricing": null, + "plans": null, + "description": "Linter for SCSS files.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "security-code-scan": { + "name": "Security Code Scan", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "java", + "php", + "vbnet" + ], + "other": [], + "licenses": [ + "GNU Lesser General Public License v3.0" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://security-code-scan.github.io", + "source": "https://github.com/security-code-scan/security-code-scan", + "pricing": null, + "plans": null, + "description": "Security code analyzer for C# and VB.NET. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates into Visual Studio 2015 and newer. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "semgrep": { + "name": "Semgrep", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "go", + "java", + "javascript", + "jsx", + "ocaml", + "php", + "python", + "ruby", + "typescript" + ], + "other": [ + "configmanagement", + "ci", + "dockerfile", + "json", + "kubernetes", + "nodejs", + "rails", + "security", + "terraform", + "yaml" + ], + "licenses": [ + "GNU Lesser General Public License v2.1" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://semgrep.dev", + "source": "https://github.com/returntocorp/semgrep", + "pricing": null, + "plans": null, + "description": "A fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor, commit, and CI time. Its rules look like the code you already write; no abstract syntax trees or regex wrestling. Supports 17+ languages.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Semgrep Quick Start Tutorial", + "url": "https://www.youtube.com/watch?v=8jyp8DkhmYo" + }, + { + "title": "Semgrep presentation by r2c at Bay Area OWASP Meetup", + "url": "https://www.youtube.com/watch?v=pul1bRIOYc8" + } + ], + "reviews": [ + "https://stackshare.io/semgrep" + ], + "demos": [ + "https://semgrep.dev/playground" + ], + "wrapper": null + }, + "semgrep-supply-chain": { + "name": "Semgrep Supply Chain", + "categories": [ + "linter" + ], + "languages": [ + "go", + "java", + "javascript", + "python", + "ruby", + "typescript" + ], + "other": [ + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://semgrep.dev/products/semgrep-supply-chain", + "source": null, + "pricing": null, + "plans": null, + "description": "Quickly find and remediate high-priority security issues. Semgrep Supply Chain prioritizes the 2% of vulnerabilities that are reachable from your code.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Reachability analysis in Semgrep Supply Chain", + "url": "https://www.youtube.com/watch?v=dzmiQXhVMAw" + }, + { + "title": "It's time to ignore 98% of dependency alerts", + "url": "https://r2c.dev/blog/2022/introducing-semgrep-supply-chain/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "seqra": { + "name": "Seqra", + "categories": [ + "linter" + ], + "languages": [ + "java", + "kotlin" + ], + "other": [ + "ci", + "security", + "spring", + "yaml" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://seqra.dev", + "source": "https://github.com/seqra/seqra", + "pricing": null, + "plans": null, + "description": "Security-focused static analyzer for Java and Kotlin web applications. Analyzes bytecode with Semgrep-style YAML rules and CodeQL-grade dataflow (with first-class Spring support) to find vulnerabilities that source-only scanners miss.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Static Analysis Showdown: How Semgrep, CodeQL, and Seqra Handle XSS Detection", + "url": "https://seqra.dev/blog/semgrep-vs-codeql-vs-seqra" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "sh": { + "name": "sh", + "categories": [ + "linter" + ], + "languages": [ + "shell" + ], + "other": [], + "licenses": [ + "BSD-3-Clause License" + ], + "types": [ + "cli" + ], + "homepage": "https://pkg.go.dev/mvdan.cc/sh/v3", + "source": "https://github.com/mvdan/sh", + "pricing": null, + "plans": null, + "description": "A shell parser, formatter, and interpreter with bash support; includes shfmt", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "shellcheck": { + "name": "shellcheck", + "categories": [ + "linter" + ], + "languages": [ + "shell" + ], + "other": [], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.shellcheck.net", + "source": "https://github.com/koalaman/shellcheck", + "pricing": null, + "plans": null, + "description": "ShellCheck, a static analysis tool that gives warnings and suggestions for bash/sh shell scripts.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "shellharden": { + "name": "shellharden", + "categories": [ + "linter" + ], + "languages": [ + "shell" + ], + "other": [], + "licenses": [ + "MPL-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/anordal/shellharden", + "source": "https://github.com/anordal/shellharden", + "pricing": null, + "plans": null, + "description": "A syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "shiftleft-scan": { + "name": "ShiftLeft Scan", + "categories": [ + "linter" + ], + "languages": [ + "apex", + "go", + "groovy", + "java", + "jsp", + "kotlin", + "php", + "plsql", + "python", + "ruby", + "rust", + "scala", + "shell", + "vbasic" + ], + "other": [ + "configmanagement", + "container", + "json", + "nodejs", + "yaml" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://github.com/ShiftLeftSecurity/sast-scan", + "source": "https://github.com/ShiftLeftSecurity/sast-scan", + "pricing": null, + "plans": null, + "description": "Scan is a free open-source DevSecOps platform for detecting security issues in source code and dependencies. It supports a broad range of languages and CI/CD pipelines. Note: ShiftLeft rebranded to Qwiet AI in 2023, which was subsequently acquired by Harness in September 2025. This open-source project is no longer maintained.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "shipshape": { + "name": "shipshape", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "php" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/google/shipshape", + "source": "https://github.com/google/shipshape", + "pricing": null, + "plans": null, + "description": "Static program analysis platform that allows custom analyzers to plug in through a common interface.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "shisho": { + "name": "shisho", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [ + "terraform" + ], + "licenses": [ + "AGPL-3.0" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://github.com/flatt-security/shisho", + "source": "https://github.com/flatt-security/shisho", + "pricing": null, + "plans": null, + "description": "A lightweight static code analyzer designed for developers and security teams. It allows you to analyze and transform source code with an intuitive DSL similar to sed, but for code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sigrid": { + "name": "Sigrid", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "delphi", + "go", + "groovy", + "java", + "javascript", + "kotlin", + "lua", + "objectivec", + "perl", + "php", + "plsql", + "powershell", + "python", + "r", + "ruby", + "rust", + "scala", + "shell", + "sql", + "swift", + "typescript", + "vbnet" + ], + "other": [ + "nodejs", + "vue" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://www.softwareimprovementgroup.com/solutions/sigrid-software-assurance-platform/", + "source": null, + "pricing": "https://www.softwareimprovementgroup.com/contact/", + "plans": { + "free": false, + "oss": false + }, + "description": "Sigrid helps you to improve your software by measuring your system's code quality, and then compares the results against a benchmark of thousands of industry systems to give you concrete advice on areas where you can improve.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Sigrid Security | Security without headache", + "url": "https://www.youtube.com/watch?v=mpQxzdv4oc8" + }, + { + "title": "Sigrid Open Source Health module", + "url": "https://www.youtube.com/watch?v=UvhV9dyXWIU" + } + ], + "reviews": [ + "https://www.capterra.com/p/219140/Sigrid/" + ], + "demos": null, + "wrapper": null + }, + "similarity-tester": { + "name": "Similarity Tester", + "categories": [ + "linter" + ], + "languages": [ + "asm", + "c", + "cpp", + "java", + "lisp", + "pascal" + ], + "other": [], + "licenses": [ + "BSD 3-Clause Revised License" + ], + "types": [ + "service" + ], + "homepage": "https://dickgrune.com/Programs/similarity_tester/", + "source": null, + "pricing": null, + "plans": null, + "description": "A tool that finds similarities between or within files to support you encountering DRY principle violations.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "skunk": { + "name": "Skunk", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "rails" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/fastruby/skunk", + "source": "https://github.com/fastruby/skunk", + "pricing": null, + "plans": null, + "description": "A SkunkScore Calculator for Ruby Code -- Find the most complicated code without test coverage!", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "skylos": { + "name": "Skylos", + "categories": [ + "linter" + ], + "languages": [ + "go", + "python", + "typescript" + ], + "other": [ + "security" + ], + "licenses": [ + "Apache 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/duriantaco/skylos", + "source": "https://github.com/duriantaco/skylos", + "pricing": null, + "plans": null, + "description": "Dead code detection, security scanning, secrets detection, and code quality analysis for Python, TypeScript, and Go. Framework-aware analysis with 98% recall. Includes CI/CD GitHub Action, VS Code extension, and MCP server for AI agent integration.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sleek": { + "name": "sleek", + "categories": [ + "formatter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nrempel/sleek", + "source": "https://github.com/nrempel/sleek", + "pricing": null, + "plans": null, + "description": "Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability and productivity. The heavy lifting is done by the sqlformat crate.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "slim-lint": { + "name": "slim-lint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "template" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/sds/slim-lint", + "source": "https://github.com/sds/slim-lint", + "pricing": null, + "plans": null, + "description": "Configurable tool for analyzing Slim templates.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "slither": { + "name": "slither", + "categories": [ + "formatter" + ], + "languages": [], + "other": [ + "smart-contracts" + ], + "licenses": [ + "GNU Affero General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/trailofbits/slither", + "source": "https://github.com/trailofbits/slither", + "pricing": null, + "plans": null, + "description": "Static analysis framework that runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "snyk-code": { + "name": "Snyk Code", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "go", + "java", + "javascript", + "php", + "python", + "ruby", + "typescript" + ], + "other": [ + "container", + "ci", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://snyk.io", + "source": null, + "pricing": "https://snyk.io/plans/", + "plans": { + "free": true, + "oss": true + }, + "description": "Snyk Code finds security vulnerabilities based on AI. Its speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, JavaScript, Python, PHP, C#, Go and TypeScript. Integrations with GitHub, BitBucket and Gitlab. It is free to try and part of the Snyk platform also covering SCA, containers and IaC.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Product homepage", + "url": "https://snyk.io/product/snyk-code/" + }, + { + "title": "Intro to Snyk Code Video", + "url": "https://www.youtube.com/watch?v=fNYf0fgWOFQ" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "sobelow": { + "name": "sobelow", + "categories": [ + "linter" + ], + "languages": [ + "elixir" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nccgroup/sobelow", + "source": "https://github.com/nccgroup/sobelow", + "pricing": null, + "plans": null, + "description": "Security-focused static analysis for the Phoenix Framework.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "solhint": { + "name": "solhint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "smart-contracts" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://protofire.github.io/solhint", + "source": "https://github.com/protofire/solhint", + "pricing": null, + "plans": null, + "description": "Solhint is an open source project created by https://protofire.io. Its goal is to provide a linting utility for Solidity code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "solium": { + "name": "solium", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "smart-contracts" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://ethlint.readthedocs.io/en/latest", + "source": "https://github.com/duaraghav8/Solium", + "pricing": null, + "plans": null, + "description": "Solium is a linter to identify and fix style and security issues in Solidity smart contracts.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sonaranalyzer-csharp": { + "name": "SonarAnalyzer.CSharp", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "LGPL-3.0-only license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/SonarSource/sonar-dotnet", + "source": "https://github.com/SonarSource/sonar-dotnet", + "pricing": null, + "plans": null, + "description": "These Roslyn analyzers allow you to produce Clean Code that is safe, reliable, and maintainable by helping you find and correct bugs, vulnerabilities, and code smells in your codebase.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sonardelphi": { + "name": "SonarDelphi", + "categories": [ + "linter" + ], + "languages": [ + "delphi" + ], + "other": [], + "licenses": [ + "LGPL-3.0-only license" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/integrated-application-development/sonar-delphi", + "source": "https://github.com/integrated-application-development/sonar-delphi", + "pricing": null, + "plans": null, + "description": "Delphi static analyzer for the SonarQube code quality platform.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sonarqube-cloud": { + "name": "SonarQube Cloud", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "apex", + "c", + "csharp", + "cpp", + "cobol", + "go", + "java", + "javascript", + "kotlin", + "objectivec", + "php", + "plsql", + "python", + "ruby", + "scala", + "swift", + "tsql", + "typescript", + "vbnet" + ], + "other": [ + "arm", + "cloudformation", + "ci", + "css", + "dockerfile", + "html", + "kubernetes", + "security", + "terraform", + "xml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://sonarcloud.io", + "source": null, + "pricing": "https://sonarcloud.io/pricing", + "plans": { + "free": false, + "oss": true + }, + "description": "SonarQube Cloud enables your team to deliver clean code consistently and efficiently with a code review tool that easily integrates into the cloud DevOps platforms and extend your CI/CD workflow. SonarQube Cloud provides a free plan.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": [ + "https://www.g2.com/products/sonarcloud/reviews", + "https://www.gartner.com/reviews/market/application-security-testing/vendor/sonarsource/product/sonarcloud", + "https://www.peerspot.com/products/sonarcloud-reviews" + ], + "demos": null, + "wrapper": null + }, + "sonarqube-for-ide": { + "name": "SonarQube for IDE", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "cobol", + "go", + "java", + "javascript", + "kotlin", + "php", + "plsql", + "python", + "ruby", + "scala", + "swift", + "tsql", + "typescript", + "vbnet" + ], + "other": [ + "cloudformation", + "css", + "dockerfile", + "html", + "kubernetes", + "security", + "terraform", + "xml" + ], + "licenses": [ + "GNU Lesser General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://sonarlint.org", + "source": "https://github.com/SonarSource/sonarlint-intellij", + "pricing": null, + "plans": null, + "description": "SonarQube for IDE (formerly SonarLint) is a free IDE extension available for IntelliJ, VS Code, Visual Studio, and Eclipse, to find and fix coding issues in real-time, flagging issues as you code, just like a spell-checker. More than a linter, it also delivers rich contextual guidance to help developers understand why there is an issue, assess the risk, and educate them on how to fix it.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sonarqube-server": { + "name": "SonarQube Server", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "apex", + "c", + "csharp", + "cpp", + "cobol", + "go", + "java", + "javascript", + "kotlin", + "objectivec", + "php", + "plsql", + "python", + "ruby", + "scala", + "swift", + "tsql", + "typescript", + "vbnet" + ], + "other": [ + "arm", + "cloudformation", + "ci", + "css", + "dockerfile", + "html", + "kubernetes", + "security", + "terraform", + "xml" + ], + "licenses": [ + "GNU Lesser General Public License v3.0" + ], + "types": [ + "service" + ], + "homepage": "https://sonarqube.org", + "source": "https://github.com/SonarSource/sonarqube", + "pricing": "https://www.sonarsource.com/plans-and-pricing/", + "plans": null, + "description": "SonarQube empowers development teams with a code quality and security solution that deeply integrates into your enterprise environment; enabling you to deploy clean code consistently and reliably. SonarQube provides a free and open source Community Build.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Write Cleaner, Safer, Modern C++ Code with SonarQube", + "url": "https://www.youtube.com/watch?v=WPHVPbxCAwE" + }, + { + "title": "Write cleaner, safer Python code with SonarQube", + "url": "https://www.youtube.com/watch?v=ow-yuIlCuHk" + } + ], + "reviews": [ + "https://www.capterra.com/p/210481/SonarQube/", + "https://www.gartner.com/reviews/market/application-security-testing/vendor/sonarsource/product/sonarqube", + "https://www.peerspot.com/products/sonarqube-reviews" + ], + "demos": [ + "https://next.sonarqube.com/sonarqube/projects" + ], + "wrapper": null + }, + "sonatype": { + "name": "Sonatype", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "clojure", + "coffeescript", + "fsharp", + "go", + "groovy", + "java", + "javascript", + "kotlin", + "objectivec", + "php", + "python", + "r", + "ruby", + "rust", + "scala", + "swift", + "vbasic" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.sonatype.com", + "source": "https://www.sonatype.com", + "pricing": "https://www.sonatype.com/products/pricing", + "plans": null, + "description": "Reports known vulnerabilities in common dependencies and recommends updated packages to minimize breaking changes", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "soot": { + "name": "Soot", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "GNU Lesser General Public License v2.1" + ], + "types": [ + "cli" + ], + "homepage": "https://soot-oss.github.io/soot", + "source": "https://github.com/soot-oss/soot", + "pricing": null, + "plans": null, + "description": "A framework for analyzing and transforming Java and Android applications.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sorbet": { + "name": "Sorbet", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://sorbet.org", + "source": "https://github.com/sorbet/sorbet", + "pricing": null, + "plans": null, + "description": "A fast, powerful type checker designed for Ruby.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "soto-platform": { + "name": "Soto Platform", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "c", + "csharp", + "cpp", + "java", + "php", + "typescript" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.hello2morrow.com/products/sotograph", + "source": null, + "pricing": null, + "plans": null, + "description": "Suite of static analysis tools consisting of the three components Sotoarc (Architecture Analysis), Sotograph (Quality Analysis), and Sotoreport (Quality report). Helps find differences between architecture and implementation, interface violations (e.g. external access of private parts of subsystems, detection of all classes, files, packages and subsystems which are strongly coupled by cyclical relationships and more. The Sotograph product family runs on Windows and Linux. ", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sourcemeter": { + "name": "SourceMeter", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "java", + "python" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.sourcemeter.com/", + "source": null, + "pricing": "https://www.sourcemeter.com/download", + "plans": { + "free": true, + "oss": false + }, + "description": "Static Code Analysis for C/C++, Java, C#, Python, and RPG III and RPG IV versions (including free-form).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "spark": { + "name": "SPARK", + "categories": [ + "linter" + ], + "languages": [ + "ada" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.adacore.com/about-spark", + "source": null, + "pricing": "https://www.adacore.com/pricing", + "plans": null, + "description": "Static analysis and formal verification toolset for Ada.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "specificity-graph": { + "name": "Specificity Graph", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/pocketjoso/specificity-graph", + "source": "https://github.com/pocketjoso/specificity-graph", + "pricing": null, + "plans": null, + "description": "CSS Specificity Graph Generator.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "spectral": { + "name": "Spectral", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "json", + "yaml" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://stoplight.io/open-source/spectral", + "source": "https://github.com/stoplightio/spectral", + "pricing": null, + "plans": null, + "description": "A flexible JSON/YAML linter, with out-of-the-box support for OpenAPI v2/v3 and AsyncAPI v2.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "splint": { + "name": "splint", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "http://splint.org", + "source": "https://github.com/ravenexp/splint", + "pricing": null, + "plans": null, + "description": "Annotation-assisted static program checker.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "spoon": { + "name": "Spoon", + "categories": [ + "formatter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://spoon.gforge.inria.fr", + "source": "https://github.com/INRIA/spoon", + "pricing": null, + "plans": null, + "description": "Spoon is a metaprogramming library to analyze and transform Java source code (incl Java 9, 10, 11, 12, 13, 14). It parses source files to build a well-designed AST with powerful analysis and transformation API. Can be integrated in Maven and Gradle.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "spotbugs": { + "name": "SpotBugs", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "GNU Lesser General Public License v2.1" + ], + "types": [ + "cli" + ], + "homepage": "https://spotbugs.github.io", + "source": "https://github.com/spotbugs/spotbugs", + "pricing": null, + "plans": null, + "description": "SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sqlcheck": { + "name": "sqlcheck", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jarulraj/sqlcheck", + "source": "https://github.com/jarulraj/sqlcheck", + "pricing": null, + "plans": null, + "description": "Automatically identify anti-patterns in SQL queries.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "SQLCheck: Automated Detection and Diagnosis of SQL Anti-Patterns", + "url": "https://www.youtube.com/watch?v=5vHhuuPy3FI" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "sqlfluff": { + "name": "SQLFluff", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://www.sqlfluff.com/", + "source": "https://github.com/sqlfluff/sqlfluff", + "pricing": null, + "plans": null, + "description": "Multiple dialect SQL linter and formatter.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Official SQLFluff documentation", + "url": "https://docs.sqlfluff.com/en/stable/" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "sqlint": { + "name": "sqlint", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/purcell/sqlint", + "source": "https://github.com/purcell/sqlint", + "pricing": null, + "plans": null, + "description": "Simple SQL linter.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sqlvet": { + "name": "sqlvet", + "categories": [ + "linter" + ], + "languages": [ + "go", + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/houqp/sqlvet", + "source": "https://github.com/houqp/sqlvet", + "pricing": null, + "plans": null, + "description": "Performs static analysis on raw SQL queries in your Go code base to surface potential runtime errors. It checks for SQL syntax error, identifies unsafe queries that could potentially lead to SQL injections makes sure column count matches value count in INSERT statements and validates table- and column names.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "squawk": { + "name": "squawk", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "GPL-3.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://squawkhq.com", + "source": "https://github.com/sbdchd/squawk", + "pricing": null, + "plans": null, + "description": "Linter for PostgreSQL, focused on migrations. Prevents unexpected downtime caused by database migrations and encourages best practices around Postgres schemas and SQL.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "stan": { + "name": "Stan", + "categories": [ + "linter" + ], + "languages": [ + "haskell" + ], + "other": [], + "licenses": [ + "Mozilla Public License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://kowainik.github.io/projects/stan", + "source": "https://github.com/kowainik/stan", + "pricing": null, + "plans": null, + "description": "Stan is a command-line tool for analysing Haskell projects and outputting discovered vulnerabilities in a helpful way with possible solutions for detected problems.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "standard": { + "name": "standard", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [ + "nodejs" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://standardjs.com", + "source": "https://github.com/standard/standard", + "pricing": null, + "plans": null, + "description": "An npm module that checks for Javascript Styleguide issues.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "standard-ruby": { + "name": "Standard Ruby", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/testdouble/standard", + "source": "https://github.com/testdouble/standard", + "pricing": null, + "plans": null, + "description": "Ruby Style Guide, with linter & automatic code fixer", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "staticcheck": { + "name": "staticcheck", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://staticcheck.io", + "source": "https://github.com/dominikh/go-tools", + "pricing": null, + "plans": null, + "description": "Go static analysis that specialises in finding bugs, simplifying code and improving performance.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "GopherCon 2019: Denis Isaev - Go Linters: Myths and Best Practices", + "url": "https://www.youtube.com/watch?v=1U-Gzz4TYP0" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "staticlint": { + "name": "StaticLint", + "categories": [ + "linter" + ], + "languages": [ + "julia" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/julia-vscode/StaticLint.jl", + "source": "https://github.com/julia-vscode/StaticLint.jl", + "pricing": null, + "plans": null, + "description": "Static Code Analysis for Julia", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "staticreviewer": { + "name": "StaticReviewer", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "actionscript", + "asp", + "apex", + "aspnet", + "c", + "csharp", + "cpp", + "clojure", + "cobol", + "go", + "groovy", + "java", + "javascript", + "jsp", + "kotlin", + "lua", + "objectivec", + "php", + "plsql", + "powershell", + "python", + "r", + "rust", + "scala", + "shell", + "sql", + "swift", + "tsql", + "typescript", + "vbnet", + "vba" + ], + "other": [ + "json", + "xml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://securityreviewer.atlassian.net/wiki/spaces/KC/pages/196633/Static+Reviewer", + "source": null, + "pricing": null, + "plans": null, + "description": "Static Reviewer executes code checks according to the most relevant Secure Coding Standards, OWASP, CWE, CVE, CVSS, MISRA, CERT, for 40+ programming languages, using 1000+ built-in validation rules for Security, Deadcode & Best Practices Available a module for Software Composition Analysis (SCA) to find vulnerabilities in open source and third party libraries.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "statix": { + "name": "statix", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "nix" + ], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nerdypepper/statix", + "source": "https://github.com/nerdypepper/statix", + "pricing": null, + "plans": null, + "description": "Lints and suggestions for the Nix programming language. \"statix check\" highlights antipatterns in Nix code. \"statix fix\" can fix several such occurrences.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "stc": { + "name": "stc", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://stc.dudy.dev", + "source": "https://github.com/dudykr/stc", + "pricing": null, + "plans": null, + "description": "Speedy TypeScript type checker written in Rust", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "steady": { + "name": "steady", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://eclipse.github.io/steady/", + "source": "https://github.com/eclipse/steady", + "pricing": null, + "plans": null, + "description": "Analyses your Java applications for open-source dependencies with known vulnerabilities, using both static analysis and testing to determine code context and usage for greater accuracy.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "steampunk-spotter": { + "name": "Steampunk Spotter", + "categories": [ + "linter", + "formatter" + ], + "languages": [], + "other": [ + "ansible", + "configmanagement", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "gui", + "service", + "ide-plugin" + ], + "homepage": "https://steampunk.si/spotter/", + "source": "https://gitlab.com/xlab-steampunk/steampunk-spotter-client/spotter-cli", + "pricing": "https://steampunk.si/spotter/pricing", + "plans": { + "free": true, + "oss": false + }, + "description": "Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Steampunk Spotter: Simplify and Speed up Ansible Upgrades", + "url": "https://www.youtube.com/watch?v=JIzph_gqf08" + }, + { + "title": "Steampunk Spotter: Demo", + "url": "https://www.youtube.com/watch?v=yeggNPmtv04" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "steep": { + "name": "Steep", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/soutaro/steep", + "source": "https://github.com/soutaro/steep", + "pricing": null, + "plans": null, + "description": "Gradual Typing for Ruby.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "stoke": { + "name": "STOKE", + "categories": [ + "formatter" + ], + "languages": [ + "asm" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/StanfordPL/stoke", + "source": "https://github.com/StanfordPL/stoke", + "pricing": null, + "plans": null, + "description": "A programming-language agnostic stochastic optimizer for the x86_64 instruction set. It uses random search to explore the extremely high-dimensional space of all possible program transformations.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "structcheck": { + "name": "structcheck", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "GPL-3.0-only (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://gitlab.com/opennota/check", + "source": "https://gitlab.com/opennota/check", + "pricing": null, + "plans": null, + "description": "Find unused struct fields.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "structslop": { + "name": "structslop", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/orijtech/structslop", + "source": "https://github.com/orijtech/structslop", + "pricing": null, + "plans": null, + "description": "Static analyzer for Go that recommends struct field rearrangements to provide for maximum space/allocation efficiency", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "stylelint": { + "name": "Stylelint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "css" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "http://stylelint.io", + "source": "https://github.com/stylelint/stylelint", + "pricing": null, + "plans": null, + "description": "Linter for SCSS/CSS files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "styler": { + "name": "styler", + "categories": [ + "formatter" + ], + "languages": [ + "r" + ], + "other": [], + "licenses": [ + "GPL-3" + ], + "types": [ + "cli" + ], + "homepage": "https://styler.r-lib.org", + "source": "https://github.com/r-lib/styler", + "pricing": null, + "plans": null, + "description": "Formatting of R source code files and pretty-printing of R code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "super-linter": { + "name": "Super-Linter", + "categories": [ + "linter" + ], + "languages": [ + "coffeescript", + "go", + "javascript", + "perl", + "python", + "ruby", + "shell", + "typescript" + ], + "other": [ + "configmanagement", + "container", + "json", + "markdown", + "xml", + "yaml" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/github/super-linter", + "source": "https://github.com/github/super-linter", + "pricing": null, + "plans": null, + "description": "Combination of multiple linters to install as a GitHub Action.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "The Easiest Way to Lint Your Code: GitHub Super Linter Deep Dive", + "url": "https://www.youtube.com/watch?v=BCrtoZ04L1Y" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "svace": { + "name": "Svace", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java" + ], + "other": [ + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.ispras.ru/en/technologies/svace/", + "source": null, + "pricing": null, + "plans": null, + "description": "Static code analysis tool for Java,C,C++,C#,Go.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "svf": { + "name": "SVF", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://svf-tools.github.io/SVF", + "source": "https://github.com/SVF-tools/SVF", + "pricing": null, + "plans": null, + "description": "A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "svls": { + "name": "svls", + "categories": [ + "linter" + ], + "languages": [ + "verilog" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/dalance/svls", + "source": "https://github.com/dalance/svls", + "pricing": null, + "plans": null, + "description": "A Language Server Protocol implementation for Verilog and SystemVerilog, including lint capabilities.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "swiftformat": { + "name": "SwiftFormat", + "categories": [ + "formatter" + ], + "languages": [ + "swift" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/nicklockwood/SwiftFormat", + "source": "https://github.com/nicklockwood/SwiftFormat", + "pricing": null, + "plans": null, + "description": "A library and command-line formatting tool for reformatting Swift code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "swiftlint": { + "name": "SwiftLint", + "categories": [ + "linter" + ], + "languages": [ + "swift" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://realm.github.io/SwiftLint", + "source": "https://github.com/realm/SwiftLint", + "pricing": null, + "plans": null, + "description": "A tool to enforce Swift style and conventions.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Mastering SwiftLint for Code Readability", + "url": "https://www.youtube.com/watch?v=4YQ6DJ-xovY" + }, + { + "title": "The Road to Cleaner Code w/ SwiftLint", + "url": "https://academy.realm.io/posts/slug-jp-simard-swiftlint/" + } + ], + "reviews": [ + "https://plugins.jetbrains.com/plugin/9175-swiftlint" + ], + "demos": null, + "wrapper": null + }, + "symfony-insight": { + "name": "Symfony Insight", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [ + "ci", + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://insight.symfony.com/", + "source": null, + "pricing": "https://insight.symfony.com/pricing", + "plans": null, + "description": "Detect security risks, find bugs and provide actionable metrics for PHP projects.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "synopsys": { + "name": "Synopsys", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "fortran", + "java", + "javascript", + "php", + "python", + "ruby", + "swift" + ], + "other": [ + "ci", + "mobile", + "nodejs" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html", + "source": null, + "pricing": "https://www.blackduck.com/static-analysis-tools-sast/coverity/get-pricing.html", + "plans": { + "free": false, + "oss": true + }, + "description": "A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sys": { + "name": "Sys", + "categories": [ + "linter" + ], + "languages": [ + "ocaml" + ], + "other": [], + "licenses": [ + "GPL-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/PLSysSec/sys", + "source": "https://github.com/PLSysSec/sys", + "pricing": null, + "plans": null, + "description": "A static/symbolic Tool for finding bugs in (browser) code. It uses the LLVM AST to find bugs like uninitialized memory access.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "sysdig": { + "name": "sysdig", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://sysdig.com/", + "source": null, + "pricing": null, + "plans": null, + "description": "A secure DevOps platform for cloud and container forensics. Built on an open source stack, Sysdig provides Docker image scanning and created Falco, the open standard for runtime threat detection for containers, Kubernetes and cloud. ", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Run confidently with secure DevOps", + "url": "https://www.youtube.com/watch?v=KXfZWprVr0w" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "tailor": { + "name": "Tailor", + "categories": [ + "linter" + ], + "languages": [ + "swift" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://sleekbyte.github.io/tailor", + "source": "https://github.com/sleekbyte/tailor", + "pricing": null, + "plans": null, + "description": "A static analysis and lint tool for source code written in Apple's Swift programming language.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tangleguard": { + "name": "TangleGuard", + "categories": [ + "linter", + "meta" + ], + "languages": [ + "rust" + ], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://tangleguard.com/", + "source": "https://github.com/TangleGuard", + "pricing": null, + "plans": { + "free": false, + "oss": true + }, + "description": "Helps you understand and maintain a scalable software architecture. To do so, it generates a interactive, nested dependency graph out of the source code. You can choose the level of details and get the portion of your codebase that matters to you.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "TangleGuard Cloud", + "url": "https://app.tangleguard.com/" + }, + { + "title": "TangleGuard Preview", + "url": "https://youtu.be/whzbP1Hnsqs" + }, + { + "title": "TangleGuard Documentation", + "url": "https://docs.tangleguard.com/" + } + ], + "reviews": null, + "demos": null, + "wrapper": false + }, + "tclchecker": { + "name": "tclchecker", + "categories": [ + "linter" + ], + "languages": [ + "tcl" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt", + "source": "https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt", + "pricing": null, + "plans": null, + "description": "A static syntax analysis module (as part of [TDK](https://github.com/ActiveState/tdk)).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "teamscale": { + "name": "Teamscale", + "categories": [ + "linter" + ], + "languages": [ + "abap", + "c", + "csharp", + "cpp", + "java" + ], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service", + "ide-plugin" + ], + "homepage": "https://teamscale.com", + "source": null, + "pricing": "https://teamscale.com/pricing", + "plans": { + "free": false, + "oss": false + }, + "description": "Static and dynamic analysis tool supporting more than 25 languages and direct IDE integration. Free hosting for Open Source projects available on request. Free academic licenses available.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "CQSE Webinar: Architekturanalyse mit Teamscale (German)", + "url": "https://www.youtube.com/watch?v=fJVjv0153-U" + }, + { + "title": "Teamscale Integration for Visual Studio", + "url": "https://marketplace.visualstudio.com/items?itemName=CQSEGmbH.Teamscale" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "tencentcodeanalysis": { + "name": "TencentCodeAnalysis", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "java", + "javascript", + "kotlin", + "php", + "python", + "scala", + "typescript" + ], + "other": [ + "ci", + "css", + "html", + "xml" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://tca.tencent.com/", + "source": "https://github.com/Tencent/CodeAnalysis", + "pricing": null, + "plans": null, + "description": "Tencent Cloud Code Analysis (TCA for short, code-named CodeDog inside the company early) is a comprehensive platform for code analysis and issue tracking. TCA consist of three components, server, web and client. It integrates of a number of self-developed tools, and also supports dynamic integration of code analysis tools in various programming languages.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tern": { + "name": "tern", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://ternjs.net", + "source": "https://github.com/ternjs/tern", + "pricing": null, + "plans": null, + "description": "A JavaScript code analyzer for deep, cross-editor language support.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "terraform-compliance": { + "name": "terraform-compliance", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://terraform-compliance.com", + "source": "https://github.com/eerkunt/terraform-compliance", + "pricing": null, + "plans": null, + "description": "A lightweight, compliance- and security focused, BDD test framework against Terraform.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "terrascan": { + "name": "terrascan", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/cesar-rodriguez/terrascan", + "source": "https://github.com/cesar-rodriguez/terrascan", + "pricing": null, + "plans": null, + "description": "Collection of security and best practice tests for static code analysis of Terraform templates.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "test": { + "name": "test", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD-3-Clause (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://pkg.go.dev/testing", + "source": "https://pkg.go.dev/testing", + "pricing": null, + "plans": null, + "description": "Show location of test failures from the stdlib testing module.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "texlab": { + "name": "TeXLab", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "latex" + ], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://texlab.netlify.app", + "source": "https://github.com/latex-lsp/texlab", + "pricing": null, + "plans": null, + "description": "A Language Server Protocol implementation for TeX/LaTeX, including lint capabilities.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "textlint": { + "name": "textlint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "markdown" + ], + "licenses": [ + "MIT Licence" + ], + "types": [ + "cli" + ], + "homepage": "https://textlint.github.io/", + "source": "https://github.com/textlint/textlint", + "pricing": null, + "plans": null, + "description": "textlint is an open source text linting utility written in JavaScript.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tflint": { + "name": "tflint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement" + ], + "licenses": [ + "Mozilla Public License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/wata727/tflint", + "source": "https://github.com/wata727/tflint", + "pricing": null, + "plans": null, + "description": "A Terraform linter for detecting errors that can not be detected by `terraform plan`.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tfsec": { + "name": "tfsec", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "configmanagement", + "security" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tfsec/tfsec", + "source": "https://github.com/tfsec/tfsec", + "pricing": null, + "plans": null, + "description": "Terraform static analysis tool that prevents potential security issues by checking cloud misconfigurations at build time and directly integrates with the HCL parser for better results. Checks for violations of AWS, Azure and GCP security best practice recommendations.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "threatmapper": { + "name": "ThreatMapper", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "go", + "java", + "javascript", + "php", + "python", + "ruby", + "rust" + ], + "other": [ + "container", + "ci", + "nodejs", + "security" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "service" + ], + "homepage": "https://github.com/deepfence/ThreatMapper", + "source": "https://github.com/deepfence/ThreatMapper", + "pricing": null, + "plans": null, + "description": "Vulnerability Scanner and Risk Evaluation for containers, serverless and hosts at runtime. ThreatMapper generates runtime BOMs from dependencies and operating system packages, matches against multiple threat feeds, scans for unprotected secrets, and scores issues based on severity and risk-of-exploit.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "todocheck": { + "name": "todocheck", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "go", + "groovy", + "java", + "javascript", + "php", + "python", + "r", + "rust", + "scala", + "shell", + "swift", + "typescript" + ], + "other": [], + "licenses": [ + "MIT" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/preslavmihaylov/todocheck", + "source": "https://github.com/preslavmihaylov/todocheck", + "pricing": null, + "plans": null, + "description": "Linter for integrating annotated TODOs with your issue trackers", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "traceroute": { + "name": "Traceroute", + "categories": [ + "linter" + ], + "languages": [ + "ruby" + ], + "other": [ + "rails" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/amatsuda/traceroute", + "source": "https://github.com/amatsuda/traceroute", + "pricing": null, + "plans": null, + "description": "A Rake task gem that helps you find the unused routes and controller actions for your Rails 3+ app.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "trivy": { + "name": "trivy", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "php", + "ruby", + "rust" + ], + "other": [ + "container", + "nodejs" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/aquasecurity/trivy", + "source": "https://github.com/aquasecurity/trivy", + "pricing": null, + "plans": null, + "description": "A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. Trivy detects vulnerabilities of OS packages (Alpine, RHEL, CentOS, etc.) and application dependencies (Bundler, Composer, npm, yarn, etc.). Checks containers and filesystems.\n", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "trufflehog": { + "name": "trufflehog", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "AGPL-3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://trufflesecurity.com", + "source": "https://github.com/trufflesecurity/trufflehog", + "pricing": null, + "plans": null, + "description": "Find credentials all over the place\nTruffleHog is an open source secret-scanning engine that resolves exposed secrets across your company’s entire tech stack. ", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "trunk": { + "name": "trunk", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "c", + "cpp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "typescript" + ], + "other": [ + "ansible", + "cloudformation", + "dockerfile", + "markdown", + "protobuf", + "terraform" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://trunk.io", + "source": "https://github.com/trunk-io/", + "pricing": "https://trunk.io/pricing", + "plans": { + "free": true, + "oss": true + }, + "description": "Modern repositories include many technologies, each with its own set of linters. With 30+ linters and counting, Trunk makes it dead-simple to identify, install, configure, and run the right linters, static analyzers, and formatters for all your repos.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Trunk GitHub Action", + "url": "https://github.com/trunk-io/trunk-action" + }, + { + "title": "Community Slack Channel", + "url": "https://slack.trunk.io" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "trustinsoft-analyzer": { + "name": "TrustInSoft Analyzer", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://trust-in-soft.com", + "source": null, + "pricing": null, + "plans": null, + "description": "Exhaustive detection of coding errors and their associated security vulnerabilities. This encompasses a sound undefined behavior detection (buffer overflows, out-of-bounds array accesses, null-pointer dereferences, use-after-free, divide-by-zeros, uninitialized memory accesses, signed overflows, invalid pointer arithmetic, etc.), data flow and control flow verification as well as full functional verification of formal specifications. All versions of C up to C18 and C++ up to C++20 are supported. TrustInSoft Analyzer will acquire ISO 26262 qualification in Q2'2023 (TCL3). A MISRA C checker is also bundled.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "TrustInSoft blog", + "url": "https://trust-in-soft.com/resources/news/" + }, + { + "title": "TrustInSoft white papers", + "url": "https://trust-in-soft.com/resources/news/?_types=white-papers" + } + ], + "reviews": [ + "https://www.gartner.com/reviews/market/application-security-testing/vendor/trustinsoft/reviews" + ], + "demos": [ + "https://github.com/TrustInSoft/demos", + "https://github.com/TrustInSoft/jenkins-demos" + ], + "wrapper": null + }, + "tscancode": { + "name": "TscanCode", + "categories": [ + "linter" + ], + "languages": [ + "c", + "csharp", + "cpp", + "lua" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Tencent/TscanCode", + "source": "https://github.com/Tencent/TscanCode", + "pricing": null, + "plans": null, + "description": "A fast and accurate static analysis solution for C/C++, C#, Lua codes provided by Tencent. Using GPLv3 license.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tslint": { + "name": "tslint", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "Apache-2.0 license" + ], + "types": [ + "cli" + ], + "homepage": "https://palantir.github.io/tslint/", + "source": "https://github.com/palantir/tslint", + "pricing": null, + "plans": null, + "description": "TSLint has been deprecated as of 2019. Please see [this issue](https://github.com/palantir/tslint/issues/4534) for more details. `typescript-eslint` is now your best option for linting TypeScript.\nTSLint is an extensible static analysis tool that checks TypeScript code for readability, maintainability, and functionality errors. It is widely supported across modern editors & build systems and can be customized with your own lint rules, configurations, and formatters.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "Nextjs: tslint to eslint", + "url": "https://www.youtube.com/watch?v=qXzIW4CfpxA" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "tslint-clean-code": { + "name": "tslint-clean-code", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://www.npmjs.com/package/tslint-clean-code", + "source": "https://github.com/Glavin001/tslint-clean-code", + "pricing": null, + "plans": null, + "description": "A set of TSLint rules inspired by the Clean Code handbook.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tslint-microsoft-contrib": { + "name": "tslint-microsoft-contrib", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Microsoft/tslint-microsoft-contrib", + "source": "https://github.com/Microsoft/tslint-microsoft-contrib", + "pricing": null, + "plans": null, + "description": "A set of tslint rules for static code analysis of TypeScript projects maintained by Microsoft.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tsqllint": { + "name": "tsqllint", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tsqllint/tsqllint", + "source": "https://github.com/tsqllint/tsqllint", + "pricing": null, + "plans": null, + "description": "T-SQL-specific linter.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tsqlrules": { + "name": "TSqlRules", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ashleyglee/TSqlRules", + "source": "https://github.com/ashleyglee/TSqlRules", + "pricing": null, + "plans": null, + "description": "TSQL Static Code Analysis Rules for SQL Server.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "tsunami-security-scanner": { + "name": "Tsunami Security Scanner", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "security" + ], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/google/tsunami-security-scanner", + "source": "https://github.com/google/tsunami-security-scanner", + "pricing": null, + "plans": null, + "description": "A general purpose network security scanner with an extensible plugin system for detecting high severity RCE-like vulnerabilities with high confidence. Custom detectors for finding vulnerabilities (e.g. open APIs) can be added.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Tsunami Security Scanner from Google: Identify Critical vulnerabilities with high confidence - LAB", + "url": "https://www.youtube.com/watch?v=SMlWes1XnWw" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "tuli": { + "name": "Tuli", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ircmaxell/Tuli", + "source": "https://github.com/ircmaxell/Tuli", + "pricing": null, + "plans": null, + "description": "A static analysis engine.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "twig-lint": { + "name": "twig-lint", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/asm89/twig-lint", + "source": "https://github.com/asm89/twig-lint", + "pricing": null, + "plans": null, + "description": "twig-lint is a lint tool for your twig files.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "twiggy": { + "name": "Twiggy", + "categories": [ + "linter" + ], + "languages": [ + "wasm" + ], + "other": [ + "binary" + ], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/rustwasm/twiggy", + "source": "https://github.com/rustwasm/twiggy", + "pricing": null, + "plans": null, + "description": "Analyzes a binary's call graph to profile code size. The goal is to slim down wasm binary size.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "ty": { + "name": "ty", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://docs.astral.sh/ty/", + "source": "https://github.com/astral-sh/ty", + "pricing": null, + "plans": null, + "description": "An extremely fast Python type checker written in Rust.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "typescript-call-graph": { + "name": "TypeScript Call Graph", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/whyboris/TypeScript-Call-Graph", + "source": "https://github.com/whyboris/TypeScript-Call-Graph", + "pricing": null, + "plans": null, + "description": "CLI to generate an interactive graph of functions and calls from your TypeScript files", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "typescript-eslint": { + "name": "TypeScript ESLint", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/typescript-eslint/typescript-eslint", + "source": "https://github.com/typescript-eslint/typescript-eslint", + "pricing": null, + "plans": null, + "description": "TypeScript language extension for eslint.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "VSCode ESLint, Prettier & Airbnb Style Guide Setup", + "url": "https://www.youtube.com/watch?v=SydnKbGc7W8" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "typl": { + "name": "TypL", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://typl.dev", + "source": "https://github.com/getify/TypL", + "pricing": null, + "plans": null, + "description": "With TypL, you just write completely standard JS, and the tool figures out your types via powerful inferencing.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "unconvert": { + "name": "unconvert", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mdempsky/unconvert", + "source": "https://github.com/mdempsky/unconvert", + "pricing": null, + "plans": null, + "description": "Detect redundant type conversions.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "undebt": { + "name": "Undebt", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "java", + "php" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Yelp/undebt", + "source": "https://github.com/Yelp/undebt", + "pricing": null, + "plans": null, + "description": "Language-independent tool for massive, automatic, programmable refactoring based on simple pattern definitions.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "understand": { + "name": "Understand", + "categories": [ + "linter" + ], + "languages": [ + "ada", + "asm", + "c", + "csharp", + "cpp", + "cobol", + "delphi", + "fortran", + "java", + "javascript", + "php", + "python", + "vbnet" + ], + "other": [ + "css", + "html", + "xml" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.scitools.com", + "source": null, + "pricing": "https://www.scitools.com/pricing", + "plans": null, + "description": "Code visualization tool that provides code analysis, standards testing, metrics, graphing, dependency analysis and more for Ada, VHDL, and others.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "What is Understand?", + "url": "https://www.youtube.com/watch?v=QXxciTA1R4k" + }, + { + "title": "Basic Navigation in Understand", + "url": "https://www.youtube.com/watch?v=YDd9J2Fs5Ug" + }, + { + "title": "Tell a story about your code in just one image using Graphs", + "url": "https://www.youtube.com/watch?v=mZRWN6ukUig" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "unibeautify": { + "name": "Unibeautify", + "categories": [ + "formatter" + ], + "languages": [ + "c", + "cpp", + "go", + "java", + "javascript", + "jsx", + "objectivec", + "php", + "python", + "typescript" + ], + "other": [ + "css", + "html", + "markdown", + "vue" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "service" + ], + "homepage": "https://unibeautify.com", + "source": "https://github.com/unibeautify/unibeautify", + "pricing": null, + "plans": null, + "description": "Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "unimport": { + "name": "unimport", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://unimport.hakancelik.dev", + "source": "https://github.com/hakancelikdev/unimport", + "pricing": null, + "plans": null, + "description": "A linter, formatter for finding and removing unused import statements.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "unparam": { + "name": "unparam", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/mvdan/unparam", + "source": "https://github.com/mvdan/unparam", + "pricing": null, + "plans": null, + "description": "Find unused function parameters.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "upsource": { + "name": "Upsource", + "categories": [ + "linter" + ], + "languages": [ + "java", + "javascript", + "kotlin", + "php" + ], + "other": [ + "ci" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.jetbrains.com/upsource", + "source": null, + "pricing": "https://www.jetbrains.com/buy", + "plans": null, + "description": "Code review tool with static code analysis and code-aware navigation for Java, PHP, JavaScript and Kotlin.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Upsource - Code Review Best Practices", + "url": "https://www.youtube.com/watch?v=EjwD7Pi7J_0" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "vale": { + "name": "vale", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://vale.sh", + "source": "https://github.com/errata-ai/vale", + "pricing": null, + "plans": null, + "description": "A syntax-aware linter for prose built with speed and extensibility in mind.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "varcheck": { + "name": "varcheck", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "GPL-3.0-only (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://gitlab.com/opennota/check", + "source": "https://gitlab.com/opennota/check", + "pricing": null, + "plans": null, + "description": "Find unused global variables and constants.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "vera": { + "name": "vera++", + "categories": [ + "formatter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [], + "licenses": [ + "BSL-1.0 (original text)" + ], + "types": [ + "cli" + ], + "homepage": "https://bitbucket.org/verateam/vera/wiki/Introduction", + "source": "https://bitbucket.org/verateam/vera/src/master", + "pricing": null, + "plans": null, + "description": "Vera++ is a programmable tool for verification, analysis and transformation of C++ source code.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "veracode": { + "name": "Veracode", + "categories": [ + "linter" + ], + "languages": [ + "dotnet", + "c", + "cpp", + "java", + "javascript", + "objectivec", + "php", + "swift" + ], + "other": [ + "security" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://www.veracode.com/security/static-code-analysis", + "source": null, + "pricing": "https://info.veracode.com/request-quote.html", + "plans": { + "free": false, + "oss": false + }, + "description": "Find flaws in binaries and bytecode without requiring source. Support all major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, C++ and more.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "Veracode Overview", + "url": "https://www.youtube.com/watch?v=6Fq_UMgwX4I" + }, + { + "title": "Veracode SCA Scan for VS Code Plugin", + "url": "https://www.youtube.com/watch?v=hCl2H8Heqnw" + } + ], + "reviews": [ + "https://www.peerspot.com/products/veracode-reviews" + ], + "demos": null, + "wrapper": null + }, + "verible-linter-action": { + "name": "verible-linter-action", + "categories": [ + "linter" + ], + "languages": [ + "verilog" + ], + "other": [], + "licenses": [ + "Apache-2.0 License" + ], + "types": [ + "service" + ], + "homepage": "https://github.com/chipsalliance/verible-linter-action", + "source": "https://github.com/chipsalliance/verible-linter-action", + "pricing": null, + "plans": null, + "description": "Automatic SystemVerilog linting in github actions with the help of Verible Used to lint Verilog and SystemVerilog source files and comment erroneous lines of code in Pull Requests automatically.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "verifast": { + "name": "VeriFast", + "categories": [ + "linter" + ], + "languages": [ + "ocaml" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/verifast/verifast", + "source": "https://github.com/verifast/verifast", + "pricing": null, + "plans": null, + "description": "A tool for modular formal verification of correctness properties of single-threaded and multithreaded C and Java programs annotated with preconditions and postconditions written in separation logic. To express rich specifications, the programmer can define inductive datatypes, primitive recursive pure functions over these datatypes, and abstract separation logic predicates.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "verilator": { + "name": "Verilator", + "categories": [ + "linter" + ], + "languages": [ + "verilog" + ], + "other": [], + "licenses": [ + "GPL v3 or Perl Artistic License Version 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.veripool.org/verilator", + "source": "https://github.com/verilator/verilator", + "pricing": null, + "plans": null, + "description": "A tool which converts Verilog to a cycle-accurate behavioral model in C++ or SystemC. Performs lint code-quality checks.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "vetur": { + "name": "Vetur", + "categories": [ + "linter", + "formatter" + ], + "languages": [], + "other": [ + "vue" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli", + "ide-plugin" + ], + "homepage": "https://marketplace.visualstudio.com/items?itemName=octref.vetur", + "source": "https://github.com/vuejs/vetur", + "pricing": null, + "plans": null, + "description": "Vue tooling for VS Code, powered by vls (vue language server). Vetur has support for formatting embedded HTML, CSS, SCSS, JS, TypeScript, and more. Vetur only has a \"whole document formatter\" and cannot format arbitrary ranges.", + "discussion": null, + "deprecated": true, + "resources": [ + { + "title": "Pine Wu - var vetur = vscode + vue; | VueConf 2017", + "url": "https://www.youtube.com/watch?v=05tNXJ-Kric" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "vint": { + "name": "vint", + "categories": [ + "linter" + ], + "languages": [ + "vim-script" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/Kuniwak/vint", + "source": "https://github.com/Kuniwak/vint", + "pricing": null, + "plans": null, + "description": "Fast and Highly Extensible Vim script Language Lint implemented by Python.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "violations-lib": { + "name": "Violations Lib", + "categories": [ + "linter" + ], + "languages": [ + "java" + ], + "other": [ + "ci", + "support" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tomasbjerre/violations-lib", + "source": "https://github.com/tomasbjerre/violations-lib", + "pricing": null, + "plans": null, + "description": "Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "visual-expert": { + "name": "Visual Expert", + "categories": [ + "linter" + ], + "languages": [ + "sql" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://www.visual-expert.com", + "source": null, + "pricing": "https://www.visual-expert.com/EN/visual-expert-price.html", + "plans": null, + "description": "Code analysis for PowerBuilder, Oracle, and SQL Server Explores, analyzes, and documents Code ", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "vmware-chap": { + "name": "VMware chap", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "GPL v2" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/vmware/chap", + "source": "https://github.com/vmware/chap", + "pricing": null, + "plans": null, + "description": "chap analyzes un-instrumented ELF core files for leaks, memory growth, and corruption. It is sufficiently reliable that it can be used in automation to catch leaks before they are committed. As an interactive tool, it helps explain memory growth, can identify some forms of corruption, and supplements a debugger by giving the status of various memory locations. ", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "vscode-verilog-hdl-support": { + "name": "vscode-verilog-hdl-support", + "categories": [ + "linter" + ], + "languages": [ + "verilog" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/mshr-h/vscode-verilog-hdl-support", + "source": "https://github.com/mshr-h/vscode-verilog-hdl-support", + "pricing": null, + "plans": null, + "description": "Verilog HDL/SystemVerilog/Bluespec SystemVerilog support for VS Code. Provides syntax highlighting and Linting support from Icarus Verilog, Vivado Logical Simulation, Modelsim and Verilator", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "vsdiagnostics": { + "name": "VSDiagnostics", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "GNU General Public License v2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Vannevelj/VSDiagnostics", + "source": "https://github.com/Vannevelj/VSDiagnostics", + "pricing": null, + "plans": null, + "description": "A collection of static analyzers based on Roslyn that integrates with VS.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "vuls": { + "name": "Vuls", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "container" + ], + "licenses": [ + "AGPL-3.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://vuls.io/", + "source": "https://github.com/future-architect/vuls", + "pricing": null, + "plans": null, + "description": "Agent-less Linux vulnerability scanner based on information from NVD, OVAL, etc. It has some container image support, although is not a container specific tool.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "vulture": { + "name": "vulture", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/jendrikseipp/vulture", + "source": "https://github.com/jendrikseipp/vulture", + "pricing": null, + "plans": null, + "description": "Find unused classes, functions and variables in Python code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wala": { + "name": "WALA", + "categories": [ + "linter" + ], + "languages": [ + "java", + "javascript" + ], + "other": [], + "licenses": [ + "Eclipse Public License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/wala/WALA", + "source": "https://github.com/wala/WALA", + "pricing": null, + "plans": null, + "description": "Static analysis capabilities for Java bytecode and related languages and for JavaScript.", + "discussion": null, + "deprecated": null, + "resources": [ + { + "title": "WALA Everywhere", + "url": "https://www.youtube.com/watch?v=QtrJEopSSuw" + } + ], + "reviews": null, + "demos": null, + "wrapper": null + }, + "wap": { + "name": "WAP", + "categories": [ + "linter" + ], + "languages": [ + "php" + ], + "other": [], + "licenses": [ + "GNU GPL" + ], + "types": [ + "cli" + ], + "homepage": "https://securityonline.info/owasp-wap-web-application-protection-project", + "source": "https://awap.sourceforge.io", + "pricing": null, + "plans": null, + "description": "Tool to detect and correct input validation vulnerabilities in PHP (4.0 or higher) web applications and predicts false positives by combining static analysis and data mining.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "warnalyzer": { + "name": "warnalyzer", + "categories": [ + "linter" + ], + "languages": [ + "rust" + ], + "other": [], + "licenses": [ + "MIT / Apache 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/est31/warnalyzer", + "source": "https://github.com/est31/warnalyzer", + "pricing": null, + "plans": null, + "description": "Show unused code from multi-crate Rust projects", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wartremover": { + "name": "WartRemover", + "categories": [ + "linter" + ], + "languages": [ + "scala" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://www.wartremover.org", + "source": "https://github.com/puffnfresh/wartremover", + "pricing": null, + "plans": null, + "description": "A flexible Scala code linting tool.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wasm-language-tools": { + "name": "wasm-language-tools", + "categories": [ + "linter", + "formatter" + ], + "languages": [ + "wasm" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "ide-plugin" + ], + "homepage": "https://github.com/g-plane/wasm-language-tools", + "source": "https://github.com/g-plane/wasm-language-tools", + "pricing": null, + "plans": null, + "description": "WebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format. It also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "weeder": { + "name": "Weeder", + "categories": [ + "linter" + ], + "languages": [ + "haskell" + ], + "other": [], + "licenses": [ + "BSD 3-Clause \"New\" or \"Revised\" License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/ocharles/weeder", + "source": "https://github.com/ocharles/weeder", + "pricing": null, + "plans": null, + "description": "A tool for detecting dead exports or package imports in Haskell code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "weggli": { + "name": "weggli", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp" + ], + "other": [ + "security" + ], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/googleprojectzero/weggli", + "source": "https://github.com/googleprojectzero/weggli", + "pricing": null, + "plans": null, + "description": "A fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wemake-python-styleguide": { + "name": "wemake-python-styleguide", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://wemake-python-styleguide.rtfd.io/", + "source": "https://github.com/wemake-services/wemake-python-styleguide", + "pricing": null, + "plans": null, + "description": "The strictest and most opinionated python linter ever.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "whitehat-application-security-platform": { + "name": "WhiteHat Application Security Platform", + "categories": [ + "linter" + ], + "languages": [ + "aspnet", + "csharp", + "java", + "javascript", + "objectivec", + "php", + "typescript" + ], + "other": [ + "html", + "mobile", + "nodejs" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://source.whitehatsec.com/help/sentinel/sast-service-detail.html", + "source": null, + "pricing": null, + "plans": null, + "description": "WhiteHat Scout (for Developers) combined with WhiteHat Sentinel Source (for Operations) supporting WhiteHat Top 40 and OWASP Top 10.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wily": { + "name": "wily", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/tonybaloney/wily", + "source": "https://github.com/tonybaloney/wily", + "pricing": null, + "plans": null, + "description": "A command-line tool for archiving, exploring and graphing the complexity of Python source code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wintellect-analyzers": { + "name": "Wintellect.Analyzers", + "categories": [ + "linter" + ], + "languages": [ + "csharp" + ], + "other": [], + "licenses": [ + "Other" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/Wintellect/Wintellect.Analyzers", + "source": "https://github.com/Wintellect/Wintellect.Analyzers", + "pricing": null, + "plans": null, + "description": ".NET Compiler Platform (\"Roslyn\") diagnostic analyzers and code fixes.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wotan": { + "name": "Wotan", + "categories": [ + "linter" + ], + "languages": [ + "javascript", + "typescript" + ], + "other": [], + "licenses": [ + "Apache License 2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/fimbullinter/wotan", + "source": "https://github.com/fimbullinter/wotan", + "pricing": null, + "plans": null, + "description": "Pluggable TypeScript and JavaScript linter.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "write-good": { + "name": "write-good", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "writing" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/btford/write-good", + "source": "https://github.com/btford/write-good", + "pricing": null, + "plans": null, + "description": "A linter with a focus on eliminating \"weasel words\".", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "wsl": { + "name": "wsl", + "categories": [ + "linter" + ], + "languages": [ + "go" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/bombsimon/wsl", + "source": "https://github.com/bombsimon/wsl", + "pricing": null, + "plans": null, + "description": "Enforces empty lines at the right places.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "xcode": { + "name": "XCode", + "categories": [ + "linter" + ], + "languages": [ + "c", + "cpp", + "objectivec" + ], + "other": [], + "licenses": [ + "proprietary" + ], + "types": [ + "cli" + ], + "homepage": "https://developer.apple.com/xcode", + "source": null, + "pricing": null, + "plans": null, + "description": "XCode provides a pretty decent UI for [Clang's](https://clang-analyzer.llvm.org/xcode.html) static code analyzer (C/C++, Obj-C).", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "xenon": { + "name": "xenon", + "categories": [ + "linter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://xenon.readthedocs.io", + "source": "https://github.com/rubik/xenon", + "pricing": null, + "plans": null, + "description": "Monitor code complexity using [`radon`](https://github.com/rubik/radon).", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "xo": { + "name": "xo", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/xojs/xo", + "source": "https://github.com/xojs/xo", + "pricing": null, + "plans": null, + "description": "Opinionated but configurable ESLint wrapper with lots of goodies included. Enforces strict and readable code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "xygeni": { + "name": "Xygeni", + "categories": [ + "linter" + ], + "languages": [ + "csharp", + "go", + "java", + "javascript", + "python" + ], + "other": [ + "dockerfile", + "kubernetes", + "terraform" + ], + "licenses": [ + "proprietary" + ], + "types": [ + "service" + ], + "homepage": "https://xygeni.io/", + "source": null, + "pricing": null, + "plans": null, + "description": "Xygeni is a comprehensive Software Supply Chain Security platform. It provides Advanced SAST with AI-powered remediation, Software Composition Analysis (SCA) with real-time malware detection, Infrastructure as Code (IaC) scanning, and Secrets detection to ensure end-to-end code security.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "yamllint": { + "name": "yamllint", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "template", + "yaml" + ], + "licenses": [ + "GNU General Public License v3.0" + ], + "types": [ + "cli" + ], + "homepage": "https://yamllint.readthedocs.io", + "source": "https://github.com/adrienverge/yamllint", + "pricing": null, + "plans": null, + "description": "Checks YAML files for syntax validity, key repetition and cosmetic problems such as lines length, trailing spaces, and indentation.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "yapf": { + "name": "yapf", + "categories": [ + "formatter" + ], + "languages": [ + "python" + ], + "other": [], + "licenses": [ + "Apache-2.0" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/google/yapf", + "source": "https://github.com/google/yapf", + "pricing": null, + "plans": null, + "description": "A formatter for Python files created by Google\nYAPF follows a distinctive methodology, originating from the 'clang-format' tool created by Daniel Jasper. Essentially, the program reframes the code to the most suitable formatting that abides by the style guide, even if the original code already follows the style guide. This concept is similar to the Go programming language's 'gofmt' tool, which aims to put an end to debates about formatting by having the entire codebase of a project pass through YAPF whenever changes are made, thereby maintaining a consistent style throughout the project and eliminating the need to argue about style in every code review.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "yardstick": { + "name": "yardstick", + "categories": [ + "linter" + ], + "languages": [ + "javascript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/calmh/yardstick", + "source": "https://github.com/calmh/yardstick", + "pricing": null, + "plans": null, + "description": "Javascript code metrics.", + "discussion": null, + "deprecated": true, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "zarn": { + "name": "zarn", + "categories": [ + "linter" + ], + "languages": [ + "perl" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://github.com/htrgouvea/zarn", + "source": "https://github.com/htrgouvea/zarn", + "pricing": null, + "plans": null, + "description": "A lightweight static security analysis tool for modern Perl Apps", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "zod": { + "name": "zod", + "categories": [ + "linter" + ], + "languages": [ + "typescript" + ], + "other": [], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://zod.dev", + "source": "https://github.com/colinhacks/zod", + "pricing": null, + "plans": null, + "description": "TypeScript-first schema validation with static type inference. The goal is to eliminate duplicative type declarations. With Zod, you declare a validator once and Zod will automatically infer the static TypeScript type. It is easy to compose simpler types into complex data structures.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "zpa": { + "name": "ZPA", + "categories": [ + "linter" + ], + "languages": [ + "plsql" + ], + "other": [], + "licenses": [ + "LGPL-3.0 License" + ], + "types": [ + "cli" + ], + "homepage": "https://zpa.felipebz.com", + "source": "https://github.com/felipebz/zpa", + "pricing": null, + "plans": null, + "description": "An open source parser and code analyzer for PL/SQL and Oracle SQL code.", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + }, + "zydis": { + "name": "zydis", + "categories": [ + "linter" + ], + "languages": [], + "other": [ + "binary" + ], + "licenses": [ + "MIT License" + ], + "types": [ + "cli" + ], + "homepage": "https://zydis.re", + "source": "https://github.com/zyantific/zydis", + "pricing": null, + "plans": null, + "description": "Fast and lightweight x86/x86-64 disassembler library", + "discussion": null, + "deprecated": null, + "resources": null, + "reviews": null, + "demos": null, + "wrapper": null + } +} \ No newline at end of file diff --git a/data/render/Cargo.lock b/data/render/Cargo.lock deleted file mode 100644 index 077fc02a3a..0000000000 --- a/data/render/Cargo.lock +++ /dev/null @@ -1,196 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "askama" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "askama_derive 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "askama_escape 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "askama_shared 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "askama_derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "askama_shared 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "askama_escape" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "askama_shared" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "askama_escape 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", - "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "autocfg" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "dtoa" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "humansize" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "linked-hash-map" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "memchr" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "nom" -version = "5.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "num-traits" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "proc-macro2" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "quote" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "render" -version = "0.1.0" -dependencies = [ - "askama 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "serde" -version = "1.0.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "serde_derive 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "serde_derive" -version = "1.0.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "serde_yaml" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", - "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syn" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "toml" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "unicode-xid" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "version_check" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "yaml-rust" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[metadata] -"checksum askama 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "10a1fb9e41eb366cbcd267da2094be5b7e62fdbca9f82091e7503e80f885050d" -"checksum askama_derive 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1012c270085fa35ece6a48a569544fde85b6d9ee41074c7b706cc912a03f939" -"checksum askama_escape 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a577aeba5fec1aafb9f195d98cfcc38a78b588e4ebf9b15f62ca1c7aa33795a" -"checksum askama_shared 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8ee517f4e33c27b129928e71d8a044d54c513e72e0b72ec5c4f5f1823e9de353" -"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" -"checksum humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e" -"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" -"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" -"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" -"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" -"checksum proc-macro2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435" -"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" -"checksum serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d" -"checksum serde_derive 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250" -"checksum serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "16c7a592a1ec97c9c1c68d75b6e537dcbf60c7618e038e7841e00af1d9ccf0c4" -"checksum syn 1.0.16 (registry+https://github.com/rust-lang/crates.io-index)" = "123bd9499cfb380418d509322d7a6d52e5315f064fe4b3ad18a53d6b92c07859" -"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" -"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" -"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" -"checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d" diff --git a/data/render/Cargo.toml b/data/render/Cargo.toml deleted file mode 100644 index 0275c21d39..0000000000 --- a/data/render/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "render" -version = "0.1.0" -authors = ["Matthias Endler "] -edition = "2018" - -[dependencies] -serde = "1.0.111" -serde_derive = "1.0.111" -serde_yaml = "0.8.12" -askama = "0.9.0" \ No newline at end of file diff --git a/data/render/src/bin/main.rs b/data/render/src/bin/main.rs deleted file mode 100644 index 8817f5f210..0000000000 --- a/data/render/src/bin/main.rs +++ /dev/null @@ -1,35 +0,0 @@ -use askama::Template; -use render::types::{Entry, Tags}; -use render::{group, validate}; -use std::env; -use std::error::Error; - -fn get_files() -> Result<(String, String), Box> { - let files: Vec<_> = env::args().skip(1).collect(); - if files.len() != 2 { - return Err("Expected a two input files, `tools.yml` and `tags.yml`".into()); - } - Ok((files[0].clone(), files[1].clone())) -} - -fn read_tags(file: String) -> Result> { - let f = std::fs::File::open(file)?; - Ok(serde_yaml::from_reader(f)?) -} - -fn read_tools(file: String) -> Result, Box> { - let f = std::fs::File::open(file)?; - Ok(serde_yaml::from_reader(f)?) -} - -fn main() -> Result<(), Box> { - let (tags, tools) = get_files()?; - let tags = read_tags(tags)?; - let mut tools = read_tools(tools)?; - tools.sort(); - validate(&tags, &tools)?; - - let catalog = group(&tags, tools)?; - println!("{}", catalog.render()?); - Ok(()) -} diff --git a/data/render/src/lib.rs b/data/render/src/lib.rs deleted file mode 100644 index 5dbae9d327..0000000000 --- a/data/render/src/lib.rs +++ /dev/null @@ -1,73 +0,0 @@ -#[macro_use] -extern crate serde_derive; - -use std::error::Error; - -mod lints; -pub mod types; - -use std::collections::BTreeMap; -use types::{Catalog, Entry, Tag, Tags, Type}; - -fn valid(entry: &Entry, tags: &Tags) -> Result<(), Box> { - let lints = [lints::name, lints::min_one_tag, lints::tags_existing]; - lints.iter().map(|lint| Ok(lint(&entry, &tags)?)).collect() -} - -pub fn validate(tags: &Tags, entries: &Vec) -> Result<(), Box> { - for entry in entries { - valid(&entry, &tags)? - } - Ok(()) -} - -pub fn group(tags: &Tags, entries: Vec) -> Result> { - let mut linters = BTreeMap::new(); - - // Move tools that support multiple languages into their own category - let (multi, entries): (Vec, Vec) = entries.into_iter().partition(|entry| { - entry.tags.len() > 1 - && entry.tags - != vec!["c".to_string(), "cpp".to_string()] - .into_iter() - .collect() - }); - - let languages: Vec<&Tag> = tags - .into_iter() - .filter(|t| t.tag_type == Type::Language) - .collect(); - - for language in languages { - let list: Vec = entries - .iter() - .filter(|e| e.tags.contains(&language.tag)) - .map(|e| e.clone()) - .collect(); - if !list.is_empty() { - linters.insert(language.clone(), list); - } - } - - let mut others = BTreeMap::new(); - let other_tags: Vec<&Tag> = tags - .into_iter() - .filter(|t| t.tag_type == Type::Other) - .collect(); - for other in other_tags { - let list: Vec = entries - .iter() - .filter(|e| e.tags.contains(&other.tag)) - .map(|e| e.clone()) - .collect(); - if !list.is_empty() { - others.insert(other.clone(), list); - } - } - - Ok(Catalog { - linters, - others, - multi, - }) -} diff --git a/data/render/src/lints.rs b/data/render/src/lints.rs deleted file mode 100644 index b9cf6fb85a..0000000000 --- a/data/render/src/lints.rs +++ /dev/null @@ -1,36 +0,0 @@ -use std::error::Error; - -use crate::types::Entry; -use crate::types::Tags; - -pub fn name(entry: &Entry, _: &Tags) -> Result<(), Box> { - match entry.name.len() <= 50 { - true => Ok(()), - false => Err(format!( - "Name of entry may be at most 50 characters long, but {} is {} long", - entry.name, - entry.name.len() - ) - .into()), - } -} - -pub fn min_one_tag(entry: &Entry, _: &Tags) -> Result<(), Box> { - match entry.tags.is_empty() { - true => Err(format!("{} must have at least one tag from `tags.yml`.", entry.name).into()), - false => Ok(()), - } -} - -pub fn tags_existing(entry: &Entry, tags: &Tags) -> Result<(), Box> { - for entry_tag in &entry.tags { - if !tags.iter().any(|tag| &tag.tag == entry_tag) { - return Err(format!( - "Unknown tag `{}` for entry `{}`. It might be missing from the `tags.yml` file.", - entry_tag, entry.name - ) - .into()); - } - } - Ok(()) -} diff --git a/data/render/src/types.rs b/data/render/src/types.rs deleted file mode 100644 index feaf55e9c4..0000000000 --- a/data/render/src/types.rs +++ /dev/null @@ -1,83 +0,0 @@ -use askama::Template; -use std::cmp::Ordering; -use std::collections::{BTreeMap, HashSet}; - -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Ord, PartialOrd)] -pub enum Type { - #[serde(alias = "language")] - Language, - #[serde(alias = "other")] - Other, -} - -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Ord, PartialOrd)] -pub struct Tag { - pub name: String, - pub tag: String, - #[serde(alias = "type")] - pub tag_type: Type, -} - -// The tags from tags.yml Note that this is a `Vector` and not a -// `HashSet` because we like to keep the sorting between renders. -pub type Tags = Vec; - -pub type EntryTags = HashSet; - -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] -pub struct Entry { - pub name: String, - pub homepage: String, - pub source: Option, - pub discussion: Option, - pub description: String, - pub tags: EntryTags, - pub proprietary: Option, - pub deprecated: Option, - pub wrapper: Option, -} - -impl PartialOrd for Entry { - fn partial_cmp(&self, other: &Entry) -> Option { - Some(self.cmp(other)) - } -} - -impl Ord for Entry { - fn cmp(&self, other: &Entry) -> Ordering { - self.name.to_lowercase().cmp(&other.name.to_lowercase()) - } -} - -pub type EntryMap = BTreeMap>; - -#[derive(Debug, Serialize, Deserialize, Template)] -#[template(path = "README.md")] -pub struct Catalog { - pub linters: EntryMap, - pub others: EntryMap, - pub multi: Vec, -} - -/// any filters defined in `mod filters` are accessible in templates -mod filters { - // eventually, if other open-source sites (e.g. gitlab) support something like stars, those - // could also be formatted in this filter - pub fn format_badge(mut s: &str) -> ::askama::Result { - if s.chars().last().unwrap() == '/' { - s = s.trim_end_matches('/'); - } - let components: Vec<&str> = s.split("/").collect(); - if components.contains(&"github.com") && components.len() == 5 { - // valid github source must have 5 elements - anything longer and they are probably a - // reference to a path inside a repo, rather than a repo itself. - Ok(format!("![stars]({}{}) ", - // shields.io can't have a trailing '/' before parameters begin - s.replace("github.com", "img.shields.io/github/stars").trim_end_matches("/"), - "?style=flat-square&color=ccc", - )) - } else { - Ok("".to_string()) - } - } -} diff --git a/data/render/templates/README.md b/data/render/templates/README.md deleted file mode 100644 index d1439aa4b3..0000000000 --- a/data/render/templates/README.md +++ /dev/null @@ -1,102 +0,0 @@ - - -
- Analysis Tools - - -This repository lists **static analysis tools** for all programming languages, build tools, config files and more. -The official website, [analysis-tools.dev](https://analysis-tools.dev/) is based on this repository and adds rankings and user comments for each tool. - -![CI](https://github.com/analysis-tools-dev/static-analysis/workflows/CI/badge.svg) - -## What is Static Analysis? - -> Static program analysis is the analysis of computer software that is performed without actually executing programs — [Wikipedia](https://en.wikipedia.org/wiki/Static_program_analysis) - -> The most important thing I have done as a programmer in recent years is to aggressively pursue static code analysis. Even more valuable than the hundreds of serious bugs I have prevented with it is the change in mindset about the way I view software reliability and code quality. — [John Carmack (Creator of Doom)](https://www.gamasutra.com/view/news/128836/InDepth_Static_Code_Analysis.php) - -## Sponsors - -This project would not be possible without the generous support of our sponsors. - - - -If you also want to support this project, head over to our [Github sponsors page](https://github.com/sponsors/analysis-tools-dev). - -## 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 6 months, or the repo was archived. - -Pull requests are very welcome! -Also check out the sister project, [awesome-dynamic-analysis](https://github.com/mre/awesome-dynamic-analysis). - -## Table of Contents - -#### [Programming Languages](#programming-languages-1) - -
- Show languages - - -
- -#### [Multiple languages](#multiple-languages-1) - -#### [Other](#other-1) - -{% for (tag, _) in others -%} -- [{{ tag.name }}](#{{ tag.tag }}) -{% endfor %} - ---- - -## Programming Languages - -{%- for (language, linters) in linters %} - -

{{ language.name }}

- -{% for linter in linters -%} -- {% if linter.source.is_some() %}{{ linter.source.as_ref().unwrap()|format_badge }}{%endif%}[{{linter.name }}]({{linter.homepage }}){% if linter.discussion.is_some() %} [:information_source:]({{linter.discussion.as_ref().unwrap()}}){% endif %}{% if linter.deprecated.is_some() %} :warning:{% endif %}{% if linter.proprietary.is_some() %} :copyright:{% endif %} - {{ linter.description }} -{% endfor %} - -{%- endfor %} - -## Multiple languages - -{% for linter in multi -%} -- {% if linter.source.is_some() %}{{ linter.source.as_ref().unwrap()|format_badge }}{%endif%}[{{linter.name }}]({{linter.homepage }}){% if linter.discussion.is_some() %} [:information_source:]({{linter.discussion.as_ref().unwrap()}}){% endif %}{% if linter.deprecated.is_some() %} :warning:{% endif %}{% if linter.proprietary.is_some() %} :copyright:{% endif %} - {{ linter.description }} -{% endfor %} - -## Other - -{% for (tag, others) in others %} - -

{{ tag.name }}

- -{% for other in others -%} -- {% if other.source.is_some() %}{{ other.source.as_ref().unwrap()|format_badge }}{%endif%}[{{ other.name }}]({{ other.homepage }}){% if other.discussion.is_some() %} [:information_source:]({{other.discussion.as_ref().unwrap()}}){% endif %}{% if other.deprecated.is_some() %} :warning:{% endif %}{% if other.proprietary.is_some() %} :copyright:{% endif %} - {{ other.description }} -{% endfor %} - -{%- endfor %} - -## More Collections - -- [go-tools](https://github.com/dominikh/go-tools) - A collection of tools and libraries for working with Go code, including linters and static analysis -- [linters](https://github.com/mcandre/linters/tree/b044f0628c4a96dfea869cf61e0e96cf4c49cf6b) - An introduction to static code analysis -- [php-static-analysis-tools](https://github.com/exakat/php-static-analysis-tools) - A reviewed list of useful PHP static analysis tools -- [Tools for C/C++](https://www.peerlyst.com/posts/a-list-of-static-analysis-tools-for-c-c-peerlyst?utm_source=twitter&utm_medium=social&utm_content=peerlyst_post&utm_campaign=peerlyst_resources) - A list of static analysis tools for C/C++ -- [Wikipedia](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis) - A list of tools for static code analysis. - -## License - -[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) - -To the extent possible under law, [Matthias Endler](https://endler.dev) has waived all copyright and related or neighboring rights to this work. -Title image [Designed by Freepik](http://www.freepik.com). diff --git a/data/tags.yml b/data/tags.yml index 054900f3bb..c54183c6f9 100644 --- a/data/tags.yml +++ b/data/tags.yml @@ -1,285 +1,351 @@ +- name: .env + value: dotenv + type: other - name: .NET - tag: dotnet + value: dotnet type: language - name: ABAP - tag: abap + value: abap type: language - name: ActionScript - tag: actionscript + value: actionscript type: language - name: Active Server Pages - tag: asp + value: asp type: language - name: Ada - tag: ada + value: ada type: language -- name: Assembly - tag: asm +- name: Ansible + value: ansible + type: other +- name: Apex + value: apex type: language +- name: Archive + value: archive + type: other - name: ASP.NET - tag: aspnet + value: aspnet type: language -- name: Apex - tag: apex +- name: Assembly + value: asm type: language - name: Awk - tag: awk + value: awk type: language +- name: Azure Resource Manager + value: arm + type: other +- name: Binaries + value: binary + type: other +- name: Build tools + value: buildtool + type: other - name: C - tag: c + value: c + type: language +- name: C# + value: csharp + type: language +- name: C++ + value: cpp type: language - name: Clojure - tag: clojure + value: clojure type: language +- name: Cloud Formation + value: cloudformation + type: other - name: COBOL - tag: cobol + value: cobol type: language - name: CoffeeScript - tag: coffeescript + value: coffeescript type: language - name: ColdFusion - tag: coldfusion - type: language -- name: C++ - tag: cpp - type: language -- name: "C#" - tag: csharp + value: coldfusion type: language +- name: Config Files + value: configfile + type: other +- name: Configuration Management + value: configmanagement + type: other +- name: Containers + value: container + type: other +- name: Continuous Integration + value: ci + type: other - name: Crystal - tag: crystal + value: crystal type: language +- name: CSS/SASS/SCSS + value: css + type: other - name: Dart - tag: dart - type: language -- name: Dlang - tag: dlang + value: dart type: language - name: Delphi - tag: delphi + value: delphi + type: language +- name: Deno + value: deno + type: other +- name: Dlang + value: dlang type: language +- name: Dockerfile + value: dockerfile + type: other - name: Elixir - tag: elixir + value: elixir type: language - name: Elm - tag: elm + value: elm type: language +- name: Embedded Ruby (a.k.a. ERB, eRuby) + value: erb + type: other +- name: Embedded + value: embedded + type: other - name: Erlang - tag: erlang + value: erlang type: language -- name: "F#" - tag: fsharp +- name: F# + value: fsharp type: language - name: Fortran - tag: fortran + value: fortran type: language -- name: Formatter - tag: formatter +- name: Gherkin + value: gherkin + type: other +- name: Ghidra + value: ghidra type: other - name: Go - tag: go + value: go type: language +- name: git + value: git + type: other - name: Groovy - tag: groovy + value: groovy type: language - name: Haskell - tag: haskell + value: haskell type: language - name: Haxe - tag: haxe + value: haxe type: language +- name: HTML + value: html + type: other - name: Java - tag: java + value: java + type: language +- name: JavaScript + value: javascript type: language - name: JavaServer Pages - tag: jsp + value: jsp type: language -- name: JavaScript - tag: javascript +- name: Jimple + value: jimple type: language +- name: JSON + value: json + type: other - name: JSX - tag: jsx + value: jsx + type: language +- name: Julia + value: julia type: language - name: Kotlin - tag: kotlin + value: kotlin + type: language +- name: Kubernetes + value: kubernetes + type: other +- name: Laravel + value: laravel + type: other +- name: LaTeX + value: latex + type: other +- name: Less + value: less + type: other +- name: Lightning Web Components + value: lwc + type: language +- name: Lisp + value: lisp type: language - name: Lua - tag: lua + value: lua type: language +- name: Makefiles + value: make + type: other +- name: Markdown + value: markdown + type: other - name: MATLAB - tag: matlab + value: matlab + type: language +- name: Metalinter + value: meta + type: other +- name: Mobile + value: mobile + type: other +- name: Nim + value: nim type: language +- name: Nix + value: nix + type: other +- name: Node.js + value: nodejs + type: other - name: Objective C - tag: objectivec + value: objectivec + type: language +- name: Ocaml + value: ocaml type: language -- name: Obj-C - tag: objectivec +- name: Packages + value: package + type: other +- name: Pascal + value: pascal type: language - name: Perl - tag: perl + value: perl type: language +- name: PhoneGap + value: phonegap + type: other - name: PHP - tag: php + value: php type: language - name: PL/SQL - tag: plsql + value: plsql + type: language +- name: PowerShell + value: powershell type: language +- name: Prometheus + value: prometheus + type: other +- name: Protocol Buffers + value: protobuf + type: other +- name: Puppet + value: puppet + type: other - name: Python - tag: python + value: python type: language - name: R - tag: r - type: language -- name: RPG - tag: rpg + value: r type: language - name: Rails - tag: rails + value: rails type: other +- name: Raku + value: raku + type: language +- name: Rego + value: rego + type: language - name: Ruby - tag: ruby + value: ruby type: language - name: Rust - tag: rust + value: rust type: language - name: Scala - tag: scala + value: scala type: language +- name: Security/SAST + value: security + type: other - name: Shell - tag: shell - type: language -- name: Solidity - tag: solidity + value: shell type: language +- name: Smart Contracts + value: smart-contracts + type: other - name: SQL - tag: sql - type: language -- name: TSQL - tag: tsql + value: sql type: language +- name: Support + value: support + type: other +- name: Spring + value: spring + type: other - name: Swift - tag: swift + value: swift type: language - name: Tcl - tag: tcl + value: tcl + type: language +- name: Template-Languages + value: template + type: other +- name: Terraform + value: terraform + type: other +- name: Translation + value: translation + type: other +- name: TSQL + value: tsql type: language - name: TypeScript - tag: typescript + value: typescript type: language - name: VBScript - tag: vbscript + value: vbscript type: language -- name: Visual Basic for Applications (VBA) - tag: vba +- name: Verilog/SystemVerilog + value: verilog type: language -- name: Visual Basic .NET - tag: vbnet +- name: Vim Script + value: vim-script type: language - name: Visual Basic - tag: vbasic + value: vbasic + type: language +- name: Visual Basic .NET + value: vbnet + type: language +- name: Visual Basic for Applications (VBA) + value: vba type: language -- name: Build tools - tag: buildtool - type: other -- name: Binaries - tag: binary - type: other -- name: More collections - tag: collection - type: other -- name: Containers - tag: container - type: other -- name: Config Files - tag: configfile - type: other -- name: Configuration Management - tag: configmanagement - type: other -- name: Continuous Integration - tag: ci - type: other -- name: CSS/SASS/SCSS - tag: css - type: other -- name: Deno - tag: deno - type: other -- name: Gherkin - tag: gherkin - type: other -- name: Haml - tag: haml - type: other -- name: HTML - tag: html - type: other -- name: IDE Plugins - tag: ide - type: other -- name: JSON - tag: json - type: other -- name: LaTeX - tag: latex - type: other -- name: Less - tag: less - type: other -- name: Makefiles - tag: make - type: other -- name: Markdown - tag: markdown - type: other -- name: Metalinter - tag: meta - type: other -- name: Mobile - tag: mobile - type: other -- name: Node.js - tag: nodejs - type: other -- name: Packages - tag: package - type: other -- name: PhoneGap - tag: phonegap - type: other -- name: PowerShell - tag: powershell - type: other -- name: Protocol Buffers - tag: protobuf - type: other -- name: Supporting Tools - tag: support - type: other -- name: Template-Languages - tag: template - type: other -- name: Translation - tag: translation - type: other - name: Visualforce - tag: visualforce - type: other + value: visualforce + type: language - name: Vue.js - tag: vue - type: other -- name: Vyper (Smart contract) - tag: vyper + value: vue type: other +- name: WebAssembly + value: wasm + type: language - name: Writing - tag: writing - type: other -- name: Web services - tag: service + value: writing type: other - name: XML - tag: xml + value: xml type: other - name: YAML - tag: yaml + value: yaml type: other diff --git a/data/tools.yml b/data/tools.yml deleted file mode 100644 index 5d7a772fe0..0000000000 --- a/data/tools.yml +++ /dev/null @@ -1,3383 +0,0 @@ ---- -- name: ".NET Analyzers" - homepage: "https://github.com/DotNetAnalyzers" - source: "https://github.com/DotNetAnalyzers" - description: An organization for the development of analyzers (diagnostics and code fixes) using the .NET Compiler Platform. - tags: - - csharp -- name: abaplint - homepage: "https://abaplint.org/" - source: "https://github.com/larshp/abaplint" - description: "Linter for ABAP, written in TypeScript." - tags: - - abap -- name: abapOpenChecks - homepage: "https://docs.abapopenchecks.org/" - source: "https://github.com/larshp/abapOpenChecks" - description: Enhances the SAP Code Inspector with new and customizable checks. - tags: - - abap -- name: aether - homepage: "http://aetherjs.com/" - source: "https://github.com/codecombat/aether" - description: "Lint, analyze, normalize, transform, sandbox, run, step through, and visualize user JavaScript, in node or the browser." - tags: - - javascript -- name: After the Deadline - homepage: "https://afterthedeadline.com/" - source: "https://open.afterthedeadline.com/" - description: "Spell, style and grammar checker." - tags: - - writing - deprecated: true -- name: ale - homepage: "https://github.com/w0rp/ale" - source: "https://github.com/w0rp/ale" - description: Asynchronous Lint Engine for Vim and NeoVim with support for many languages. - tags: - - ide -- name: aligncheck - homepage: "https://gitlab.com/opennota/check" - source: "https://gitlab.com/opennota/check" - description: Find inefficiently packed structs. - tags: - - go -- name: ameba - homepage: "https://crystal-ameba.github.io/" - source: "https://github.com/veelenga/ameba" - description: A static code analysis tool for Crystal. - tags: - - crystal -- name: anchore - homepage: "https://anchore.io/" - source: "https://github.com/anchore/anchore-engine" - description: "Discover, analyze, and certify container images." - tags: - - container -- name: Android Lint - homepage: "http://tools.android.com/tips/lint" - source: "https://android.googlesource.com/" - description: Run static analysis on Android projects. - tags: - - mobile -- name: Android Studio - homepage: "https://developer.android.com/studio" - source: "https://android.googlesource.com/platform/tools/adt/idea/+/refs/heads/mirror-goog-studio-master-dev" - description: "Based on IntelliJ IDEA, and comes bundled with tools for Android including Android Lint." - tags: - - ide -- name: android-lint-summary - homepage: "https://passy.github.io/android-lint-summary/" - source: "https://github.com/passy/android-lint-summary" - description: "Combines lint errors of multiple projects into one output, check lint results of multiple sub-projects at once." - tags: - - mobile -- name: ansible-lint - homepage: "https://docs.ansible.com/ansible-lint/" - source: "https://github.com/willthames/ansible-lint" - description: Checks playbooks for practices and behaviour that could potentially be improved. - tags: - - configmanagement -- name: AppChecker - homepage: "https://npo-echelon.ru/en/solutions/appchecker.php" - description: "Static analysis for C/C++/C#, PHP and Java." - tags: - - c - - cpp - - java - - php - proprietary: true -- name: Application Inspector - homepage: "https://www.ptsecurity.com/ww-en/products/ai/" - description: "Commercial Static Code Analysis which generates exploits to verify vulnerabilities." - tags: - - asp - - c - - cpp - - csharp - - html - - java - - javascript - - objectivec - - php - - sql - - swift - - vbnet - proprietary: true -- name: ApplicationInspector - homepage: "https://github.com/microsoft/ApplicationInspector" - source: "https://github.com/microsoft/ApplicationInspector" - description: "Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps)." - tags: - - c - - cpp - - csharp - - go - - html - - java - - javascript - - objectivec - - php - - powershell - - python - - ruby -- name: AppScan Source - homepage: "https://www.hcltechsw.com/wps/portal/products/appscan/home" - description: "Commercial Static Code Analysis." - tags: - - asp - - aspnet - - c - - csharp - - cobol - - coldfusion - - cpp - - java - - javascript - - jsp - - mobile - - perl - - php - - plsql - - tsql - - vbasic - - vbnet - - vbscript - proprietary: true -- name: APPscreener - homepage: "https://solarappscreener.com/" - description: "Static code analysis for binary and source code - Java/Scala, PHP, Javascript, C#, PL/SQL, Python, T-SQL, C/C++, ObjectiveC/Swift, Visual Basic 6.0, Ruby, Delphi, ABAP, HTML5 and Solidity." - tags: - - java - - scala - - php - - javascript - - csharp - - plsql - - python - - tsql - - c - - cpp - - objectivec - - swift - - vbasic - - ruby - - delphi - - abap - - html - - solidity - proprietary: true -- name: ArchUnit - homepage: "https://www.archunit.org/" - source: "https://github.com/TNG/ArchUnit" - description: Unit test your Java or Kotlin architecture. - tags: - - java - - kotlin -- name: Astrée - homepage: "https://www.absint.com/astree/index.htm" - description: "Sound static analyzer based on abstract interpretation for C/C++, detecting memory, type and concurrency defects, and MISRA violations." - tags: - - c - - cpp - proprietary: true -- name: Atom-Beautify - homepage: "https://atom.io/packages/atom-beautify" - source: "https://github.com/Glavin001/atom-beautify" - description: Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor. - tags: - - html - - css - - javascript - - php - - python - - ruby - - java - - c - - cpp - - csharp - - objectivec - - coffeescript - - typescript - - coldfusion - - sql -- name: Attackflow Extension - homepage: "https://www.attackflow.com/Extension" - description: "Attackflow plugin for Visual Studio, which enables developers to find critical security bugs at real time in the source code without any prior knowledge." - tags: - - ide - proprietary: true -- name: Axivion Bauhaus Suite - homepage: "https://www.axivion.com/en/products-services-9#products_bauhaussuite" - description: "Tracks down error-prone code locations, style violations, cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95." - tags: - - c - - cpp - - java - - php - proprietary: true -- name: bandit - homepage: "https://bandit.readthedocs.io/en/latest/" - source: "https://github.com/PyCQA/bandit" - description: A tool to find common security issues in Python code. - tags: - - python -- name: bellybutton - homepage: "https://github.com/hchasestevens/bellybutton" - source: "https://github.com/hchasestevens/bellybutton" - description: A linting engine supporting custom project-specific rules. - tags: - - python -- name: BinSkim - homepage: "https://github.com/Microsoft/binskim" - source: "https://github.com/Microsoft/binskim" - description: A binary static analysis tool that provides security and correctness results for Windows portable executables. - tags: - - binary -- name: Black - homepage: "https://black.readthedocs.io/en/stable/" - source: "https://github.com/ambv/black" - description: The uncompromising Python code formatter. - tags: - - python - - formatter -- name: bodyclose - homepage: "https://github.com/timakin/bodyclose" - source: "https://github.com/timakin/bodyclose" - description: Checks whether HTTP response body is closed. - tags: - - go -- name: Bootlint - homepage: "https://github.com/twbs/bootlint" - source: "https://github.com/twbs/bootlint" - description: An HTML linter for Bootstrap projects. - tags: - - html -- name: brakeman - homepage: "https://brakemanscanner.org/" - source: "https://github.com/presidentbeef/brakeman" - description: A static analysis security vulnerability scanner for Ruby on Rails applications. - tags: - - ruby -- name: cane - homepage: "https://github.com/square/cane" - source: "https://github.com/square/cane" - description: Code quality threshold checking as part of your build. - tags: - - ruby -- name: cargo-audit - homepage: "https://rustsec.org/" - source: "https://github.com/RustSec/cargo-audit" - description: "Audit Cargo.lock for crates with security vulnerabilities reported to the [RustSec Advisory Database](https://github.com/RustSec/advisory-db/)." - tags: - - rust -- name: cargo-inspect - homepage: "https://github.com/mre/cargo-inspect" - source: "https://github.com/mre/cargo-inspect" - description: Inspect Rust code without syntactic sugar to see what the compiler does behind the curtains. - tags: - - rust -- name: CAST Highlight - homepage: "https://www.castsoftware.com/products/highlight" - description: "Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation." - tags: - - abap - - c - - cobol - - cpp - - csharp - - java - - javascript - - jsp - - php - - plsql - - python - - tsql - - vbasic - proprietary: true -- name: CBMC - homepage: "http://www.cprover.org/cbmc/" - source: "https://github.com/diffblue/cbmc/" - description: "Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses." - tags: - - c - - cpp -- name: cfn-lint - homepage: "https://github.com/awslabs/cfn-python-lint" - source: "https://github.com/awslabs/cfn-python-lint" - description: AWS Labs CloudFormation linter. - tags: - - configmanagement -- name: cfn_nag - homepage: "https://github.com/stelligent/cfn_nag" - source: "https://github.com/stelligent/cfn_nag" - description: A linter for AWS CloudFormation templates. - tags: - - configmanagement -- name: Checker Framework - homepage: "https://checkerframework.org/" - source: "https://github.com/typetools/checker-framework/" - description: "Pluggable type-checking for Java." - tags: - - java -- name: checkmake - homepage: "https://github.com/mrtazz/checkmake" - source: "https://github.com/mrtazz/checkmake" - description: Linter / Analyzer for Makefiles. - tags: - - buildtool -- name: Checkmarx CxSAST - homepage: "https://www.checkmarx.com/products/static-application-security-testing/" - description: "Commercial Static Code Analysis which doesn't require pre-compilation." - tags: - - apex - - asp - - c - - cpp - - csharp - - go - - groovy - - html - - java - - javascript - - mobile - - nodejs - - objectivec - - perl - - phonegap - - php - - python - - ruby - - scala - - swift - - vbnet - - vbasic - - vbscript - - visualforce - proprietary: true -- name: checkov - homepage: "https://www.checkov.io/" - source: "https://github.com/bridgecrewio/checkov/" - description: "Static analysis tool for Terraform files (tf>=v0.12), preventing cloud misconfigs at build time." - tags: - - configmanagement -- name: checkstyle - homepage: "https://checkstyle.org/" - source: "https://github.com/checkstyle/checkstyle" - description: Checking Java source code for adherence to a Code Standard or set of validation rules (best practices). - tags: - - java -- name: ChkTeX - homepage: "http://www.nongnu.org/chktex/" - source: "http://git.savannah.nongnu.org/cgit/chktex.git" - description: A linter for LaTex which catches some typographic errors LaTeX oversees. - tags: - - latex -- name: churn-php - homepage: "https://github.com/bmitch/churn-php" - source: "https://github.com/bmitch/churn-php" - description: Helps discover good candidates for refactoring. - tags: - - php - deprecated: true -- name: ciocheck - homepage: "https://github.com/ContinuumIO/ciocheck" - source: "https://github.com/ContinuumIO/ciocheck" - description: "Linter, formatter and test suite helper. As a linter, it is a wrapper around `pep8`, `pydocstyle`, `flake8`, and `pylint`." - tags: - - python - - meta - - formatter -- name: ck - homepage: "https://github.com/mauricioaniche/ck" - source: "https://github.com/mauricioaniche/ck" - description: Calculates Chidamber and Kemerer object-oriented metrics by processing the source Java files. - tags: - - java -- name: ckjm - homepage: "http://www.spinellis.gr/sw/ckjm/" - source: "https://github.com/dspinellis/ckjm" - description: Calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files. - tags: - - java -- name: clair - homepage: "https://github.com/coreos/clair" - source: "https://github.com/coreos/clair" - description: Vulnerability Static Analysis for Containers. - tags: - - container -- name: clang-tidy - homepage: "http://clang.llvm.org/extra/clang-tidy/" - source: "http://clang.llvm.org/extra/clang-tidy/" - description: clang static analyser. - tags: - - c - - cpp -- name: ClassGraph - homepage: "https://github.com/classgraph/classgraph" - source: "https://github.com/classgraph/classgraph" - description: A classpath and module path scanner for querying or visualizing class metadata or class relatedness. - tags: - - java - - groovy - - kotlin -- name: clippy - homepage: "https://rust-lang.github.io/rust-clippy/" - source: "https://github.com/rust-lang/rust-clippy" - description: A code linter to catch common mistakes and improve your Rust code. - tags: - - rust -- name: Closure Compiler - homepage: "https://developers.google.com/closure/compiler/" - source: "https://github.com/google/closure-compiler" - description: "A compiler tool to increase efficiency, reduce size, and provide code warnings in JavaScript files." - tags: - - javascript -- name: ClosureLinter - homepage: "https://github.com/google/closure-linter" - source: "https://github.com/google/closure-linter" - description: "Ensures that all of your project's JavaScript code follows the guidelines in the Google JavaScript Style Guide. It can also automatically fix many common errors." - tags: - - javascript - deprecated: true -- name: CMetrics - homepage: "https://github.com/MetricsGrimoire/CMetrics" - source: "https://github.com/MetricsGrimoire/CMetrics" - description: Measures size and complexity for C files. - tags: - - c - - cpp -- name: coala - homepage: "https://coala.io/" - source: "https://github.com/coala/coala/" - description: "Language independent framework for creating code analysis - supports [over 60 languages](https://coala.io/languages) by default." - tags: - - c - - cpp - - java - - javascript - - css -- name: Cobra - homepage: "http://spinroot.com/cobra/" - description: "Structural source code analyzer by NASA's Jet Propulsion Laboratory." - tags: - - ada - - c - - cpp - - python - proprietary: true -- name: Codacy - homepage: "https://www.codacy.com/" - description: "Code Analysis to ship Better Code, Faster." - tags: - - service - proprietary: true -- name: Code Analysis Rule Collection - homepage: "https://carc.codeplex.com/" - source: "https://carc.codeplex.com/" - description: 'Contains a set of diagnostics, code fixes and refactorings built on the Microsoft .NET Compiler Platform "Roslyn".' - tags: - - csharp - deprecated: true -- name: Code Climate - homepage: "https://codeclimate.com/" - description: "The open and extensible static analysis platform, for everyone." - tags: - - service - proprietary: true -- name: Code Inspector - homepage: "https://www.code-inspector.com" - description: Code quality and technical debt management platform that supports 10+ languages. - tags: - - service - proprietary: true -- name: code-cracker - homepage: "http://code-cracker.github.io/" - source: "https://github.com/code-cracker/code-cracker" - description: "An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties." - tags: - - csharp -- name: Codeac - homepage: "https://www.codeac.io?ref=awesome-static-analysis" - description: "Automated code review tool integrates with GitHub, Bitbucket and GitLab (even self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source free)" - tags: - - ci - - container - - go - - java - - javascript - - php - - python - - ruby - - service - - typescript - proprietary: true -- name: codeburner - homepage: "http://groupon.github.io/codeburner/" - source: "https://github.com/groupon/codeburner" - description: Provides a unified interface to sort and act on the issues it finds. - tags: - - c - - cpp - - java - - javascript - - meta - - php -- name: codechecker - homepage: "https://codechecker.readthedocs.io/en/latest/" - source: "https://github.com/Ericsson/codechecker" - description: A defect database and viewer extension for the Clang Static Analyzer with web GUI. - tags: - - buildtool - - c - - cpp -- name: CodeFactor - homepage: "https://codefactor.io" - description: "Static Code Analysis for C#, C, C++, CoffeeScript, CSS, Groovy, GO, JAVA, JavaScript, Less, Python, Ruby, Scala, SCSS, TypeScript." - tags: - - c - - coffeescript - - cpp - - csharp - - css - - go - - groovy - - java - - javascript - - less - - php - - python - - ruby - - scala - - typescript - proprietary: true -- name: CodeFactor - homepage: "https://codefactor.io" - description: Automated Code Analysis for repos on GitHub or BitBucket. - tags: - - service - proprietary: true -- name: CodeFlow - homepage: "https://www.getcodeflow.com" - description: Automated code analysis tool to deal with technical depth. Integrates with Bitbucket and Gitlab. (free for Open Source Projects) - tags: - - service - proprietary: true -- name: CodeIt.Right - homepage: "https://submain.com/products/codeit.right.aspx" - description: "CodeIt.Right™ provides a fast, automated way to ensure that your source code adheres to (your) predefined design and style guidelines as well as best coding practices." - tags: - - csharp - - vbnet - proprietary: true -- name: Codelyzer - homepage: "http://codelyzer.com/" - source: "https://github.com/mgechev/codelyzer" - description: A set of tslint rules for static code analysis of Angular 2 TypeScript projects. - tags: - - typescript -- name: CodeNarc - homepage: "https://codenarc.github.io/CodeNarc/" - source: "https://github.com/CodeNarc/CodeNarc" - description: "A static analysis tool for Groovy source code, enabling monitoring and enforcement of many coding standards and best practices." - tags: - - groovy -- name: CodePatrol - homepage: "https://cyber-security.claranet.fr/en/codepatrol" - description: "Automated SAST code reviews driven by security, supports 15+ languages and includes security training." - tags: - - ci - - csharp - - javascript - - java - - php - - service - proprietary: true -- name: Codepeer - homepage: "http://www.adacore.com/codepeer" - description: Detects run-time and logic errors. - tags: - - ada - proprietary: true -- name: CodeRush - homepage: "https://www.devexpress.com/products/coderush/" - description: "Code creation, debugging, navigation, refactoring, analysis and visualization tools that use the Roslyn engine in Visual Studio 2015 and up." - tags: - - aspnet - - csharp - - dotnet - proprietary: true -- name: CodeScene - homepage: "https://empear.com/" - description: "CodeScene prioritizes technical debt, finds social patterns and identifies hidden risks in your code." - tags: - - c - - cpp - - csharp - - elixir - - go - - groovy - - java - - javascript - - kotlin - - perl - - php - - python - - typescript - proprietary: true -- name: CodeSonar from GrammaTech - homepage: "https://www.grammatech.com/products/codesonar" - description: "Advanced, whole program, deep path, static analysis of C and C++ with easy-to-understand explanations and code and path visualization." - tags: - - c - - cpp - proprietary: true -- name: codespell - homepage: "https://github.com/codespell-project/codespell" - source: "https://github.com/codespell-project/codespell" - description: Check code for common misspellings. - tags: - - writing -- name: coffeelint - homepage: "http://www.coffeelint.org/" - source: "https://github.com/clutchski/coffeelint" - description: A style checker that helps keep CoffeeScript code clean and consistent. - tags: - - coffeescript -- name: CogniCrypt - homepage: "https://www.eclipse.org/cognicrypt/" - source: "https://github.com/eclipse-cognicrypt/CogniCrypt" - description: Checks Java source and byte code for incorrect uses of cryptographic APIs. - tags: - - java -- name: cohesion - homepage: "https://github.com/mschwager/cohesion" - source: "https://github.com/mschwager/cohesion" - description: A tool for measuring Python class cohesion. - tags: - - python -- name: collector - homepage: "https://github.com/banyanops/collector" - source: "https://github.com/banyanops/collector" - description: "Run arbitrary scripts inside containers, and gather useful information." - tags: - - container -- name: complexity-report - homepage: "https://github.com/jared-stilwell/complexity-report" - source: "https://github.com/jared-stilwell/complexity-report" - description: Software complexity analysis for JavaScript projects. - tags: - - javascript - deprecated: true -- name: cookstyle - homepage: "https://docs.chef.io/cookstyle.html" - source: "https://github.com/chef/cookstyle" - description: Cookstyle is a linting tool based on the RuboCop Ruby linting tool for Chef cookbooks. - tags: - - configmanagement -- name: Corrode - homepage: "https://github.com/jameysharp/corrode" - source: "https://github.com/jameysharp/corrode" - description: Semi-automatic translation from C to Rust. Could reveal bugs in the original implementation by showing Rust compiler warnings and errors. - tags: - - c - - cpp - - rust -- name: Coverity - homepage: "https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html" - description: "Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET." - tags: - - c - - cpp - - csharp - - fortran - - java - - javascript - - php - - python - - rails - - scala - - typescript - - vbnet - proprietary: true -- name: cppcheck - homepage: "http://cppcheck.sourceforge.net/" - source: "https://github.com/danmar/cppcheck" - description: Static analysis of C/C++ code. - tags: - - c - - cpp -- name: CppDepend - homepage: "https://www.cppdepend.com" - description: "Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity." - tags: - - c - - cpp - proprietary: true - deprecated: true -- name: cpplint - homepage: "https://github.com/google/styleguide/tree/gh-pages/cpplint" - source: "https://github.com/google/styleguide/tree/gh-pages/cpplint" - description: "Automated C++ checker that follows Google's style guide." - tags: - - c - - cpp -- name: cqc - homepage: "https://github.com/xcatliu/cqc" - source: "https://github.com/xcatliu/cqc" - description: "Check your code quality for js, jsx, vue, css, less, scss, sass and styl files." - tags: - - javascript - - jsx - - vue - - css - - less -- name: cqmetrics - homepage: "https://github.com/dspinellis/cqmetrics" - source: "https://github.com/dspinellis/cqmetrics" - description: Quality metrics for C code. - tags: - - c - - cpp -- name: credo - homepage: "http://credo-ci.org/" - source: "https://github.com/rrrene/credo" - description: A static code analysis tool with a focus on code consistency and teaching. - tags: - - elixir -- name: crystal - homepage: "https://crystal-lang.org/" - source: "https://github.com/crystal-lang/crystal" - description: The Crystal compiler has built-in linting functionality. - tags: - - crystal -- name: CScout - homepage: "https://www.spinellis.gr/cscout/" - source: "https://github.com/dspinellis/cscout" - description: Complexity and quality metrics for for C and C preprocessor code. - tags: - - c - - cpp -- name: CSharpEssentials - homepage: "https://github.com/DustinCampbell/CSharpEssentials" - source: "https://github.com/DustinCampbell/CSharpEssentials" - description: "C# Essentials is a collection of Roslyn diagnostic analyzers, code fixes and refactorings that make it easy to work with C# 6 language features." - tags: - - csharp -- name: CSS Stats - homepage: "https://cssstats.com/" - source: "https://github.com/cssstats/cssstats" - description: Potentially interesting stats on stylesheets. - tags: - - css -- name: CSScomb - homepage: "https://github.com/csscomb/csscomb.js" - source: "https://github.com/csscomb/csscomb.js" - description: A coding style formatter for CSS. Supports own configurations to make style sheets beautiful and consistent. - tags: - - css - - formatter -- name: CSSLint - homepage: "http://csslint.net/" - source: "https://github.com/CSSLint/csslint" - description: Does basic syntax checking and finds problematic patterns or signs of inefficiency. - tags: - - css -- name: cwe_checker - homepage: "https://github.com/fkie-cad/cwe_checker" - source: "https://github.com/fkie-cad/cwe_checker" - description: cwe_checker finds vulnerable patterns in binary executables. - tags: - - binary -- name: cyclocomp - homepage: "https://github.com/MangoTheCat/cyclocomp" - source: "https://github.com/MangoTheCat/cyclocomp" - description: Quantifies the cyclomatic complexity of R functions / expressions. - tags: - - r -- name: D-scanner - homepage: "https://github.com/dlang-community/D-Scanner" - source: "https://github.com/dlang-community/D-Scanner" - description: D-Scanner is a tool for analyzing D source code. - tags: - - dlang -- name: Linter for dart - homepage: "https://dart-lang.github.io/linter/" - source: "https://github.com/dart-lang/linter" - description: Style linter for Dart. - tags: - - dart -- name: dagda - homepage: "https://github.com/eliasgranderubio/dagda" - source: "https://github.com/eliasgranderubio/dagda" - description: Perform static analysis of known vulnerabilities in docker images/containers. - tags: - - container -- name: dawnscanner - homepage: "https://github.com/thesp0nge/dawnscanner" - source: "https://github.com/thesp0nge/dawnscanner" - description: "A static analysis security scanner for ruby written web applications. It supports Sinatra, Padrino and Ruby on Rails frameworks." - tags: - - ruby - - rails -- name: deadcode - homepage: "https://github.com/tsenart/deadcode" - source: "https://github.com/tsenart/deadcode" - description: Finds unused code. - tags: - - go -- name: DeepScan - homepage: "https://deepscan.io" - description: An analyzer for JavaScript which targets runtime errors and quality issues rather than coding conventions. - tags: - - javascript - proprietary: true -- name: DeepCode - homepage: "https://www.deepcode.ai/" - description: "DeepCode finds bugs, security vulnerabilities, performance and API issues based on AI. DeepCode's speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, C/C++, JavaScript, Python, and TypeScript. Integrations with GitHub, BitBucket and Gitlab." - tags: - - c - - cpp - - java - - python - - javascript - - typescript - proprietary: true -- name: DeepSource - homepage: "https://deepsource.io/" - description: "In-depth static analysis to monitor source code quality and security. Supports Python and Go and can detect 600+ types of issues in verticals of bug risks, security, anti-patterns, performance, documentation and style. Native integration with GitHub." - tags: - - go - - python - proprietary: true -- name: dennis - homepage: "https://github.com/willkg/dennis/" - source: "https://github.com/willkg/dennis/" - description: A set of utilities for working with PO files to ease development and improve quality. - tags: - - translation -- name: deno_lint - homepage: "https://github.com/denoland/deno_lint" - source: "https://github.com/denoland/deno_lint" - description: Official linter for Deno. - tags: - - deno -- name: Depends - homepage: "https://github.com/multilang-depends/depends" - source: "https://github.com/multilang-depends/depends" - description: "Analyses the comprehensive dependencies of code elements for Java, C/C++, Ruby." - tags: - - c - - cpp - - java - - php -- name: dephpend - homepage: "https://dephpend.com/" - source: "https://github.com/mihaeu/dephpend" - description: Dependency analysis tool. - tags: - - php -- name: deprecation-detector - homepage: "https://github.com/sensiolabs-de/deprecation-detector" - source: "https://github.com/sensiolabs-de/deprecation-detector" - description: Finds usages of deprecated (Symfony) code. - tags: - - php -- name: deptrac - homepage: "https://github.com/sensiolabs-de/deptrac" - source: "https://github.com/sensiolabs-de/deptrac" - description: Enforce rules for dependencies between software layers. - tags: - - php -- name: Designite - homepage: "http://www.designite-tools.com" - description: "Designite supports detection of various architecture, design, and implementation smells, computation of various code quality metrics, and trend analysis." - tags: - - csharp - proprietary: true -- name: DesigniteJava - homepage: "http://www.designite-tools.com/designitejava" - description: "DesigniteJava supports detection of various architecture, design, and implementation smells along with computation of various code quality metrics." - tags: - - java - proprietary: true -- name: DesignPatternDetector - homepage: "https://github.com/Halleck45/DesignPatternDetector" - source: "https://github.com/Halleck45/DesignPatternDetector" - description: Detection of design patterns in PHP code. - tags: - - php -- name: detekt - homepage: "https://detekt.github.io/detekt/" - source: "https://github.com/detekt/detekt" - description: Static code analysis for Kotlin code. - tags: - - kotlin -- name: DevSkim - homepage: "https://github.com/Microsoft/DevSkim" - source: "https://github.com/Microsoft/DevSkim" - description: "Inline, realtime security analysis. Works with multiple programming languages and IDEs (VS, VS Code, Sublime Text, ...)." - tags: - - ide -- name: DevSkim - homepage: "https://github.com/microsoft/devskim" - source: "https://github.com/microsoft/devskim" - description: "Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others." - tags: - - asp - - c - - cpp - - ide - - java - - php - - python - - ruby -- name: dingo-hunter - homepage: "https://github.com/nickng/dingo-hunter" - source: "https://github.com/nickng/dingo-hunter" - description: Static analyser for finding deadlocks in Go. - tags: - - go -- name: Dlint - homepage: "https://github.com/dlint-py/dlint" - source: "https://github.com/dlint-py/dlint" - description: A tool for ensuring Python code is secure. - tags: - - python -- name: Docker Label Inspector - homepage: "https://github.com/garethr/docker-label-inspector" - source: "https://github.com/garethr/docker-label-inspector" - description: Lint and validate Dockerfile labels. - tags: - - container -- name: dogsled - homepage: "https://github.com/alexkohler/dogsled" - source: "https://github.com/alexkohler/dogsled" - description: Finds assignments/declarations with too many blank identifiers. - tags: - - go -- name: dotenv-linter - homepage: "https://dotenv-linter.readthedocs.io/en/latest/" - source: "https://github.com/wemake-services/dotenv-linter" - description: Linting dotenv files like a charm. - tags: - - configfile -- name: dupl - homepage: "https://github.com/mibk/dupl" - source: "https://github.com/mibk/dupl" - description: Reports potentially duplicated code. - tags: - - go -- name: EasyCodingStandard - homepage: "https://www.tomasvotruba.com/blog/2017/05/03/combine-power-of-php-code-sniffer-and-php-cs-fixer-in-3-lines/" - source: "https://github.com/Symplify/EasyCodingStandard" - description: "Combine [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) and [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer)." - tags: - - php -- name: electrolysis - homepage: "http://kha.github.io/electrolysis/" - source: "https://github.com/Kha/electrolysis" - description: A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover. - tags: - - rust -- name: elm-analyse - homepage: "https://stil4m.github.io/elm-analyse/" - source: "https://github.com/stil4m/elm-analyse" - description: "A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices." - tags: - - elm -- name: elvis - homepage: "https://github.com/inaka/elvis" - source: "https://github.com/inaka/elvis" - description: Erlang Style Reviewer. - tags: - - erlang -- name: ember-template-lint - homepage: "https://github.com/ember-template-lint/ember-template-lint" - source: "https://github.com/ember-template-lint/ember-template-lint" - description: Linter for Ember or Handlebars templates. - tags: - - template -- name: Embold - homepage: "https://embold.io" - description: "Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more." - tags: - - java - - c - - cpp - - csharp - - javascript - - typescript - - python - - go - - kotlin - - service - proprietary: true -- name: errcheck - homepage: "https://github.com/kisielk/errcheck" - source: "https://github.com/kisielk/errcheck" - description: Check that error return values are used. - tags: - - go -- name: Error-prone - homepage: "https://errorprone.info/" - source: "https://github.com/google/error-prone" - description: Catch common Java mistakes as compile-time errors. - tags: - - java -- name: escomplex - homepage: "https://github.com/jared-stilwell/escomplex" - source: "https://github.com/jared-stilwell/escomplex" - description: Software complexity analysis of JavaScript-family abstract syntax trees. - tags: - - javascript -- name: eslint - homepage: "https://eslint.org/" - source: "https://github.com/eslint/eslint" - description: A fully pluggable tool for identifying and reporting on patterns in JavaScript. - tags: - - javascript -- name: ESLint - homepage: "https://github.com/typescript-eslint/typescript-eslint" - source: "https://github.com/typescript-eslint/typescript-eslint" - description: An extensible linter for the TypeScript language. - tags: - - typescript -- name: Esprima - homepage: "https://esprima.org/" - source: "https://github.com/jquery/esprima" - description: ECMAScript parsing infrastructure for multipurpose analysis. - tags: - - javascript -- name: exakat - homepage: "https://www.exakat.io/" - source: "https://github.com/exakat/exakat" - description: An automated code reviewing engine for PHP. - tags: - - ci - - php -- name: fb-contrib - homepage: "http://fb-contrib.sourceforge.net/" - source: "https://github.com/mebigfatguy/fb-contrib" - description: A plugin for FindBugs with additional bug detectors. - tags: - - java -- name: Find Security Bugs - homepage: "https://find-sec-bugs.github.io/" - source: "https://github.com/find-sec-bugs/find-sec-bugs/" - description: The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects) - tags: - - groovy - - java - - kotlin - - scala -- name: Fix Insight - homepage: "https://www.tmssoftware.com/site/fixinsight.asp" - source: "https://www.tmssoftware.com/site/fixinsight.asp" - description: A free IDE Plugin for static code analysis. A _Pro_ edition includes a command line tool for automation purposes. - tags: - - delphi - proprietary: true -- name: flake8 - homepage: "https://github.com/PyCQA/flake8" - source: "https://github.com/PyCQA/flake8" - description: "A wrapper around `pyflakes`, `pycodestyle` and `mccabe`." - tags: - - meta - - python -- name: flawfinder - homepage: "https://www.dwheeler.com/flawfinder/" - source: "https://github.com/david-a-wheeler/flawfinder" - description: Finds possible security weaknesses. - tags: - - c - - cpp -- name: flay - homepage: "https://ruby.sadi.st/Flay.html" - source: "https://github.com/seattlerb/flay" - description: Flay analyzes code for structural similarities. - tags: - - ruby -- name: flen - homepage: "https://github.com/lafolle/flen" - source: "https://github.com/lafolle/flen" - description: Get info on length of functions in a Go package. - tags: - - go -- name: flint++ - homepage: "https://github.com/JossWhittle/FlintPlusPlus" - source: "https://github.com/JossWhittle/FlintPlusPlus" - description: "Cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook." - tags: - - c - - cpp -- name: flog - homepage: "https://ruby.sadi.st/Flog.html" - source: "https://github.com/seattlerb/flog" - description: "Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in." - tags: - - ruby -- name: flow - homepage: "https://flow.org/" - source: "https://github.com/facebook/flow" - description: A static type checker for JavaScript. - tags: - - javascript -- name: hegel - homepage: "https://hegel.js.org/" - source: "https://github.com/JSMonk/hegel" - description: A static type checker for JavaScript with a bias on type inference and strong type systems. - tags: - - javascript -- name: FlowDroid - homepage: "https://github.com/secure-software-engineering/FlowDroid" - source: "https://github.com/secure-software-engineering/FlowDroid" - description: Static taint analysis tool for Android applications. - tags: - - mobile -- name: foodcritic - homepage: "http://www.foodcritic.io/" - source: "https://github.com/foodcritic/foodcritic" - description: A lint tool that checks Chef cookbooks for common problems. - tags: - - configmanagement -- name: forbidden-apis - homepage: "https://github.com/policeman-tools/forbidden-apis" - source: "https://github.com/policeman-tools/forbidden-apis" - description: Detects and forbids invocations of specific method/class/field (like reading from a text stream without a charset). Maven/Gradle/Ant compatible. - tags: - - java -- name: Fortify - homepage: "https://software.microfocus.com/en-us/products/static-code-analysis-sast/overview" - description: "A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML." - tags: - - abap - - actionscript - - apex - - aspnet - - c - - cobol - - coldfusion - - cpp - - csharp - - html - - java - - javascript - - jsp - - objectivec - - php - - plsql - - python - - ruby - - scala - - swift - - tsql - - vbasic - - vbnet - - vbscript - - xml - proprietary: true -- name: Frama-C - homepage: "http://frama-c.com/" - source: "http://frama-c.com/download.html" - description: A sound and extensible static analyzer for C code. - tags: - - c - - cpp -- name: Frink - homepage: "https://catless.ncl.ac.uk/Programs/Frink/" - source: "https://catless.ncl.ac.uk/Programs/Frink/" - description: "A Tcl formatting and static check program (can prettify the program, minimise, obfuscate or just sanity check it)." - tags: - - tcl -- name: FSharpLint - homepage: "http://fsprojects.github.io/FSharpLint/" - source: "https://github.com/fsprojects/FSharpLint" - description: "Lint tool for F#." - tags: - - fsharp -- name: gawk --lint - homepage: "https://www.gnu.org/software/gawk/manual/html_node/Options.html" - source: "https://www.gnu.org/software/gawk/manual/html_node/Options.html" - description: Warns about constructs that are dubious or nonportable to other awk implementations. - tags: - - awk -- name: Gendarme - homepage: "https://www.mono-project.com/docs/tools+libraries/tools/gendarme/" - source: "https://github.com/mono/mono-tools/" - description: Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET). - tags: - - csharp -- name: gherkin-lint - homepage: "https://github.com/vsiakka/gherkin-lint" - source: "https://github.com/vsiakka/gherkin-lint" - description: A linter for the Gherkin-Syntax written in Javascript. - tags: - - gherkin -- name: Ghidra - homepage: "https://ghidra-sre.org" - source: "https://github.com/NationalSecurityAgency/ghidra" - description: A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission - tags: - - binary -- name: ShiftLeft Scan - homepage: "https://slscan.io" - source: https://github.com/ShiftLeftSecurity/sast-scan - description: Scan is a free open-source DevSecOps platform for detecting security issues in source code and dependencies. It supports a broad range of languages and CI/CD pipelines. - tags: - - apex - - shell - - go - - groovy - - ide - - java - - jsp - - json - - kotlin - - scala - - container - - nodejs - - configmanagement - - php - - plsql - - python - - ruby - - rust - - vbasic - - yaml -- name: Super-Linter - homepage: "https://github.com/github/super-linter" - source: "https://github.com/github/super-linter" - description: "Combination of multiple linters to install as a GitHub Action." - tags: - - coffeescript - - container - - go - - javascript - - json - - markdown - - perl - - python - - ruby - - shell - - configmanagement - - typescript - - xml - - yaml -- name: gixy - homepage: "https://github.com/yandex/gixy" - source: "https://github.com/yandex/gixy" - description: A tool to analyze Nginx configuration. The main goal is to prevent misconfiguration and automate flaw detection. - tags: - - configfile -- name: Go Meta Linter - homepage: "https://github.com/alecthomas/gometalinter" - source: "https://github.com/alecthomas/gometalinter" - description: "Concurrently run Go lint tools and normalise their output. Use `golangci-lint` for new projects." - tags: - - meta - - go - deprecated: true -- name: go tool vet --shadow - homepage: "https://golang.org/cmd/vet/#hdr-Shadowed_variables" - source: "https://github.com/golang/go/tree/master/src/cmd/vet" - description: Reports variables that may have been unintentionally shadowed. - tags: - - go -- name: go vet - homepage: "https://golang.org/cmd/vet/" - source: "https://github.com/golang/go/tree/master/src/cmd/vet" - description: Examines Go source code and reports suspicious. - tags: - - go -- name: go-consistent - homepage: "https://github.com/Quasilyte/go-consistent" - source: "https://github.com/Quasilyte/go-consistent" - description: Analyzer that helps you to make your Go programs more consistent. - tags: - - go -- name: go-critic - homepage: "https://github.com/go-critic/go-critic" - source: "https://github.com/go-critic/go-critic" - description: Go source code linter that maintains checks which are currently not implemented in other linters. - tags: - - go -- name: go/ast - homepage: "https://golang.org/pkg/go/ast/" - source: "https://github.com/golang/go/tree/master/src/go/ast" - description: Package ast declares the types used to represent syntax trees for Go packages. - tags: - - go -- name: gochecknoglobals - homepage: "https://github.com/leighmcculloch/gochecknoglobals" - source: "https://github.com/leighmcculloch/gochecknoglobals" - description: Checks that no globals are present. - tags: - - go -- name: goconst - homepage: "https://github.com/jgautheron/goconst" - source: "https://github.com/jgautheron/goconst" - description: Finds repeated strings that could be replaced by a constant. - tags: - - go -- name: gocyclo - homepage: "https://github.com/fzipp/gocyclo" - source: "https://github.com/fzipp/gocyclo" - description: Calculate cyclomatic complexities of functions in Go source code. - tags: - - go -- name: gofmt -s - homepage: "https://golang.org/cmd/gofmt/" - source: "https://github.com/golang/go/tree/master/src/cmd/gofmt" - description: Checks if the code is properly formatted and could not be further simplified. - tags: - - go -- name: goimports - homepage: "https://pkg.go.dev/golang.org/x/tools/cmd/goimports" - source: "https://github.com/golang/tools/tree/master/cmd/goimports" - description: Checks missing or unreferenced package imports. - tags: - - go -- name: GolangCI-Lint - homepage: "https://golangci-lint.run/" - source: "https://github.com/golangci/golangci-lint" - description: "Alternative to `Go Meta Linter`: GolangCI-Lint is a linters aggregator." - tags: - - go -- name: golint - homepage: "https://github.com/golang/lint" - source: "https://github.com/golang/lint" - description: Prints out coding style mistakes in Go source code. - tags: - - go -- name: Goodcheck - homepage: "https://sider.github.io/goodcheck/" - source: "https://github.com/sideci/goodcheck" - description: Regexp based customizable linter. - tags: - - c - - cpp - - java - - php -- name: goodpractice - homepage: "http://mangothecat.github.io/goodpractice/" - source: "https://github.com/mangothecat/goodpractice" - description: Analyses the source code for R packages and provides best-practice recommendations. - tags: - - r -- name: google-java-format - homepage: "https://github.com/google/google-java-format" - source: "https://github.com/google/google-java-format" - description: Google Style Reformat. - tags: - - java -- name: goreporter - homepage: "https://github.com/360EntSecGroup-Skylar/goreporter" - source: "https://github.com/360EntSecGroup-Skylar/goreporter" - description: Concurrently runs many linters and normalises their output to a report. - tags: - - meta - - go -- name: goroutine-inspect - homepage: "https://github.com/linuxerwang/goroutine-inspect" - source: "https://github.com/linuxerwang/goroutine-inspect" - description: An interactive tool to analyze Golang goroutine dump. - tags: - - go -- name: gosec (gas) - homepage: "https://securego.io/" - source: "https://github.com/securego/gosec" - description: Inspects source code for security problems by scanning the Go AST. - tags: - - go -- name: gotype - homepage: "https://pkg.go.dev/golang.org/x/tools/cmd/gotype" - source: "https://golang.org/x/tools/cmd/gotype" - description: Syntactic and semantic analysis similar to the Go compiler. - tags: - - go -- name: GraphMyCSS.com - homepage: "https://graphmycss.com" - source: "https://github.com/TheJaredWilcurt/itcss-specificity-graph" - description: CSS Specificity Graph Generator. - tags: - - css -- name: graudit - homepage: "http://www.justanotherhacker.com/" - source: "https://github.com/wireghoul/graudit" - description: "Grep rough audit - source code auditing tool." - tags: - - c - - cpp - - php - - asp - - csharp - - java - - perl - - python - - ruby -- name: GrumPHP - homepage: "https://github.com/phpro/grumphp" - source: "https://github.com/phpro/grumphp" - description: Checks code on every commit. - tags: - - php -- name: grunt-bootlint - homepage: "https://github.com/twbs/grunt-bootlint" - source: "https://github.com/twbs/grunt-bootlint" - description: A Grunt wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects. - tags: - - html -- name: gulp-bootlint - homepage: "https://github.com/tschortsch/gulp-bootlint" - source: "https://github.com/tschortsch/gulp-bootlint" - description: A gulp wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML linter for Bootstrap projects. - tags: - - html -- name: haml-lint - homepage: "https://github.com/sds/haml-lint" - source: "https://github.com/sds/haml-lint" - description: Tool for writing clean and consistent HAML. - tags: - - template -- name: Haskell Dockerfile Linter - homepage: "https://github.com/lukasmartinelli/hadolint" - source: "https://github.com/lukasmartinelli/hadolint" - description: A smarter Dockerfile linter that helpsyou build best practice Docker images. - tags: - - container -- name: Haxe Checkstyle - homepage: "http://haxecheckstyle.github.io/docs/haxe-checkstyle/home.html" - source: "https://github.com/HaxeCheckstyle/haxe-checkstyle" - description: A static analysis tool to help developers write Haxe code that adheres to a coding standard. - tags: - - haxe -- name: Helix QAC - homepage: "https://www.perforce.com/products/helix-qac" - description: "Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards." - tags: - - c - - cpp - proprietary: true -- name: herbie - homepage: "https://github.com/mcarton/rust-herbie-lint" - source: "https://github.com/mcarton/rust-herbie-lint" - description: Adds warnings or errors to your crate when using a numerically unstable floating point expression. - tags: - - rust -- name: HLint - homepage: "https://github.com/ndmitchell/hlint" - source: "https://github.com/ndmitchell/hlint" - description: HLint is a tool for suggesting possible improvements to Haskell code. - tags: - - haskell -- name: Hopper - homepage: "https://github.com/cuplv/hopper" - source: "https://github.com/cuplv/hopper" - description: A static analysis tool written in scala for languages that run on JVM. - tags: - - groovy - - java - - kotlin - - scala - deprecated: true -- name: Hound CI - homepage: "https://houndci.com/" - source: "https://github.com/houndci/hound" - description: "Comments on style violations in GitHub pull requests. Supports Coffeescript, Go, HAML, JavaScript, Ruby, SCSS and Swift." - tags: - - coffeescript - - go - - haml - - javascript - - ruby - - css - - swift -- name: HTML Inspector - homepage: "https://github.com/philipwalton/html-inspector" - source: "https://github.com/philipwalton/html-inspector" - description: HTML Inspector is a code quality tool to help you and your team write better markup. - tags: - - html - deprecated: true -- name: HTML Tidy - homepage: "http://www.html-tidy.org/" - source: "https://github.com/htacg/tidy-html5" - description: Corrects and cleans up HTML and XML documents by fixing markup errors and upgrading legacy code to modern standards. - tags: - - html -- name: HTMLHint - homepage: "https://htmlhint.com/" - source: "https://github.com/yaniswang/HTMLHint" - description: A Static Code Analysis Tool for HTML. - tags: - - html -- name: HuntBugs - homepage: "https://github.com/amaembo/huntbugs" - source: "https://github.com/amaembo/huntbugs" - description: Bytecode static analyzer tool based on Procyon Compiler Tools aimed to supersede FindBugs. - tags: - - java - deprecated: true -- name: i-Code CNES for Fortran - homepage: "https://github.com/lequal/i-CodeCNES" - source: "https://github.com/lequal/i-CodeCNES" - description: "An open source static code analysis tool for Fortran 77, Fortran 90 and Shell." - tags: - - fortran -- name: i-Code CNES for Shell - homepage: "https://github.com/lequal/i-CodeCNES" - source: "https://github.com/lequal/i-CodeCNES" - description: An open source static code analysis tool for Shell and Fortran (77 and 90). - tags: - - shell -- name: IDA Free - homepage: "https://www.hex-rays.com/products/ida/support/download_freeware/" - description: Binary code analysis tool. - proprietary: true - tags: - - binary -- name: IKOS - homepage: "https://github.com/nasa-sw-vnv/ikos" - source: "https://github.com/nasa-sw-vnv/ikos" - description: A sound static analyzer for C/C++ code based on LLVM. - tags: - - c - - cpp -- name: imhotep - homepage: "https://github.com/justinabrahms/imhotep" - source: "https://github.com/justinabrahms/imhotep" - description: Comment on commits coming into your repository and check for syntactic errors and general lint warnings. - tags: - - meta - - buildtool - - python - - ruby - - javascript -- name: include-gardener - homepage: "https://github.com/feddischson/include_gardener" - source: "https://github.com/feddischson/include_gardener" - description: "A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files." - tags: - - c - - cpp -- name: include-gardener - homepage: "https://github.com/feddischson/include_gardener" - source: "https://github.com/feddischson/include_gardener" - description: "A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files." - tags: - - python -- name: include-gardener - homepage: "https://github.com/feddischson/include_gardener" - source: "https://github.com/feddischson/include_gardener" - description: "A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files." - tags: - - ruby -- name: ineffassign - homepage: "https://github.com/gordonklaus/ineffassign" - source: "https://github.com/gordonklaus/ineffassign" - description: Detect ineffectual assignments in Go code. - tags: - - go -- name: Infer - homepage: "https://fbinfer.com/" - source: "https://github.com/facebook/infer" - description: "A static analyzer for Java, C and Objective-C" - tags: - - c - - cpp - - java - - objectivec -- name: InsiderSec - homepage: "https://insidersec.io/" - source: "https://github.com/insidersec/insider" - description: "A open source Static Application Security Testing tool (SAST) written in GoLang for Java (Maven and Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# and Javascript (Node.js)." - tags: - - java - - mobile - - kotlin - - swift - - dotnet - - javascript - - nodejs - - csharp -- name: IntelliJ IDEA - homepage: "https://www.jetbrains.com/idea/" - description: "Comes bundled with a lot of inspections for Java and Kotlin and includes tools for refactoring, formatting and more." - tags: - - ide - proprietary: true -- name: interfacer - homepage: "https://github.com/mvdan/interfacer" - source: "https://github.com/mvdan/interfacer" - description: Suggest narrower interfaces that can be used. - tags: - - go - deprecated: true -- name: Jakstab - homepage: "https://github.com/jkinder/jakstab" - source: "https://github.com/jkinder/jakstab" - description: "Jakstab is an Abstract Interpretation-based, integrated disassembly and static analysis framework for designing analyses on executables and recovering reliable control flow graphs." - tags: - - binary -- name: JArchitect - homepage: "https://www.jarchitect.com" - description: "Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity." - tags: - - java - proprietary: true -- name: JBMC - homepage: "https://www.cprover.org/jbmc/" - source: "https://github.com/peterschrammel/cbmc/releases/tag/jbmc-5.8-cav18" - description: "Bounded model-checker for Java (bytecode), verifies user-defined assertions, standard assertions, several coverage metric analyses." - tags: - - java -- name: jedi - homepage: "https://jedi.readthedocs.io/en/latest/" - source: "https://github.com/davidhalter/jedi" - description: Autocompletion/static analysis library for Python. - tags: - - python -- name: jshint - homepage: "https://jshint.com/about/" - source: "https://github.com/jshint/jshint" - discussion: "https://github.com/analysis-tools-dev/static-analysis/issues/223" - description: "Detect errors and potential problems in JavaScript code and enforce your team's coding conventions." - tags: - - javascript -- name: JSLint - homepage: "https://github.com/douglascrockford/JSLint" - source: "https://github.com/douglascrockford/JSLint" - discussion: "https://github.com/analysis-tools-dev/static-analysis/issues/223" - description: The JavaScript Code Quality Tool. - tags: - - javascript -- name: JSPrime - homepage: "http://dpnishant.github.io/jsprime/" - source: "https://github.com/dpnishant/jsprime" - description: Static security analysis tool. - tags: - - javascript - deprecated: true -- name: Kiuwan - homepage: "https://www.kiuwan.com/code-security-sast/" - description: "Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, C\\C++, Java, C#, PHP and more." - tags: - - c - - cpp - - go - - java - - javascript - - kotlin - - php - - python - - scala - - service - - swift - proprietary: true -- name: kiuwan - homepage: "https://www.kiuwan.com/" - description: Software Analytics in the Cloud supporting more than 22 programming languages. - tags: - - service - proprietary: true -- name: Klocwork - homepage: "https://www.perforce.com/products/klocwork" - description: "Quality and Security Static analysis for C/C++, Java and C#." - tags: - - c - - cpp - - csharp - - java - proprietary: true -- name: ktlint - homepage: "https://ktlint.github.io/" - source: "https://github.com/shyiko/ktlint" - description: An anti-bikeshedding Kotlin linter with built-in formatter. - tags: - - kotlin - - formatter -- name: kube-score - homepage: "https://kube-score.com/" - source: "https://github.com/zegl/kube-score" - description: Static code analysis of your Kubernetes object definitions. - tags: - - container -- name: kubeval - homepage: "https://kubeval.instrumenta.dev/" - source: "https://github.com/instrumenta/kubeval" - description: Validates your Kubernetes configuration files and supports multiple Kubernetes versions. - tags: - - container -- name: lacheck - homepage: "https://www.ctan.org/pkg/lacheck" - source: "https://www.ctan.org/tex-archive/support/lacheck" - description: A tool for finding common mistakes in LaTeX documents. - tags: - - latex -- name: TeXLab - homepage: "https://texlab.netlify.app" - source: "https://github.com/latex-lsp/texlab" - description: A Language Server Protocol implementation for TeX/LaTeX, including lint capabilities. - tags: - - latex -- name: Landscape - homepage: "https://landscape.io/" - description: Static code analysis for Python. - tags: - - service - proprietary: true - deprecated: true -- name: languagetool - homepage: "https://languagetool.org/" - source: "https://github.com/languagetool-org/languagetool" - description: Style and grammar checker for 25+ languages. It finds many errors that a simple spell checker cannot detect. - tags: - - writing -- name: laser - homepage: "https://github.com/michaeledgar/laser" - source: "https://github.com/michaeledgar/laser" - description: Static analysis and style linter for Ruby code. - tags: - - ruby - deprecated: true -- name: Qualys Container Security - homepage: "https://www.qualys.com/apps/container-security/" - description: Container native application protection to provide visibility and control of containerized applications. - tags: - - container - - service - proprietary: true -- name: LDRA - homepage: "https://ldra.com" - description: "A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules." - tags: - - c - - cpp - proprietary: true -- name: LGTM.com - homepage: "https://lgtm.com/" - description: Deep code analysis for GitHub and Bitbucket to find security vulnerabilities and critical code quality issues (using Semmle QL). Automatic code review for pull requests; free for public repositories. - tags: - - ci - - service - proprietary: true -- name: LibVCS4j - homepage: "https://github.com/uni-bremen-agst/libvcs4j" - source: "https://github.com/uni-bremen-agst/libvcs4j" - description: A Java library that allows existing tools to analyse the evolution of software systems by providing a common API for different version control systems and issue trackers. - tags: - - support -- name: linter - homepage: "https://github.com/HairyFotr/linter" - source: "https://github.com/HairyFotr/linter" - description: "Linter is a Scala static analysis compiler plugin which adds compile-time checks for various possible bugs, inefficiencies, and style problems." - tags: - - scala -- name: linter-rust - homepage: "https://github.com/AtomLinter/linter-rust" - source: "https://github.com/AtomLinter/linter-rust" - description: "Linting your Rust-files in Atom, using rustc and cargo." - tags: - - rust -- name: lintian - homepage: "https://lintian.debian.org/" - source: "https://github.com/Debian/lintian" - description: Static analysis tool for Debian packages. - tags: - - package -- name: lintr - homepage: "https://github.com/jimhester/lintr" - source: "https://github.com/jimhester/lintr" - description: Static Code Analysis for R. - tags: - - r -- name: linty fresh - homepage: "https://github.com/lyft/linty_fresh" - source: "https://github.com/lyft/linty_fresh" - description: Parse lint errors and report them to Github as comments on a pull request. - tags: - - python -- name: lll - homepage: "https://github.com/walle/lll" - source: "https://github.com/walle/lll" - description: Report long lines. - tags: - - go -- name: luacheck - homepage: "https://github.com/mpeterv/luacheck" - source: "https://github.com/mpeterv/luacheck" - description: A tool for linting and static analysis of Lua code. - tags: - - lua -- name: maligned - homepage: "https://github.com/mdempsky/maligned" - source: "https://github.com/mdempsky/maligned" - description: Detect structs that would take less memory if their fields were sorted. - tags: - - go -- name: Manalyze - homepage: "https://github.com/JusticeRage/Manalyze" - source: "https://github.com/JusticeRage/Manalyze" - description: "A static analyzer, which checks portable executables for malicious content." - tags: - - binary -- name: markdownlint - homepage: "https://github.com/DavidAnson/markdownlint" - source: "https://github.com/DavidAnson/markdownlint" - description: Node.js -based style checker and lint tool for Markdown/CommonMark files. - tags: - - markdown -- name: mccabe - homepage: "https://pypi.org/project/mccabe/" - source: "https://github.com/PyCQA/mccabe" - description: Check McCabe complexity. - tags: - - python -- name: mdl - homepage: "https://github.com/mivok/markdownlint" - source: "https://github.com/mivok/markdownlint" - description: A tool to check Markdown files and flag style issues. - tags: - - markdown -- name: MIRAI - homepage: "https://github.com/facebookexperimental/MIRAI" - source: "https://github.com/facebookexperimental/MIRAI" - description: "And abstract interpreter operating on Rust's mid-level intermediate language, and providing warnings based on taint analysis." - tags: - - rust -- name: misspell - homepage: "https://github.com/client9/misspell" - source: "https://github.com/client9/misspell" - description: Finds commonly misspelled English words. - tags: - - go -- name: misspell-fixer - homepage: "https://github.com/vlajos/misspell-fixer" - source: "https://github.com/vlajos/misspell-fixer" - description: "Quick tool for fixing common misspellings, typos in source code." - tags: - - writing -- name: Misspelled Words In Context - homepage: "http://jwilk.net/software/mwic" - source: "https://github.com/jwilk/mwic" - description: A spell-checker that groups possible misspellings and shows them in their contexts. - tags: - - writing -- name: mlint - homepage: "https://mathworks.com/help/matlab/ref/mlint.html" - description: Check MATLAB code files for possible problems. - tags: - - matlab - proprietary: true -- name: Mondrian - homepage: "http://trismegiste.github.io/Mondrian/" - source: "https://github.com/Trismegiste/Mondrian" - description: A set of static analysis and refactoring tools which use graph theory. - tags: - - php -- name: multilint - homepage: "https://github.com/adamchainz/multilint" - source: "https://github.com/adamchainz/multilint" - description: "A wrapper around `flake8`, `isort` and `modernize`." - tags: - - python - - meta -- name: mypy - homepage: "http://www.mypy-lang.org/" - source: "https://github.com/python/mypy" - description: "A static type checker that aims to combine the benefits of duck typing and static typing, frequently used with [MonkeyType](https://github.com/Instagram/MonkeyType)." - tags: - - python -- name: Nagelfar - homepage: "https://sourceforge.net/projects/nagelfar/" - source: "https://sourceforge.net/p/nagelfar/code/ci/master/tree/" - description: A static syntax checker for Tcl. - tags: - - tcl -- name: nakedret - homepage: "https://github.com/alexkohler/nakedret" - source: "https://github.com/alexkohler/nakedret" - description: Finds naked returns. - tags: - - go -- name: nargs - homepage: "https://github.com/alexkohler/nargs" - source: "https://github.com/alexkohler/nargs" - description: Finds unused arguments in function declarations. - tags: - - go -- name: NDepend - homepage: "http://www.ndepend.com/" - description: "Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity." - tags: - - csharp - proprietary: true -- name: Nitpick CI - homepage: "https://nitpick-ci.com" - description: Automated PHP code review. - tags: - - ci - - service - proprietary: true -- name: NodeJSScan - homepage: "https://opensecurity.in/" - source: "https://github.com/ajinabraham/NodeJsScan" - description: NodeJsScan is a static security code scanner for Node.js applications. - tags: - - javascript - - nodejs -- name: NullAway - homepage: "https://github.com/uber/NullAway" - source: "https://github.com/uber/NullAway" - description: "Type-based null-pointer checker with low build-time overhead; an [Error Prone](http://errorprone.info/) plugin." - tags: - - java -- name: oclint - homepage: "http://oclint.org/" - source: "https://github.com/oclint/oclint" - description: "A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C." - tags: - - c - - cpp - - objectivec -- name: OWASP Dependency Check - homepage: "https://owasp.org/www-project-dependency-check/" - source: "https://github.com/jeremylong/DependencyCheck" - description: "Checks dependencies for known, publicly disclosed, vulnerabilities." - tags: - - java -- name: paprika - homepage: "https://github.com/GeoffreyHecht/paprika" - source: "https://github.com/GeoffreyHecht/paprika" - description: A toolkit to detect some code smells in analyzed Android applications. - tags: - - mobile -- name: parallel-lint - homepage: "https://github.com/php-parallel-lint/PHP-Parallel-Lint" - source: "https://github.com/php-parallel-lint/PHP-Parallel-Lint" - description: This tool checks syntax of PHP files faster than serial check with a fancier output. - tags: - - php -- name: Parker - homepage: "https://github.com/katiefenn/parker" - source: "https://github.com/katiefenn/parker" - description: Stylesheet analysis tool. - tags: - - css -- name: Parse - homepage: "https://github.com/psecio/parse" - source: "https://github.com/psecio/parse" - description: A Static Security Scanner. - tags: - - php -- name: Pascal Analyzer - homepage: "https://peganza.com/products_pal.html" - description: A static code analysis tool with numerous reports. A free _Lite_ version is available with limited reporting. - tags: - - delphi - proprietary: true -- name: Pascal Expert - homepage: "https://peganza.com/products_pex.html" - description: IDE plugin for code analysis. Includes a subset of Pascal Analyzer reporting capabilities and is available for Delphi versions 2007 and later. - tags: - - delphi - proprietary: true -- name: pdepend - homepage: "https://pdepend.org/" - source: "https://github.com/pdepend/pdepend" - description: Calculates software metrics like cyclomatic complexity for PHP code. - tags: - - php -- name: pelusa - homepage: "https://github.com/codegram/pelusa" - source: "https://github.com/codegram/pelusa" - description: Static analysis Lint-type tool to improve your OO Ruby code. - tags: - - ruby -- name: "Perl::Critic" - homepage: "https://metacpan.org/pod/Perl::Critic" - source: "https://metacpan.org/release/Perl-Critic/source/lib/Perl/Critic.pm" - description: Critique Perl source code for best-practices. - tags: - - perl -- name: pfff - homepage: "https://github.com/facebookarchive/pfff/wiki/Main" - source: "https://github.com/returntocorp/pfff" - description: "Facebook's tools for code analysis, visualizations, or style-preserving source transformation for many languages." - tags: - - c - - java - - php - - javascript - - html - - css - - cpp - - rust - - csharp - - erlang - - haskell - - python - deprecated: true -- name: phan - homepage: "https://github.com/phan/phan/wiki" - source: "https://github.com/etsy/phan" - description: A modern static analyzer from etsy. - tags: - - php -- name: Phasar - homepage: "https://phasar.org/" - source: "https://github.com/secure-software-engineering/phasar" - description: A LLVM-based static analysis framework which comes with a taint and type state analysis. - tags: - - c - - cpp -- name: PHP Architecture Tester - homepage: "https://github.com/carlosas/phpat" - source: "https://github.com/carlosas/phpat" - description: Easy to use architecture testing tool for PHP. - tags: - - php -- name: PHP Assumptions - homepage: "https://github.com/rskuipers/php-assumptions" - source: "https://github.com/rskuipers/php-assumptions" - description: Checks for weak assumptions. - tags: - - php -- name: PHP Coding Standards Fixer - homepage: "https://cs.symfony.com/" - source: "https://github.com/FriendsOfPHP/PHP-CS-Fixer" - description: "Fixes your code according to standards like PSR-1, PSR-2, and the Symfony standard." - tags: - - php -- name: PHP Insights - homepage: "https://phpinsights.com/" - source: "https://github.com/nunomaduro/phpinsights" - description: > - Instant PHP quality checks from your console. Analysis of code quality and coding style - as well as overview of code architecture and its complexity. - tags: - - php -- name: Php Inspections (EA Extended) - homepage: "https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-" - source: "https://github.com/kalessil/phpinspectionsea" - description: A Static Code Analyzer for PHP. - tags: - - php -- name: PHP Refactoring Browser - homepage: "http://qafoolabs.github.io/php-refactoring-browser/" - source: "https://github.com/QafooLabs/php-refactoring-browser" - description: Refactoring helper. - tags: - - php -- name: PHP Semantic Versioning Checker - homepage: "https://github.com/tomzx/php-semver-checker" - source: "https://github.com/tomzx/php-semver-checker" - description: Suggests a next version according to semantic versioning. - tags: - - php -- name: PHP-Parser - homepage: "https://github.com/nikic/PHP-Parser" - source: "https://github.com/nikic/PHP-Parser" - description: A PHP parser written in PHP. - tags: - - php -- name: PHP-Token-Reflection - homepage: "https://github.com/Andrewsville/PHP-Token-Reflection" - source: "https://github.com/Andrewsville/PHP-Token-Reflection" - description: Library emulating the PHP internal reflection. - tags: - - php -- name: php7cc - homepage: "https://github.com/sstalle/php7cc" - source: "https://github.com/sstalle/php7cc" - description: PHP 7 Compatibility Checker. - tags: - - php - deprecated: true -- name: php7mar - homepage: "https://github.com/Alexia/php7mar" - source: "https://github.com/Alexia/php7mar" - description: Assist developers in porting their code quickly to PHP 7. - tags: - - php - deprecated: true -- name: PHP_CodeSniffer - homepage: "https://pear.php.net/package/PHP_CodeSniffer" - source: "https://github.com/squizlabs/PHP_CodeSniffer" - description: Detects violations of a defined set of coding standards. - tags: - - php -- name: phpca - homepage: "https://github.com/wapmorgan/PhpCodeAnalyzer" - source: "https://github.com/wapmorgan/PhpCodeAnalyzer" - description: Finds usage of non-built-in extensions. - tags: - - php -- name: phpcf - homepage: "http://wapmorgan.github.io/PhpCodeFixer/" - source: "https://github.com/wapmorgan/PhpCodeFixer/" - description: Finds usage of deprecated PHP features. - tags: - - php -- name: phpcpd - homepage: "https://github.com/sebastianbergmann/phpcpd" - source: "https://github.com/sebastianbergmann/phpcpd" - description: Copy/Paste Detector for PHP code. - tags: - - php -- name: phpdcd - homepage: "https://github.com/sebastianbergmann/phpdcd" - source: "https://github.com/sebastianbergmann/phpdcd" - description: Dead Code Detector (DCD) for PHP code. - tags: - - php - deprecated: true -- name: PhpDependencyAnalysis - homepage: "https://mamuz.github.io/PhpDependencyAnalysis/" - source: "https://github.com/mamuz/PhpDependencyAnalysis" - description: Builds a dependency graph for a project. - tags: - - php -- name: phpdoc-to-typehint - homepage: "https://github.com/dunglas/phpdoc-to-typehint" - source: "https://github.com/dunglas/phpdoc-to-typehint" - description: Add scalar type hints and return types to existing PHP projects using PHPDoc annotations. - tags: - - php -- name: phpDocumentor - homepage: "https://www.phpdoc.org/" - source: "https://github.com/phpDocumentor/phpDocumentor" - description: Analyzes PHP source code to generate documentation. - tags: - - php -- name: phploc - homepage: "https://github.com/sebastianbergmann/phploc" - source: "https://github.com/sebastianbergmann/phploc" - description: A tool for quickly measuring the size and analyzing the structure of a PHP project. - tags: - - php -- name: PHPMD - homepage: "https://phpmd.org/" - source: "https://github.com/phpmd/phpmd" - description: Finds possible bugs in your code. - tags: - - php -- name: PhpMetrics - homepage: "http://www.phpmetrics.org/" - source: "https://github.com/phpmetrics/PhpMetrics" - description: Calculates and visualizes various code quality metrics. - tags: - - php -- name: phpmnd - homepage: "https://github.com/povils/phpmnd" - source: "https://github.com/povils/phpmnd" - description: Helps to detect magic numbers. - tags: - - php -- name: PHPQA - homepage: "https://edgedesigncz.github.io/phpqa/" - source: "https://github.com/EdgedesignCZ/phpqa" - description: "A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics)." - tags: - - php -- name: phpqa - jakzal - homepage: "https://github.com/jakzal/phpqa" - source: "https://github.com/jakzal/phpqa" - description: Many tools for PHP static analysis in one container. - tags: - - php -- name: phpqa - jmolivas - homepage: "https://github.com/jmolivas/phpqa" - source: "https://github.com/jmolivas/phpqa" - description: PHPQA all-in-one Analyzer CLI tool. - tags: - - php -- name: phpsa - homepage: "https://github.com/ovr/phpsa" - source: "https://github.com/ovr/phpsa" - description: Static analysis tool for PHP. - tags: - - php -- name: php-speller - homepage: "https://github.com/mekras/php-speller" - source: "https://github.com/mekras/php-speller" - description: PHP spell check library. - tags: - - php -- name: PHPStan - homepage: "https://phpstan.org/" - source: "https://github.com/phpstan/phpstan" - description: PHP Static Analysis Tool - discover bugs in your code without running it! - tags: - - php -- name: plato - homepage: "https://github.com/es-analysis/plato" - source: "https://github.com/es-analysis/plato" - description: Visualize JavaScript source complexity. - tags: - - javascript - deprecated: true -- name: es6-plato - homepage: "https://github.com/the-simian/es6-plato" - source: "https://github.com/the-simian/es6-plato" - description: Visualize JavaScript (ES6) source complexity. - tags: - - javascript -- name: PMD - homepage: "https://pmd.github.io/" - source: "https://github.com/pmd/pmd" - description: "A source code analyzer for Java, Javascript, PLSQL, XML, XSL and others." - tags: - - java - - javascript - - plsql - - scala - - xml -- name: Polymer-analyzer - homepage: "https://github.com/Polymer/tools/tree/master/packages/analyzer" - source: "https://github.com/Polymer/tools/tree/master/packages/analyzer" - description: A static analysis framework for Web Components. - tags: - - html - - javascript -- name: Polyspace Bug Finder - homepage: "https://www.mathworks.com/products/polyspace-bug-finder.html" - description: "Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software." - tags: - - c - - cpp - proprietary: true -- name: Polyspace Code Prover - homepage: "https://www.mathworks.com/products/polyspace-code-prover.html" - description: "Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code." - tags: - - c - - cpp - proprietary: true -- name: Polyspace for Ada - homepage: "https://www.mathworks.com/products/polyspace-ada.html" - description: "Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in source code." - tags: - - ada - proprietary: true -- name: portlint - homepage: "https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports" - source: "https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports" - description: A verifier for FreeBSD and DragonFlyBSD port directories. - tags: - - make -- name: PostCSS - homepage: "https://postcss.org/" - source: "https://github.com/postcss/postcss" - description: A tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more. - tags: - - css -- name: pre-commit - homepage: "https://pre-commit.com/" - source: "https://github.com/pre-commit/pre-commit" - description: A framework for managing and maintaining multi-language pre-commit hooks. - tags: - - c - - cpp - - java - - php -- name: prealloc - homepage: "https://github.com/alexkohler/prealloc" - source: "https://github.com/alexkohler/prealloc" - description: Finds slice declarations that could potentially be preallocated. - tags: - - go -- name: Prettier - homepage: "https://prettier.io/" - source: "https://github.com/prettier/prettier" - description: An opinionated code formatter. - tags: - - javascript - - typescript - - html - - formatter -- name: Primitive Erlang Security Tool (PEST) - homepage: "https://github.com/okeuday/pest" - source: "https://github.com/okeuday/pest" - description: A tool to do a basic scan of Erlang source code and report any function calls that may cause Erlang source code to be insecure. - tags: - - erlang -- name: Progpilot - homepage: "https://github.com/designsecurity/progpilot" - source: "https://github.com/designsecurity/progpilot" - description: A static analysis tool for security purposes. - tags: - - php -- name: Project Wallace CSS Analyzer - homepage: "https://www.projectwallace.com/" - source: "https://github.com/projectwallace/css-analyzer" - description: "Analytics for CSS, part of [Project Wallace](https://www.projectwallace.com)." - tags: - - css -- name: Pronto - homepage: "https://github.com/prontolabs/pronto" - source: "https://github.com/prontolabs/pronto" - description: "Quick automated code review of your changes. Supports more than 40 runners for various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more." - tags: - - c - - ci - - cpp - - elixir - - java - - javascript - - php - - ruby - - ci -- name: proselint - homepage: "http://proselint.com/" - source: "https://github.com/amperser/proselint/" - description: A linter for English prose with a focus on writing style instead of grammar. - tags: - - writing -- name: prospector - homepage: "https://github.com/PyCQA/prospector" - source: "https://github.com/PyCQA/prospector" - description: "A wrapper around `pylint`, `pep8`, `mccabe` and others." - tags: - - python - - meta -- name: protolint - homepage: "https://github.com/yoheimuta/protolint" - source: "https://github.com/yoheimuta/protolint" - description: Pluggable linter and fixer to enforce Protocol Buffer style and conventions. - tags: - - protobuf -- name: Psalm - homepage: "https://psalm.dev/" - source: "https://github.com/vimeo/psalm" - description: Static analysis tool for finding type errors in PHP applications. - tags: - - php -- name: PT.PM - homepage: "https://github.com/PositiveTechnologies/PT.PM" - source: "https://github.com/PositiveTechnologies/PT.PM" - description: "An engine for searching patterns in the source code, based on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, and JavaScript are supported. Patterns can be described within the code or using a DSL." - tags: - - csharp - - java - - php - - plsql - - tsql - - javascript - deprecated: true -- name: PullRequest - homepage: "https://www.pullrequest.com" - description: Code review as a service with built-in static analysis. - tags: - - ci - - service - proprietary: true -- name: Puma Scan - homepage: "https://pumasecurity.io/" - source: "https://github.com/pumasecurity/puma-scan" - description: "Puma Scan provides real time secure code analysis for common vulnerabilities (XSS, SQLi, CSRF, LDAPi, crypto, deserialization, etc.) as development teams write code in Visual Studio." - tags: - - csharp - - ide -- name: Puppet Lint - homepage: "https://github.com/rodjek/puppet-lint" - source: "https://github.com/rodjek/puppet-lint" - description: Check that your Puppet manifests conform to the style guide. - tags: - - configmanagement -- name: PVS-Studio - homepage: "https://www.viva64.com/en/pvs-studio/" - description: "A ([conditionally free](https://www.viva64.com/en/b/0614/) for FOSS and individual developers) static analysis of C, C++, C# and Java code. For advertising purposes [you can propose a large FOSS project for analysis by PVS employees](https://github.com/viva64/pvs-studio-check-list). Supports CWE mapping, MISRA and CERT coding standards." - tags: - - c - - cpp - - csharp - - java - proprietary: true -- name: py-find-injection - homepage: "https://github.com/uber/py-find-injection" - source: "https://github.com/uber/py-find-injection" - description: Find SQL injection vulnerabilities in Python code. - tags: - - python - deprecated: true -- name: pycodestyle - homepage: "https://pycodestyle.pycqa.org/en/latest/" - source: "https://github.com/PyCQA/pycodestyle" - description: "(Formerly `pep8`) Check Python code against some of the style conventions in PEP 8." - tags: - - python -- name: pydocstyle - homepage: "http://www.pydocstyle.org" - source: "https://github.com/PyCQA/pydocstyle" - description: Check compliance with Python docstring conventions. - tags: - - python -- name: pyflakes - homepage: "https://pypi.org/project/pyflakes/" - source: "https://github.com/pyflakes/pyflakes/" - description: Check Python source files for errors. - tags: - - python -- name: pylint - homepage: "http://pylint.pycqa.org/en/latest/" - source: "https://github.com/PyCQA/pylint" - description: "Looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. It additionally includes `pyreverse` (an UML diagram generator) and `symilar` (a similarities checker)." - tags: - - python -- name: pyre-check - homepage: "https://pyre-check.org/" - source: "https://github.com/facebook/pyre-check" - description: "A fast, scalable type checker for large Python codebases." - tags: - - python -- name: pyright - homepage: "https://github.com/Microsoft/pyright" - source: "https://github.com/Microsoft/pyright" - description: "Static type checker for Python, created to address gaps in existing tools like mypy." - tags: - - python -- name: pyroma - homepage: "https://github.com/regebro/pyroma" - source: "https://github.com/regebro/pyroma" - description: "Rate how well a Python project complies with the best practices of the Python packaging ecosystem, and list issues that could be improved." - tags: - - python -- name: PyT - Python Taint - homepage: "https://github.com/python-security/pyt" - source: "https://github.com/python-security/pyt" - description: A static analysis tool for detecting security vulnerabilities in Python web applications. - tags: - - python - deprecated: true -- name: pytype - homepage: "https://google.github.io/pytype/" - source: "https://github.com/google/pytype" - description: A static type analyzer for Python code. - tags: - - python -- name: Qafoo Quality Analyzer - homepage: "https://github.com/Qafoo/QualityAnalyzer" - source: "https://github.com/Qafoo/QualityAnalyzer" - description: Visualizes metrics and source code. - tags: - - php -- name: qark - homepage: "https://github.com/linkedin/qark" - source: "https://github.com/linkedin/qark" - description: Tool to look for several security related Android application vulnerabilities. - tags: - - mobile -- name: quality - homepage: "https://github.com/jden/quality" - source: "https://github.com/jden/quality" - description: Zero configuration code and module linting. - tags: - - javascript - deprecated: true -- name: quality - homepage: "https://github.com/apiology/quality" - source: "https://github.com/apiology/quality" - description: "Runs quality checks on your code using community tools, and makes sure your numbers don't get any worse over time." - tags: - - ci - - ruby -- name: QuantifiedCode - homepage: "https://github.com/quantifiedcode/quantifiedcode" - source: "https://github.com/quantifiedcode/quantifiedcode" - description: Automated code review & repair. - tags: - - ci - - service - deprecated: true -- name: Querly - homepage: "https://github.com/soutaro/querly" - source: "https://github.com/soutaro/querly" - description: Pattern Based Checking Tool for Ruby. - tags: - - ruby -- name: qulice - homepage: "https://www.qulice.com/" - source: "https://github.com/teamed/qulice" - description: "Combines a few (pre-configured) static analysis tools (checkstyle, PMD, Findbugs, ...)." - tags: - - java -- name: radon - homepage: "https://radon.readthedocs.io/en/latest/" - source: "https://github.com/rubik/radon" - description: A Python tool that computes various metrics from the source code. - tags: - - python -- name: Railroader - homepage: "https://railroader.org/" - source: "https://github.com/david-a-wheeler/railroader" - description: An open source static analysis security vulnerability scanner for Ruby on Rails applications. - tags: - - ruby -- name: reek - homepage: "https://github.com/troessner/reek" - source: "https://github.com/troessner/reek" - description: Code smell detector for Ruby. - tags: - - ruby -- name: Refactoring Essentials - homepage: "https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.RefactoringEssentialsforVisualStudio" - source: "https://github.com/icsharpcode/RefactoringEssentials" - description: "The free Visual Studio 2015 extension for C# and VB.NET refactorings, including code best practice analyzers." - tags: - - csharp - - vbnet -- name: relint - homepage: "https://github.com/codingjoe/relint" - source: "https://github.com/codingjoe/relint" - description: A static file linter that allows you to write custom rules using regular expressions (RegEx). - tags: - - python - - java - - javascript - - c - - cpp - - dotnet - - jsx -- name: remark-lint - homepage: "https://remark.js.org/" - source: "https://github.com/remarkjs/remark-lint" - description: Pluggable Markdown code style linter written in JavaScript. - tags: - - markdown -- name: ReSharper - homepage: "https://www.jetbrains.com/resharper/" - description: "Extends Visual Studio with on-the-fly code inspections for C#, VB.NET, ASP.NET, JavaScript, TypeScript and other technologies." - tags: - - asp - - csharp - - javascript - - typescript - - vbnet - proprietary: true -- name: Reshift - homepage: "https://www.reshiftsecurity.com/" - description: A source code analysis tool for detecting and managing Java security vulnerabilities. - tags: - - service - proprietary: true -- name: retire.js - homepage: "http://retirejs.github.io/retire.js/" - source: "https://github.com/RetireJS/retire.js" - description: Scanner detecting the use of JavaScript libraries with known vulnerabilities. - tags: - - javascript -- name: Reviewdog - homepage: "https://github.com/haya14busa/reviewdog" - source: "https://github.com/haya14busa/reviewdog" - description: A tool for posting review comments from any linter in any code hosting service. - tags: - - ci - - go -- name: revive - homepage: "https://revive.run/" - source: "https://github.com/mgechev/revive" - description: "Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint." - tags: - - go -- name: RIPS - homepage: "https://www.ripstech.com/" - description: A static source code analyser for vulnerabilities in PHP scripts. - tags: - - php - - java - - nodejs - proprietary: true -- name: Roslyn Analyzers - homepage: "https://github.com/dotnet/roslyn-analyzers" - source: "https://github.com/dotnet/roslyn-analyzers" - description: Roslyn-based implementation of FxCop analyzers. - tags: - - csharp - - dotnet -- name: Roslyn Security Guard - homepage: "https://security-code-scan.github.io/" - source: "https://github.com/security-code-scan/security-code-scan" - description: "Project that focuses on the identification of potential vulnerabilities such as SQL injection, cross-site scripting (XSS), CSRF, cryptography weaknesses, hardcoded passwords and many more." - tags: - - csharp - - vbnet -- name: Roslynator - homepage: "https://github.com/JosefPihrt/Roslynator/" - source: "https://github.com/JosefPihrt/Roslynator/" - description: "A collection of 190+ analyzers and 190+ refactorings for C#, powered by Roslyn." - tags: - - csharp -- name: rpmlint - homepage: "https://github.com/rpm-software-management/rpmlint" - source: "https://github.com/rpm-software-management/rpmlint" - description: Tool for checking common errors in rpm packages. - tags: - - package -- name: RuboCop - homepage: "https://docs.rubocop.org/rubocop/" - source: "https://github.com/rubocop-hq/rubocop" - description: "A Ruby static code analyzer, based on the community Ruby style guide." - tags: - - ruby -- name: Rubrowser - homepage: "http://www.emadelsaid.com/rubrowser/" - source: "https://github.com/blazeeboy/rubrowser" - description: Ruby classes interactive dependency graph generator. - tags: - - ruby -- name: ruby-lint - homepage: "http://code.yorickpeterse.com/ruby-lint/latest/" - source: "https://gitlab.com/yorickpeterse/ruby-lint" - description: Static code analysis for Ruby. - tags: - - ruby - deprecated: true -- name: rubycritic - homepage: "https://github.com/whitesmith/rubycritic" - source: "https://github.com/whitesmith/rubycritic" - description: A Ruby code quality reporter. - tags: - - ruby -- name: Rust Language Server - homepage: "https://github.com/rust-lang-nursery/rls" - source: "https://github.com/rust-lang-nursery/rls" - description: "Supports functionality such as 'goto definition', symbol search, reformatting, and code completion, and enables renaming and refactorings." - tags: - - rust -- name: rustfix - homepage: "https://github.com/rust-lang/rustfix" - source: "https://github.com/rust-lang/rustfix" - description: "Read and apply the suggestions made by rustc (and third-party lints, like those offered by clippy)." - tags: - - rust -- name: safesql - homepage: "https://github.com/stripe/safesql" - source: "https://github.com/stripe/safesql" - description: Static analysis tool for Golang that protects against SQL injections. - tags: - - go -- name: SandiMeter - homepage: "https://rubygems.org/gems/sandi_meter" - source: "https://github.com/makaroni4/sandi_meter" - description: "Static analysis tool for checking Ruby code for Sandi Metz' rules." - tags: - - ruby - deprecated: true -- name: sass-lint - homepage: "https://github.com/sasstools/sass-lint" - source: "https://github.com/sasstools/sass-lint" - description: A Node-only Sass linter for both sass and scss syntax. - tags: - - css - deprecated: true -- name: Scalastyle - homepage: "http://www.scalastyle.org" - source: "https://github.com/scalastyle/scalastyle" - description: Scalastyle examines your Scala code and indicates potential problems with it. - tags: - - scala -- name: scan-build - homepage: "https://clang-analyzer.llvm.org/scan-build.html" - source: "https://clang-analyzer.llvm.org/scan-build.html" - description: Analyzes C/C++ code using LLVM at compile-time. - tags: - - c - - cpp -- name: scapegoat - homepage: "https://github.com/sksamuel/scapegoat" - source: "https://github.com/sksamuel/scapegoat" - description: Scala compiler plugin for static code analysis. - tags: - - scala -- name: Scrutinizer - homepage: "https://scrutinizer-ci.com/" - description: A proprietary code quality checker that can be integrated with GitHub. - tags: - - service - proprietary: true -- name: scsslint - homepage: "https://github.com/brigade/scss-lint" - source: "https://github.com/brigade/scss-lint" - description: Linter for SCSS files. - tags: - - css - deprecated: true -- name: Security Code Scan - homepage: "https://security-code-scan.github.io/" - source: "https://github.com/security-code-scan/security-code-scan" - description: "Security code analyzer for C# and VB.NET. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates into Visual Studio 2015 and newer. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc." - tags: - - c - - cpp - - csharp - - ide - - java - - php - - vbnet -- name: Semgrep - homepage: "https://semgrep.live" - source: "https://github.com/returntocorp/semgrep" - description: "Free, open-source lightweight static analysis for many languages. Find and block bug variants with patterns that look like source code." - tags: - - c - - go - - java - - javascript - - python -- name: Semmle QL and LGTM - homepage: "https://semmle.com/" - description: "Find security vulnerabilities, variants, and critical code quality issues using queries over source code. Automatic PR code review; free for public GitHub/Bitbucket repo: [LGTM.com](https://LGTM.com)." - tags: - - c - - ci - - cpp - - java - - php - proprietary: true -- name: SensioLabs Insight - homepage: "https://insight.sensiolabs.com/" - description: "Detect security risks, find bugs and provide actionable metrics for PHP projects." - tags: - - php - - service - proprietary: true -- name: shellcheck - homepage: "https://www.shellcheck.net/" - source: "https://github.com/koalaman/shellcheck" - description: "ShellCheck, a static analysis tool that gives warnings and suggestions for bash/sh shell scripts." - tags: - - shell -- name: shipshape - homepage: "https://github.com/google/shipshape" - source: "https://github.com/google/shipshape" - description: Static program analysis platform that allows custom analyzers to plug in through a common interface. - tags: - - c - - cpp - - java - - php - deprecated: true -- name: Sider - homepage: "https://sider.review" - description: "An automated code reviewing tool. Improving developers' productivity." - tags: - - ci - - service - - ruby - - python - - css - - go - - swift - proprietary: true -- name: slim-lint - homepage: "https://github.com/sds/slim-lint" - source: "https://github.com/sds/slim-lint" - description: Configurable tool for analyzing Slim templates. - tags: - - template -- name: slither - homepage: "https://github.com/trailofbits/slither" - source: "https://github.com/trailofbits/slither" - description: "Static analysis framework that runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses." - tags: - - solidity -- name: SmartDec Scanner - homepage: "https://smartdecscanner.com/" - description: "SAST tool which is capable of identifying vulnerabilities and undocumented features. The analyzer scans the source code and executables without debug info (i.e. binaries). Supports: Java/Scala/Kotlin, PHP, C#, JavaScript, TypeScript, VBScript, HTML5, Python, Perl, C/C++, Objective-C/Swift, PL/SQL, T-SQL, ABAP, 1C, Apex, Go, Ruby, Groovy, Delphi, VBA, Visual Basic 6, Solidity, Vyper, COBOL." - tags: - - abap - - apex - - c - - cobol - - cpp - - csharp - - delphi - - go - - groovy - - html - - java - - javascript - - kotlin - - objectivec - - perl - - php - - plsql - - python - - ruby - - scala - - solidity - - swift - - tsql - - typescript - - vba - - vbscript - - vbasic - - vyper - proprietary: true -- name: Snyk - homepage: "https://snyk.io/" - description: Vulnerability scanner for dependencies of node.js apps (free for Open Source Projects). - tags: - - ci - - container - - go - - java - - javascript - - php - - python - - ruby - - service - proprietary: true -- name: sobelow - homepage: "https://github.com/nccgroup/sobelow" - source: "https://github.com/nccgroup/sobelow" - description: Security-focused static analysis for the Phoenix Framework. - tags: - - elixir -- name: solhint - homepage: "https://protofire.github.io/solhint/" - source: "https://github.com/protofire/solhint" - description: Solhint is an open source project created by https://protofire.io. Its goal is to provide a linting utility for Solidity code. - tags: - - solidity -- name: solium - homepage: "https://ethlint.readthedocs.io/en/latest/" - source: "https://github.com/duaraghav8/Solium" - description: Solium is a linter to identify and fix style and security issues in Solidity smart contracts. - tags: - - solidity -- name: SonarCloud - homepage: "https://sonarcloud.io" - description: "Multilanguage cloud-based static code analysis. History, trends, security hot-spots, pull request analysis and more. Free for open source." - tags: - - ci - - service - proprietary: true -- name: SonarLint for Visual Studio - homepage: "https://vs.sonarlint.org/" - source: "https://github.com/SonarSource/sonarlint-visualstudio" - description: SonarLint is an extension for Visual Studio 2015 and 2017 that provides on-the-fly feedback to developers on new bugs and quality issues injected into .NET code. - tags: - - c - - cpp - - csharp - - javascript - - vbnet -- name: SonarQube - homepage: "http://www.sonarqube.org/" - source: "https://github.com/SonarSource/sonarqube" - description: SonarQube is an open platform to manage code quality. - tags: - - ci - - csharp - - css - - go - - html - - java - - javascript - - kotlin - - php - - python - - ruby - - scala - - typescript - - xml -- name: Soot - homepage: "https://soot-oss.github.io/soot/" - source: "https://github.com/soot-oss/soot" - description: A framework for analyzing and transforming Java and Android applications. - tags: - - java -- name: Sorbet - homepage: "https://sorbet.org/" - source: "https://github.com/sorbet/sorbet" - description: "A fast, powerful type checker designed for Ruby." - tags: - - ruby -- name: SourceMeter - homepage: "https://www.sourcemeter.com/resources/rpg/" - description: Static Code Analysis for RPG III and RPG IV versions (including free-form). - tags: - - rpg - proprietary: true -- name: SPARK - homepage: "https://www.adacore.com/about-spark" - description: Static analysis and formal verification toolset for Ada. - tags: - - ada - proprietary: true -- name: Specificity Graph - homepage: "https://jonassebastianohlsson.com/specificity-graph/" - source: "https://github.com/pocketjoso/specificity-graph" - description: CSS Specificity Graph Generator. - tags: - - css -- name: Spectral - homepage: "https://stoplight.io/open-source/spectral" - source: "https://github.com/stoplightio/spectral" - description: A flexible JSON/YAML linter, with out of the box support for OpenAPI v2/v3 and AsyncAPI v2. - tags: - - json - - yaml -- name: splint - homepage: "http://splint.org/" - source: "https://github.com/ravenexp/splint" - description: Annotation-assisted static program checker. - tags: - - c - - cpp -- name: Spoon - homepage: "http://spoon.gforge.inria.fr/" - source: "https://github.com/INRIA/spoon" - description: Spoon is a metaprogramming library to analyze and transform Java source code (incl Java 9, 10, 11, 12, 13, 14). It parses source files to build a well-designed AST with powerful analysis and transformation API. Can be integrated in Maven and Gradle. - tags: - - java -- name: SpotBugs - homepage: "https://spotbugs.github.io/" - source: "https://github.com/spotbugs/spotbugs" - description: "SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code." - tags: - - java -- name: sqlcheck - homepage: "https://github.com/jarulraj/sqlcheck" - source: "https://github.com/jarulraj/sqlcheck" - description: Automatically identify anti-patterns in SQL queries. - tags: - - sql -- name: sqlint - homepage: "https://github.com/purcell/sqlint" - source: "https://github.com/purcell/sqlint" - description: Simple SQL linter. - tags: - - sql -- name: standard - homepage: "http://standardjs.com/" - source: "https://github.com/standard/standard" - description: An npm module that checks for Javascript Styleguide issues. - tags: - - javascript - - nodejs -- name: staticcheck - homepage: "https://staticcheck.io/" - source: "https://github.com/dominikh/go-tools" - description: "Go static analysis that specialises in finding bugs, simplifying code and improving performance." - tags: - - go -- name: STOKE - homepage: "http://stoke.stanford.edu/" - source: "https://github.com/StanfordPL/stoke" - description: A programming-language agnostic stochastic optimizer for the x86_64 instruction set. It uses random search to explore the extremely high-dimensional space of all possible program transformations. - tags: - - asm -- name: structcheck - homepage: "https://gitlab.com/opennota/check" - source: "https://gitlab.com/opennota/check" - description: Find unused struct fields. - tags: - - go -- name: Stylelint - homepage: "http://stylelint.io/" - source: "https://github.com/stylelint/stylelint" - description: Linter for SCSS/CSS files. - tags: - - css -- name: styler - homepage: "https://styler.r-lib.org/" - source: "https://github.com/r-lib/styler/" - description: Formatting of R source code files and pretty-printing of R code. - tags: - - r - - formatter -- name: SVF - homepage: "http://svf-tools.github.io/SVF/" - source: "https://github.com/SVF-tools/SVF" - description: A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs. - tags: - - c - - cpp -- name: SwiftFormat - homepage: "https://github.com/nicklockwood/SwiftFormat" - source: "https://github.com/nicklockwood/SwiftFormat" - description: A library and command-line formatting tool for reformatting Swift code. - tags: - - formatter - - swift -- name: SwiftLint - homepage: "https://realm.github.io/SwiftLint/" - source: "https://github.com/realm/SwiftLint" - description: A tool to enforce Swift style and conventions. - tags: - - swift -- name: Synopsys - homepage: "https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html" - description: "A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift)." - tags: - - c - - ci - - cpp - - csharp - - fortran - - java - - javascript - - mobile - - nodejs - - php - - python - - ruby - - swift - proprietary: true -- name: Tailor - homepage: "https://tailor.sh/" - source: "https://github.com/sleekbyte/tailor" - description: "A static analysis and lint tool for source code written in Apple's Swift programming language." - tags: - - swift - deprecated: true -- name: tclchecker - homepage: "https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt" - source: "https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt" - description: "A static syntax analysis module (as part of [TDK](https://github.com/ActiveState/tdk))." - tags: - - tcl -- name: Teamscale - homepage: "http://www.teamscale.com/" - description: Static and dynamic analysis tool supporting more than 25 languages and direct IDE integration. Free hosting for Open Source projects available on request. Free academic licenses available. - tags: - - abap - - c - - ci - - cpp - - csharp - - ide - - java - - service - proprietary: true -- name: tern - homepage: "https://ternjs.net/" - source: "https://github.com/ternjs/tern" - description: "A JavaScript code analyzer for deep, cross-editor language support." - tags: - - javascript -- name: terraform-compliance - homepage: "https://terraform-compliance.com" - source: "https://github.com/eerkunt/terraform-compliance" - description: "A lightweight, compliance- and security focused, BDD test framework against Terraform." - tags: - - configmanagement -- name: terrascan - homepage: "https://github.com/cesar-rodriguez/terrascan" - source: "https://github.com/cesar-rodriguez/terrascan" - description: Collection of security and best practice tests for static code analysis of Terraform templates. - tags: - - configmanagement -- name: test - homepage: "http://golang.org/pkg/testing/" - source: "http://golang.org/pkg/testing/" - description: Show location of test failures from the stdlib testing module. - tags: - - go -- name: Test Design Studio - homepage: "http://patterson-consulting.net/tds" - description: A full IDE with static code analysis for Micro Focus Unified Functional Testing VBScript-based automated tests. - tags: - - vbscript - proprietary: true -- name: tflint - homepage: "https://github.com/wata727/tflint" - source: "https://github.com/wata727/tflint" - description: "A Terraform linter for detecting errors that can not be detected by `terraform plan`." - tags: - - configmanagement -- name: TscanCode - homepage: "https://github.com/Tencent/TscanCode" - source: "https://github.com/Tencent/TscanCode" - description: "A fast and accurate static analysis solution for C/C++, C#, Lua codes provided by Tencent. Using GPLv3 license." - tags: - - c - - cpp - - csharp - - lua -- name: tslint-clean-code - homepage: "https://www.npmjs.com/package/tslint-clean-code" - source: "https://github.com/Glavin001/tslint-clean-code" - description: A set of TSLint rules inspired by the Clean Code handbook. - tags: - - typescript -- name: tslint-microsoft-contrib - homepage: "https://github.com/Microsoft/tslint-microsoft-contrib" - source: "https://github.com/Microsoft/tslint-microsoft-contrib" - description: A set of tslint rules for static code analysis of TypeScript projects maintained by Microsoft. - tags: - - typescript -- name: tsqllint - homepage: "https://github.com/tsqllint/tsqllint" - source: "https://github.com/tsqllint/tsqllint" - description: T-SQL-specific linter. - tags: - - sql -- name: TSqlRules - homepage: "https://github.com/ashleyglee/TSqlRules" - source: "https://github.com/ashleyglee/TSqlRules" - description: TSQL Static Code Analysis Rules for SQL Server. - tags: - - sql -- name: Tuli - homepage: "https://github.com/ircmaxell/Tuli" - source: "https://github.com/ircmaxell/Tuli" - description: A static analysis engine. - tags: - - php -- name: twig-lint - homepage: "https://github.com/asm89/twig-lint" - source: "https://github.com/asm89/twig-lint" - description: twig-lint is a lint tool for your twig files. - tags: - - php -- name: Twiggy - homepage: "https://rustwasm.github.io/twiggy/" - source: "https://github.com/rustwasm/twiggy" - description: "Analyzes a binary's call graph to profile code size. The goal is to slim down binaries." - tags: - - binary -- name: unconvert - homepage: "https://github.com/mdempsky/unconvert" - source: "https://github.com/mdempsky/unconvert" - description: Detect redundant type conversions. - tags: - - go -- name: Undebt - homepage: "https://github.com/Yelp/undebt" - source: "https://github.com/Yelp/undebt" - description: "Language-independent tool for massive, automatic, programmable refactoring based on simple pattern definitions." - tags: - - c - - cpp - - java - - php -- name: Understand - homepage: "https://scitools.com/ada-programming-essential/" - description: "IDE that provides code analysis, standards testing, metrics, graphing, dependency analysis and more for Ada and VHDL." - tags: - - ada - proprietary: true -- name: Unibeautify - homepage: "https://unibeautify.com/" - source: "https://github.com/unibeautify/unibeautify" - description: "Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more." - tags: - - formatter - - c - - cpp - - css - - go - - html - - java - - javascript - - jsx - - markdown - - objectivec - - php - - python - - typescript - - vue -- name: unimport - homepage: "https://github.com/alexkohler/unimport" - source: "https://github.com/alexkohler/unimport" - description: Finds unnecessary import aliases. - tags: - - go -- name: unparam - homepage: "https://github.com/mvdan/unparam" - source: "https://github.com/mvdan/unparam" - description: Find unused function parameters. - tags: - - go -- name: Upsource - homepage: "https://www.jetbrains.com/upsource/" - description: "Code review tool with static code analysis and code-aware navigation for Java, PHP, JavaScript and Kotlin." - tags: - - ci - - java - - javascript - - kotlin - - php - - service - proprietary: true -- name: vale - homepage: "https://errata-ai.gitbook.io/vale/" - source: "https://github.com/ValeLint/vale" - description: "A customizable, syntax-aware linter for prose." - tags: - - writing -- name: varcheck - homepage: "https://gitlab.com/opennota/check" - source: "https://gitlab.com/opennota/check" - description: Find unused global variables and constants. - tags: - - go -- name: vera++ - homepage: "https://bitbucket.org/verateam/vera/wiki/Introduction" - source: "https://bitbucket.org/verateam/vera/src/master/" - description: "Vera++ is a programmable tool for verification, analysis and transformation of C++ source code." - tags: - - c - - cpp -- name: Veracode - homepage: "http://www.veracode.com/products/static-analysis-sast/static-code-analysis" - description: "Find flaws in binaries and bytecode without requiring source. Support all major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, C++ and more." - tags: - - c - - cpp - - dotnet - - java - - javascript - - objectivec - - php - - swift - proprietary: true -- name: vint - homepage: "https://github.com/Kuniwak/vint" - source: "https://github.com/Kuniwak/vint" - description: Fast and Highly Extensible Vim script Language Lint implemented by Python. - tags: - - ide -- name: Violations Lib - homepage: "https://github.com/tomasbjerre/violations-lib" - source: "https://github.com/tomasbjerre/violations-lib" - description: "Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins." - tags: - - ci - - java - - support -- name: VSDiagnostics - homepage: "https://github.com/Vannevelj/VSDiagnostics" - source: "https://github.com/Vannevelj/VSDiagnostics" - description: A collection of static analyzers based on Roslyn that integrates with VS. - tags: - - csharp -- name: vulture - homepage: "https://github.com/jendrikseipp/vulture" - source: "https://github.com/jendrikseipp/vulture" - description: "Find unused classes, functions and variables in Python code." - tags: - - python -- name: WALA - homepage: "http://wala.sourceforge.net" - source: "https://github.com/wala/WALA" - description: Static analysis capabilities for Java bytecode and related languages and for JavaScript. - tags: - - javascript - - java -- name: WAP - homepage: "https://securityonline.info/owasp-wap-web-application-protection-project/" - source: "http://awap.sourceforge.net/index.html" - description: Tool to detect and correct input validation vulnerabilities in PHP (4.0 or higher) web applications and predicts false positives by combining static analysis and data mining. - tags: - - php -- name: WartRemover - homepage: "https://www.wartremover.org/" - source: "https://github.com/puffnfresh/wartremover" - description: A flexible Scala code linting tool. - tags: - - scala -- name: Weeder - homepage: "https://github.com/ocharles/weeder" - source: "https://github.com/ocharles/weeder" - description: A tool for detecting dead exports or package imports in Haskell code. - tags: - - haskell -- name: wemake-python-styleguide - homepage: "https://wemake-python-stylegui.de" - source: "https://github.com/wemake-services/wemake-python-styleguide" - description: The strictest and most opinionated python linter ever. - tags: - - python -- name: WhiteHat Application Security Platform - homepage: "https://www.whitehatsec.com/platform/static-application-security-testing/" - description: "WhiteHat Scout (for Developers) combined with WhiteHat Sentinel Source (for Operations) supporting WhiteHat Top 40 and OWASP Top 10." - tags: - - java - - csharp - - aspnet - - php - - javascript - - nodejs - - objectivec - - mobile - - html - - typescript - proprietary: true -- name: wily - homepage: "https://github.com/tonybaloney/wily" - source: "https://github.com/tonybaloney/wily" - description: "A command-line tool for archiving, exploring and graphing the complexity of Python source code." - tags: - - python -- name: Wintellect.Analyzers - homepage: "https://github.com/Wintellect/Wintellect.Analyzers" - source: "https://github.com/Wintellect/Wintellect.Analyzers" - description: '.NET Compiler Platform ("Roslyn") diagnostic analyzers and code fixes.' - tags: - - csharp -- name: Wotan - homepage: "https://github.com/fimbullinter/wotan" - source: "https://github.com/fimbullinter/wotan" - description: Pluggable TypeScript and JavaScript linter. - tags: - - typescript - - javascript -- name: write-good - homepage: "https://github.com/btford/write-good" - source: "https://github.com/btford/write-good" - description: 'A linter with a focus on eliminating "weasel words".' - tags: - - writing -- name: wsl - homepage: "https://github.com/bombsimon/wsl" - source: "https://github.com/bombsimon/wsl" - description: Enforces empty lines at the right places. - tags: - - go -- name: Xanitizer - homepage: "https://xanitizer.com/" - description: Xanitizer finds security vulnerabilities in Java/Scala web applications. - tags: - - java - - scala - proprietary: true -- name: XCode - homepage: "https://developer.apple.com/xcode/" - description: "XCode provides a pretty decent UI for [Clang's](http://clang-analyzer.llvm.org/xcode.html) static code analyzer (C/C++, Obj-C)." - tags: - - c - - cpp - - objectivec - proprietary: true -- name: xenon - homepage: "https://xenon.readthedocs.io/" - source: "https://github.com/rubik/xenon" - description: "Monitor code complexity using [`radon`](https://github.com/rubik/radon)." - tags: - - python -- name: xo - homepage: "https://github.com/xojs/xo" - source: "https://github.com/xojs/xo" - description: Opinionated but configurable ESLint wrapper with lots of goodies included. Enforces strict and readable code. - tags: - - javascript -- name: yamllint - homepage: "https://yamllint.readthedocs.io/" - source: "https://github.com/adrienverge/yamllint" - description: "Checks YAML files for syntax validity, key repetition and cosmetic problems such as lines length, trailing spaces, and indentation." - tags: - - template - - yaml -- name: yardstick - homepage: "https://github.com/calmh/yardstick" - source: "https://github.com/calmh/yardstick" - description: Javascript code metrics. - tags: - - javascript - deprecated: true diff --git a/data/tools/Meziantou.Analyzer.yml b/data/tools/Meziantou.Analyzer.yml new file mode 100644 index 0000000000..835963be21 --- /dev/null +++ b/data/tools/Meziantou.Analyzer.yml @@ -0,0 +1,12 @@ +name: Meziantou.Analyzer +categories: + - linter +tags: + - csharp +license: MIT license +types: + - cli +source: 'https://github.com/meziantou/Meziantou.Analyzer' +homepage: 'https://github.com/meziantou/Meziantou.Analyzer' +description: >- + A Roslyn analyzer to enforce some good practices in C# in terms of design, usage, security, performance, and style. diff --git a/data/tools/SonarAnalyzer.CSharp.yml b/data/tools/SonarAnalyzer.CSharp.yml new file mode 100644 index 0000000000..6c267d844f --- /dev/null +++ b/data/tools/SonarAnalyzer.CSharp.yml @@ -0,0 +1,12 @@ +name: SonarAnalyzer.CSharp +categories: + - linter +tags: + - csharp +license: LGPL-3.0-only license +types: + - cli +source: 'https://github.com/SonarSource/sonar-dotnet' +homepage: 'https://github.com/SonarSource/sonar-dotnet' +description: >- + These Roslyn analyzers allow you to produce Clean Code that is safe, reliable, and maintainable by helping you find and correct bugs, vulnerabilities, and code smells in your codebase. diff --git a/data/tools/abaplint.yml b/data/tools/abaplint.yml new file mode 100644 index 0000000000..fc334a6b14 --- /dev/null +++ b/data/tools/abaplint.yml @@ -0,0 +1,13 @@ +name: abaplint +categories: + - linter +tags: + - abap +license: MIT License +types: + - cli + - service + - ide-plugin +source: 'https://github.com/abaplint/abaplint' +homepage: 'https://abaplint.org' +description: 'Linter for ABAP, written in TypeScript.' diff --git a/data/tools/abapopenchecks.yml b/data/tools/abapopenchecks.yml new file mode 100644 index 0000000000..fbb420f308 --- /dev/null +++ b/data/tools/abapopenchecks.yml @@ -0,0 +1,11 @@ +name: abapOpenChecks +categories: + - linter +tags: + - abap +license: MIT License +types: + - cli +source: 'https://github.com/larshp/abapOpenChecks' +homepage: 'https://docs.abapopenchecks.org' +description: Enhances the SAP Code Inspector with new and customizable checks. diff --git a/data/tools/actionlint.yml b/data/tools/actionlint.yml new file mode 100644 index 0000000000..db76651b00 --- /dev/null +++ b/data/tools/actionlint.yml @@ -0,0 +1,11 @@ +name: actionlint +categories: + - linter +tags: + - ci +license: MIT License +types: + - cli +source: 'https://github.com/rhysd/actionlint' +homepage: 'https://rhysd.github.io/actionlint' +description: 'Static checker for GitHub Actions workflow files. Provides an online version.' diff --git a/data/tools/active-record-doctor.yml b/data/tools/active-record-doctor.yml new file mode 100644 index 0000000000..41dd7f183d --- /dev/null +++ b/data/tools/active-record-doctor.yml @@ -0,0 +1,13 @@ +name: Active Record Doctor +categories: + - linter +tags: + - ruby + - rails +license: MIT License +types: + - cli +source: "https://github.com/gregnavis/active_record_doctor" +homepage: "https://github.com/gregnavis/active_record_doctor" +description: >- + Identify database issues before they hit production. diff --git a/data/tools/aether.yml b/data/tools/aether.yml new file mode 100644 index 0000000000..a19665424b --- /dev/null +++ b/data/tools/aether.yml @@ -0,0 +1,13 @@ +name: aether +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/codecombat/aether' +homepage: 'http://aetherjs.com' +description: >- + Lint, analyze, normalize, transform, sandbox, run, step through, and visualize + user JavaScript, in node or the browser. diff --git a/data/tools/after-the-deadline.yml b/data/tools/after-the-deadline.yml new file mode 100644 index 0000000000..e686efdcf2 --- /dev/null +++ b/data/tools/after-the-deadline.yml @@ -0,0 +1,12 @@ +name: After the Deadline +categories: + - linter +tags: + - writing +deprecated: true +license: GPL v2 +types: + - cli +source: 'https://open.afterthedeadline.com' +homepage: 'https://open.afterthedeadline.com' +description: 'Spell, style and grammar checker.' diff --git a/data/tools/ale.yml b/data/tools/ale.yml new file mode 100644 index 0000000000..a9202642ec --- /dev/null +++ b/data/tools/ale.yml @@ -0,0 +1,12 @@ +name: ale +categories: + - linter +tags: + - javascript + - python +license: BSD 2-Clause "Simplified" License +types: + - ide-plugin +source: 'https://github.com/w0rp/ale' +homepage: 'https://github.com/w0rp/ale' +description: Asynchronous Lint Engine for Vim and NeoVim with support for many languages. diff --git a/data/tools/alex.yml b/data/tools/alex.yml new file mode 100644 index 0000000000..0d30cdeebb --- /dev/null +++ b/data/tools/alex.yml @@ -0,0 +1,11 @@ +name: alex +categories: + - linter +tags: + - writing +license: MIT License +types: + - cli +source: 'https://github.com/get-alex/alex' +homepage: 'https://alexjs.com' +description: 'Catch insensitive, inconsiderate writing' diff --git a/data/tools/aligncheck.yml b/data/tools/aligncheck.yml new file mode 100644 index 0000000000..3e056be76f --- /dev/null +++ b/data/tools/aligncheck.yml @@ -0,0 +1,11 @@ +name: aligncheck +categories: + - linter +tags: + - go +license: GPL v2 +types: + - cli +source: 'https://gitlab.com/opennota/check' +homepage: 'https://gitlab.com/opennota/check' +description: Find inefficiently packed structs. diff --git a/data/tools/alquitran.yml b/data/tools/alquitran.yml new file mode 100644 index 0000000000..7eee25694f --- /dev/null +++ b/data/tools/alquitran.yml @@ -0,0 +1,16 @@ +name: alquitran +categories: + - linter +tags: + - archive +license: MIT License +types: + - cli +source: 'https://github.com/ferivoz/alquitran' +homepage: 'https://github.com/ferivoz/alquitran' +description: >- + Inspects tar archives and tries to spot portability issues in regard + to POSIX 2017 pax specification and common tar implementations. + + This project is intended to be used by maintainers of projects who want to offer portable source code archives for as many systems as possible. + Checking tar archives with alquitran before publishing them should help spotting issues before they reach distributors and users. diff --git a/data/tools/ameba.yml b/data/tools/ameba.yml new file mode 100644 index 0000000000..3765e3142d --- /dev/null +++ b/data/tools/ameba.yml @@ -0,0 +1,14 @@ +name: ameba +categories: + - linter +tags: + - crystal +license: MIT License +types: + - cli +source: 'https://github.com/crystal-ameba/ameba' +homepage: 'https://crystal-ameba.github.io' +resources: + - title: Crystal Language Static Code Analysis with the Ameba Shard + url: https://www.youtube.com/watch?v=SV8tV79Lvog +description: A static code analysis tool for Crystal. diff --git a/data/tools/anchore.yml b/data/tools/anchore.yml new file mode 100644 index 0000000000..72543b6e59 --- /dev/null +++ b/data/tools/anchore.yml @@ -0,0 +1,14 @@ +name: anchore +categories: + - linter +tags: + - container +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/anchore/anchore-engine' +homepage: 'https://anchore.io' +description: >- + Discover, analyze, and certify container images. + A service that analyzes Docker images and applies user-defined acceptance policies + to allow automated container image validation and certification diff --git a/data/tools/android-lint-summary.yml b/data/tools/android-lint-summary.yml new file mode 100644 index 0000000000..db49c31b2d --- /dev/null +++ b/data/tools/android-lint-summary.yml @@ -0,0 +1,13 @@ +name: android-lint-summary +categories: + - linter +tags: + - mobile +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/passy/android-lint-summary' +homepage: 'https://passy.github.io/android-lint-summary' +description: >- + Combines lint errors of multiple projects into one output, check lint results + of multiple sub-projects at once. diff --git a/data/tools/android-lint.yml b/data/tools/android-lint.yml new file mode 100644 index 0000000000..3f4fd3c3a1 --- /dev/null +++ b/data/tools/android-lint.yml @@ -0,0 +1,11 @@ +name: Android Lint +categories: + - linter +tags: + - mobile +license: Android Software Development Kit License Agreement +types: + - cli +source: "https://android.googlesource.com" +homepage: "https://developer.android.com/studio/write/lint" +description: Run static analysis on Android projects. diff --git a/data/tools/android-studio.yml b/data/tools/android-studio.yml new file mode 100644 index 0000000000..335baf7aca --- /dev/null +++ b/data/tools/android-studio.yml @@ -0,0 +1,15 @@ +name: Android Studio +categories: + - linter +tags: + - java + - kotlin +license: Android Software Development Kit License Agreement +types: + - ide-plugin +source: >- + https://android.googlesource.com/platform/tools/adt/idea/+/refs/heads/mirror-goog-studio-master-dev +homepage: 'https://developer.android.com/studio' +description: >- + Based on IntelliJ IDEA, and comes bundled with tools for Android including + Android Lint. diff --git a/data/tools/angr.yml b/data/tools/angr.yml new file mode 100644 index 0000000000..1900bd3327 --- /dev/null +++ b/data/tools/angr.yml @@ -0,0 +1,10 @@ +name: angr +categories: + - linter +tags: + - binary +license: BSD 2-Clause "Simplified" License +types: + - cli +homepage: 'https://github.com/angr/angr' +description: Binary code analysis tool that also supports symbolic execution. diff --git a/data/tools/angular-eslint.yml b/data/tools/angular-eslint.yml new file mode 100644 index 0000000000..673541bb7d --- /dev/null +++ b/data/tools/angular-eslint.yml @@ -0,0 +1,12 @@ +name: Angular ESLint +categories: + - linter +tags: + - typescript + - html +license: MIT License +types: + - cli +source: 'https://github.com/angular-eslint/angular-eslint' +homepage: 'https://github.com/angular-eslint/angular-eslint#readme' +description: 'Linter for Angular projects' diff --git a/data/tools/ansible-lint.yml b/data/tools/ansible-lint.yml new file mode 100644 index 0000000000..1d121f54e1 --- /dev/null +++ b/data/tools/ansible-lint.yml @@ -0,0 +1,13 @@ +name: ansible-lint +categories: + - linter +tags: + - configmanagement +license: MIT License +types: + - cli +source: "https://github.com/ansible/ansible-lint" +homepage: "https://ansible.readthedocs.io/projects/lint/" +description: >- + Checks playbooks for practices and behaviour that could potentially be + improved. diff --git a/data/tools/appchecker.yml b/data/tools/appchecker.yml new file mode 100644 index 0000000000..a809f93843 --- /dev/null +++ b/data/tools/appchecker.yml @@ -0,0 +1,17 @@ +name: AppChecker +categories: + - linter +tags: + - c + - cpp + - java + - php +license: proprietary +types: + - cli +homepage: https://npo-echelon.ru/en/solutions/appchecker.php +pricing: https://npo-echelon.ru/en/solutions/appchecker.php +plans: + free: false + oss: false +description: Static analysis for C/C++/C#, PHP and Java. diff --git a/data/tools/application-inspector.yml b/data/tools/application-inspector.yml new file mode 100644 index 0000000000..ee2284a28a --- /dev/null +++ b/data/tools/application-inspector.yml @@ -0,0 +1,28 @@ +name: Application Inspector +categories: + - linter +tags: + - asp + - c + - cpp + - csharp + - html + - java + - javascript + - objectivec + - php + - sql + - swift + - vbnet + - security +license: proprietary +types: + - service +homepage: "https://www.ptsecurity.com/ww-en/products/ai" +pricing: https://global.ptsecurity.com/en/products/ai/ +plans: + free: false + oss: false +description: >- + Commercial Static Code Analysis which generates exploits to verify + vulnerabilities. diff --git a/data/tools/applicationinspector.yml b/data/tools/applicationinspector.yml new file mode 100644 index 0000000000..7b60749aca --- /dev/null +++ b/data/tools/applicationinspector.yml @@ -0,0 +1,27 @@ +name: ApplicationInspector +categories: + - linter +tags: + - c + - cpp + - csharp + - go + - html + - java + - javascript + - objectivec + - php + - powershell + - python + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/microsoft/ApplicationInspector' +homepage: 'https://github.com/microsoft/ApplicationInspector' +resources: + - title: Introducing Microsoft Application Inspector + url: https://www.microsoft.com/security/blog/2020/01/16/introducing-microsoft-application-inspector/ +description: >- + Creates reports of over 400 rule patterns for feature detection (e.g. the use + of cryptography or version control in apps). diff --git a/data/tools/appscan-source.yml b/data/tools/appscan-source.yml new file mode 100644 index 0000000000..f3ec0b0c36 --- /dev/null +++ b/data/tools/appscan-source.yml @@ -0,0 +1,35 @@ +name: HCL AppScan Source +categories: + - linter +tags: + - asp + - aspnet + - c + - cobol + - coldfusion + - cpp + - csharp + - java + - javascript + - jsp + - mobile + - perl + - php + - plsql + - tsql + - vbasic + - vbnet + - vbscript + - security +license: proprietary +types: + - service +homepage: "https://www.hcltechsw.com/products/appscan" +pricing: http://www.hcl-software.com/appscan/contact-us +plans: + free: false + oss: false +description: Commercial Static Code Analysis. +resources: + - title: Introducing HCL AppScan Standard + url: https://www.youtube.com/watch?v=TmYY67w18RI diff --git a/data/tools/archunit.yml b/data/tools/archunit.yml new file mode 100644 index 0000000000..4f0fab8fbe --- /dev/null +++ b/data/tools/archunit.yml @@ -0,0 +1,12 @@ +name: ArchUnit +categories: + - linter +tags: + - java + - kotlin +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/TNG/ArchUnit' +homepage: 'https://www.archunit.org' +description: Unit test your Java or Kotlin architecture. diff --git a/data/tools/archunitnet.yml b/data/tools/archunitnet.yml new file mode 100644 index 0000000000..f3036a67af --- /dev/null +++ b/data/tools/archunitnet.yml @@ -0,0 +1,13 @@ +name: ArchUnitNET +categories: + - linter +tags: + - csharp +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/TNG/ArchUnitNET' +homepage: 'https://github.com/TNG/ArchUnitNET' +description: >- + A C# architecture test library to specify and assert architecture rules in C# + for automated testing. diff --git a/data/tools/arkitect.yml b/data/tools/arkitect.yml new file mode 100644 index 0000000000..a37746d390 --- /dev/null +++ b/data/tools/arkitect.yml @@ -0,0 +1,18 @@ +name: PHPArkitect +categories: + - linter +tags: + - php +license: MIT +types: + - cli +source: 'https://github.com/phparkitect/arkitect' +homepage: 'https://github.com/phparkitect/arkitect' +resources: + - title: 'PUG Romagna - Testing Architectural Decisions with PHPArkitect (Italian)' + url: 'https://www.youtube.com/watch?v=fhRDZs82AbE' +description: >- + PHPArkitect helps you to keep your PHP codebase coherent and solid, by + permitting to add some architectural constraint check to your workflow. You + can express the constraint that you want to enforce, in simple and readable + PHP code. \ No newline at end of file diff --git a/data/tools/ast-grep.yml b/data/tools/ast-grep.yml new file mode 100644 index 0000000000..74a7e287d2 --- /dev/null +++ b/data/tools/ast-grep.yml @@ -0,0 +1,37 @@ +name: ast-grep +categories: + - linter +tags: + - c + - csharp + - go + - java + - lua + - javascript + - json + - jsx + - kotlin + - python + - ruby + - rust + - typescript + - yaml +license: MIT +types: + - cli + - ide-plugin +source: 'https://github.com/ast-grep/ast-grep' +homepage: 'https://ast-grep.github.io/' +resources: + - title: ast-grep Quick Start Guide + url: https://ast-grep.github.io/guide/quick-start.html +description: >- + ast-grep is a powerful tool designed for managing code at scale using + Abstract Syntax Trees (AST). Think of it as a hybrid of grep, eslint, and codemod, + with the ability to search, lint, and rewrite code based on its structure rather than plain text. + + It supports multiple languages and is designed to be extensible, allowing you to register custom languages. +reviews: + - https://stackshare.io/ast-grep +demos: + - https://ast-grep.github.io/playground.html diff --git a/data/tools/astre.yml b/data/tools/astre.yml new file mode 100644 index 0000000000..a238757663 --- /dev/null +++ b/data/tools/astre.yml @@ -0,0 +1,20 @@ +name: Astrée +categories: + - linter +tags: + - c + - cpp +license: proprietary +types: + - cli +homepage: 'https://www.absint.com/astree/index.htm' +pricing: https://www.absint.com/astree/contact.htm +plans: + free: false + oss: false +description: >- + Astrée automatically proves the absence of runtime errors and invalid con­current behavior in C/C++ applications. + It is sound for floating-point computations, very fast, and exceptionally precise. + The analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules and supports qualification for ISO 26262, + DO-178C level A, and other safety standards. + Jenkins and Eclipse plugins are available. diff --git a/data/tools/atom-beautify.yml b/data/tools/atom-beautify.yml new file mode 100644 index 0000000000..54cb42a1c9 --- /dev/null +++ b/data/tools/atom-beautify.yml @@ -0,0 +1,33 @@ +name: Atom-Beautify +categories: + - linter +tags: + - c + - coffeescript + - coldfusion + - cpp + - csharp + - css + - html + - java + - javascript + - objectivec + - php + - python + - ruby + - sql + - typescript +license: MIT License +types: + - ide-plugin +source: "https://github.com/Glavin001/atom-beautify" +homepage: "https://atom.io/packages/atom-beautify" +resources: + - title: Adding Atom Beautify Package to Atom + url: https://www.youtube.com/watch?v=oBz6rXG0XT8 + - title: 10 Essential Atom Editor Packages & Setup + url: https://www.youtube.com/watch?v=aiXNKHKWlmY +description: >- + Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, + Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom + editor. diff --git a/data/tools/autocorrect.yml b/data/tools/autocorrect.yml new file mode 100644 index 0000000000..c2677c405b --- /dev/null +++ b/data/tools/autocorrect.yml @@ -0,0 +1,29 @@ +name: autocorrect +categories: + - linter + - formatter +tags: + - writing + - markdown + - html + - javascript + - css + - typescript + - jsx + - vue + - json + - yaml + - rust + - ruby + - python + - go + - csharp + - scala + - shell + - xml +license: MIT +types: + - cli +source: 'https://github.com/huacnlee/autocorrect' +homepage: 'https://huacnlee.github.io/autocorrect' +description: A linter and formatter to help you to improve copywriting, correct spaces, words, punctuations between CJK (Chinese, Japanese, Korean). diff --git a/data/tools/autoflake.yml b/data/tools/autoflake.yml new file mode 100644 index 0000000000..d2121f7910 --- /dev/null +++ b/data/tools/autoflake.yml @@ -0,0 +1,11 @@ +name: autoflake +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/PyCQA/autoflake' +homepage: 'https://github.com/PyCQA/autoflake' +description: Autoflake removes unused imports and unused variables from Python code. diff --git a/data/tools/autopep8.yml b/data/tools/autopep8.yml new file mode 100644 index 0000000000..a48bec425c --- /dev/null +++ b/data/tools/autopep8.yml @@ -0,0 +1,14 @@ +name: autopep8 +categories: + - formatter +tags: + - python +license: MIT +types: + - cli +source: "https://github.com/hhatto/autopep8" +homepage: "https://pypi.org/project/autopep8/" +description: >- + A tool that automatically formats Python code to conform to the PEP 8 style guide. + + It uses the pycodestyle utility to determine what parts of the code needs to be formatted. diff --git a/data/tools/axe-core.yml b/data/tools/axe-core.yml new file mode 100644 index 0000000000..3049065b6f --- /dev/null +++ b/data/tools/axe-core.yml @@ -0,0 +1,14 @@ +name: axe-core +categories: + - linter +tags: + - html +license: MPL-2.0 +types: + - cli +source: 'https://github.com/dequelabs/axe-core' +homepage: 'https://www.deque.com/axe/' +description: >- + Accessibility engine for automated Web UI testing. Tests HTML against + WCAG 2.0, 2.1, and 2.2 guidelines. Used by Google Lighthouse, Microsoft + Accessibility Insights, and thousands of organizations worldwide. diff --git a/data/tools/axivion-bauhaus-suite.yml b/data/tools/axivion-bauhaus-suite.yml new file mode 100644 index 0000000000..87f48ed6b1 --- /dev/null +++ b/data/tools/axivion-bauhaus-suite.yml @@ -0,0 +1,16 @@ +name: Axivion Bauhaus Suite +categories: +- linter +tags: +- c +- cpp +- java +- php +license: proprietary +types: +- cli +homepage: https://www.axivion.com/en/products-services-9#products_bauhaussuite +description: >- + Tracks down error-prone code locations, style violations, cloned or dead code, cyclic + dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95. +pricing: https://www.axivion.com/pricing diff --git a/data/tools/azsk.yml b/data/tools/azsk.yml new file mode 100644 index 0000000000..560e774312 --- /dev/null +++ b/data/tools/azsk.yml @@ -0,0 +1,14 @@ +name: AzSK +categories: + - linter +tags: + - arm + - configmanagement + - ci + - security +license: MIT License +types: + - cli +source: 'https://github.com/azsk/DevOpsKit' +homepage: 'https://azsk.azurewebsites.net/' +description: 'Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM.' diff --git a/data/tools/bandit.yml b/data/tools/bandit.yml new file mode 100644 index 0000000000..f02c5ec076 --- /dev/null +++ b/data/tools/bandit.yml @@ -0,0 +1,16 @@ +name: bandit +categories: + - linter +tags: + - python +license: Apache License 2.0 +types: + - cli +source: "https://github.com/PyCQA/bandit" +homepage: "https://bandit.readthedocs.io/en/latest" +description: A tool to find common security issues in Python code. +resources: + - title: "Code security with Bandit and Safety — Perfect Python" + url: https://www.youtube.com/watch?v=YZOKnvisJpw + - title: "The Python Podcast.__init__: Bandit with Tim Kelsey, Travis McPeak, and Eric Brown - E62" + url: https://www.pythonpodcast.com/episodepage/bandit-with-tim-kelsey-travis-mcpeak-and-eric-brown diff --git a/data/tools/bashate.yml b/data/tools/bashate.yml new file mode 100644 index 0000000000..4dd379e7e8 --- /dev/null +++ b/data/tools/bashate.yml @@ -0,0 +1,16 @@ +name: bashate +categories: + - linter +tags: + - shell +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/openstack/bashate' +homepage: 'https://github.com/openstack/bashate' +description: >- + Code style enforcement for bash programs. + The output format aims to follow pycodestyle (pep8) default output format. +resources: + - title: Official bashate documentation + url: https://docs.openstack.org/bashate diff --git a/data/tools/bearer.yml b/data/tools/bearer.yml new file mode 100644 index 0000000000..24e783926f --- /dev/null +++ b/data/tools/bearer.yml @@ -0,0 +1,37 @@ +name: Bearer +categories: + - linter +tags: + - ci + - security + - html + - javascript + - java + - typescript + - json + - jsx + - rails + - ruby + - c + - go + - yaml +license: Elastic License 2.0 +types: + - cli +source: "https://github.com/bearer/bearer" +homepage: "https://github.com/bearer/bearer" +plans: + oss: true + free: false +pricing: https://www.bearer.com/plans +resources: + - title: "Bearer's built-in set of rules to prevent cirtical security risks and vulnerabilities" + url: https://docs.bearer.com/reference/rules/ + - title: "Bearer CLI: 2 months in retrospect of new features and improvements!" + url: https://www.bearer.com/blog/bearer-cli-2-months-in-retrospect-of-new-features-and-improvements +description: >- + Open-Source static code analysis tool to discover, + filter and prioritize security risks and vulnerabilities + leading to sensitive data exposures (PII, PHI, PD). + Highly configurable and easily extensible, + built for security and engineering teams. diff --git a/data/tools/bellybutton.yml b/data/tools/bellybutton.yml new file mode 100644 index 0000000000..273584a102 --- /dev/null +++ b/data/tools/bellybutton.yml @@ -0,0 +1,11 @@ +name: bellybutton +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/hchasestevens/bellybutton' +homepage: 'https://github.com/hchasestevens/bellybutton' +description: A linting engine supporting custom project-specific rules. diff --git a/data/tools/better-code-hub.yml b/data/tools/better-code-hub.yml new file mode 100644 index 0000000000..a283830ca5 --- /dev/null +++ b/data/tools/better-code-hub.yml @@ -0,0 +1,35 @@ +name: Better Code Hub +categories: + - linter +tags: + - cpp + - csharp + - go + - groovy + - java + - javascript + - kotlin + - objectivec + - perl + - php + - python + - ruby + - scala + - shell + - smart-contracts + - swift + - typescript +license: proprietary +types: + - service +homepage: https://bettercodehub.com +description: >- + Better Code Hub checks your GitHub codebase against 10 engineering guidelines devised + by the authority in software quality, Software Improvement Group. +resources: + - title: Better Code Hub introduction video + url: https://www.youtube.com/watch?v=diERwdr2omM +pricing: https://bettercodehub.com/pricing +plans: + free: true + oss: true diff --git a/data/tools/betterscan.yml b/data/tools/betterscan.yml new file mode 100644 index 0000000000..05ab376bfc --- /dev/null +++ b/data/tools/betterscan.yml @@ -0,0 +1,33 @@ +name: Betterscan CE +categories: + - linter +tags: + - ci + - apex + - c + - cpp + - csharp + - php + - python + - perl + - ruby + - go + - java + - ruby + - scala + - swift + - kotlin + - javascript + - typescript + - python + - security +license: AGPL-3.0 +types: + - cli +deprecated: true +source: "https://github.com/tcosolutions/betterscan-ce" +homepage: "https://github.com/tcosolutions/betterscan-ce" +plans: + oss: true + free: false +description: Checks your code and infra (various Git repositories supported, cloud stacks, CLI, Web Interface platform, integrationss available) for security and quality issues. Code Scanning/SAST/Linting using many tools/Scanners deduplicated with One Report (AI optional). diff --git a/data/tools/binbloom.yml b/data/tools/binbloom.yml new file mode 100644 index 0000000000..a0cc135d48 --- /dev/null +++ b/data/tools/binbloom.yml @@ -0,0 +1,20 @@ +name: binbloom +categories: + - linter +tags: + - binary +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/quarkslab/binbloom' +homepage: 'https://github.com/quarkslab/binbloom' +description: >- + Analyzes a raw binary firmware and determines features like endianness or the loading address. + The tool is compatible with all architectures. + + Loading address: binbloom can parse a raw binary firmware and determine its loading address. + Endianness: binbloom can use heuristics to determine the endianness of a firmware. + UDS Database: binbloom can parse a raw binary firmware and check if it contains an array containing UDS command IDs. +resources: + - title: "Tutorial: Binbloom - Raw Binary Firmware Analysis Software" + url: https://www.kitploit.com/2020/10/binbloom-raw-binary-firmware-analysis.html?m=1 diff --git a/data/tools/binskim.yml b/data/tools/binskim.yml new file mode 100644 index 0000000000..fab78652fd --- /dev/null +++ b/data/tools/binskim.yml @@ -0,0 +1,13 @@ +name: BinSkim +categories: + - linter +tags: + - binary +license: Other +types: + - cli +source: 'https://github.com/Microsoft/binskim' +homepage: 'https://github.com/Microsoft/binskim' +description: >- + A binary static analysis tool that provides security and correctness results + for Windows portable executables. diff --git a/data/tools/biome.yml b/data/tools/biome.yml new file mode 100644 index 0000000000..38c65abf7c --- /dev/null +++ b/data/tools/biome.yml @@ -0,0 +1,19 @@ +name: biome +categories: + - linter +tags: + - javascript + - typescript + - json + - css +license: MIT +types: + - cli +source: "https://github.com/biomejs/biome" +homepage: "https://biomejs.dev" +description: >- + A toolchain for web projects, aimed to provide functionalities to maintain them. + Biome formats and lints code in a fraction of a second. + It is the successor to Rome. + It is designed to eventually replace Biome is designed to eventually replace + Babel, ESLint, webpack, Prettier, Jest, and others. diff --git a/data/tools/black-duck.yml b/data/tools/black-duck.yml new file mode 100644 index 0000000000..a45ca25966 --- /dev/null +++ b/data/tools/black-duck.yml @@ -0,0 +1,19 @@ +name: Black Duck +categories: + - linter +tags: + - binary +license: proprietary +types: + - cli +homepage: "https://www.blackducksoftware.com" +pricing: https://www.synopsys.com/software-integrity/contact-sales.html +plans: + free: false + oss: false +description: >- + Tool to analyze source code and binaries for reusable code, necessary licenses + and potential security aspects. +resources: + - title: Black Duck SCA & Coverity Static Analysis (SAST) Integrations with Amazon AWS CI Tools | Synopsys + url: https://www.youtube.com/watch?v=GEvxbU6EmiA diff --git a/data/tools/black.yml b/data/tools/black.yml new file mode 100644 index 0000000000..3d947a27cd --- /dev/null +++ b/data/tools/black.yml @@ -0,0 +1,20 @@ +name: Black +categories: + - formatter +tags: + - python +license: MIT License +types: + - cli +source: "https://github.com/psf/black" +homepage: "https://black.readthedocs.io/en/stable" +description: The uncompromising Python code formatter. +resources: + - title: Using the black code formatter in Python + url: https://www.youtube.com/watch?v=InA-oAWu3Mo + - title: "Łukasz Langa - Life Is Better Painted Black, or: How to Stop Worrying and Embrace Auto-Formatting" + url: https://www.youtube.com/watch?v=esZLCuWs_2Y +demos: + - https://black.vercel.app/ +reviews: + - https://luminousmen.com/post/my-unpopular-opinion-about-black-code-formatter \ No newline at end of file diff --git a/data/tools/bloaty.yml b/data/tools/bloaty.yml new file mode 100644 index 0000000000..6e33558e89 --- /dev/null +++ b/data/tools/bloaty.yml @@ -0,0 +1,16 @@ +name: bloaty +categories: + - linter +tags: + - binary +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/google/bloaty' +homepage: 'https://github.com/google/bloaty' +description: >- + Ever wondered what's making your binary big? + Bloaty McBloatface will show you a size profile of the binary so you can understand what's taking up space inside. + Bloaty performs a deep analysis of the binary. Using custom ELF, DWARF, and Mach-O parsers, + Bloaty aims to accurately attribute every byte of the binary to the symbol or compileunit that produced it. + It will even disassemble the binary looking for references to anonymous data. F diff --git a/data/tools/blockwatch.yml b/data/tools/blockwatch.yml new file mode 100644 index 0000000000..1a637ea508 --- /dev/null +++ b/data/tools/blockwatch.yml @@ -0,0 +1,32 @@ +name: BlockWatch +categories: + - linter +tags: + - c + - cpp + - csharp + - css + - go + - html + - java + - javascript + - jsx + - kotlin + - make + - markdown + - php + - python + - ruby + - rust + - shell + - sql + - swift + - typescript + - xml + - yaml +license: MIT License +types: + - cli +source: 'https://github.com/mennanov/blockwatch' +homepage: 'https://github.com/mennanov/blockwatch' +description: 'A language-agnostic linter that keeps code, documentation, and configuration in sync and enforces strict formatting and validation rules.' diff --git a/data/tools/bodyclose.yml b/data/tools/bodyclose.yml new file mode 100644 index 0000000000..aa4a4b7258 --- /dev/null +++ b/data/tools/bodyclose.yml @@ -0,0 +1,11 @@ +name: bodyclose +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/timakin/bodyclose' +homepage: 'https://github.com/timakin/bodyclose' +description: Checks whether HTTP response body is closed. diff --git a/data/tools/bootlint.yml b/data/tools/bootlint.yml new file mode 100644 index 0000000000..c3fc628524 --- /dev/null +++ b/data/tools/bootlint.yml @@ -0,0 +1,11 @@ +name: Bootlint +categories: + - linter +tags: + - html +license: MIT License +types: + - cli +source: 'https://github.com/twbs/bootlint' +homepage: 'https://github.com/twbs/bootlint' +description: An HTML linter for Bootstrap projects. diff --git a/data/tools/bowler.yml b/data/tools/bowler.yml new file mode 100644 index 0000000000..0e6c62d2fd --- /dev/null +++ b/data/tools/bowler.yml @@ -0,0 +1,16 @@ +name: Bowler +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/facebookincubator/bowler' +homepage: 'https://pybowler.io/' +description: >- + Safe code refactoring for modern Python. + Bowler is a refactoring tool for manipulating Python at the syntax tree level. + It enables safe, large scale code modifications while guaranteeing that the + resulting code compiles and runs. It provides both a simple command line interface + and a fluent API in Python for generating complex code modifications in code. diff --git a/data/tools/brakeman.yml b/data/tools/brakeman.yml new file mode 100644 index 0000000000..4e581bffdf --- /dev/null +++ b/data/tools/brakeman.yml @@ -0,0 +1,17 @@ +name: brakeman +categories: + - linter +tags: + - ruby + - security +license: Other +types: + - cli +source: "https://github.com/presidentbeef/brakeman" +homepage: "https://brakemanscanner.org" +description: >- + A static analysis security vulnerability scanner for Ruby on Rails + applications. +resources: + - title: "Brakeman: A Security Scanner for Ruby on Rails" + url: https://www.youtube.com/watch?v=pTUlPq4glOg diff --git a/data/tools/brittany.yml b/data/tools/brittany.yml new file mode 100644 index 0000000000..326171c5d4 --- /dev/null +++ b/data/tools/brittany.yml @@ -0,0 +1,11 @@ +name: brittany +categories: + - formatter +tags: + - haskell +license: GNU Affero General Public License v3.0 +types: + - cli +source: 'https://github.com/lspitzner/brittany' +homepage: 'https://github.com/lspitzner/brittany' +description: Haskell source code formatter diff --git a/data/tools/buf.yml b/data/tools/buf.yml new file mode 100644 index 0000000000..7ce6ca2a8c --- /dev/null +++ b/data/tools/buf.yml @@ -0,0 +1,12 @@ +name: buf +categories: + - linter +tags: + - protobuf +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/bufbuild/buf' +homepage: 'https://buf.build' +description: >- + Provides a CLI linter that enforces good API design choices and structure diff --git a/data/tools/bugprove.yml b/data/tools/bugprove.yml new file mode 100644 index 0000000000..dc1a4e8cd4 --- /dev/null +++ b/data/tools/bugprove.yml @@ -0,0 +1,26 @@ +name: BugProve +categories: + - linter +tags: + - asm + - binary + - c + - cpp + - security +license: proprietary +types: + - cli +plans: + free: true +deprecated: true +homepage: "https://bugprove.com" +description: >- + BugProve is a firmware analysis platform featuring both static and dynamic analysis + techniques to discover memory corruptions, command injections and other classes or + common weaknesses in binary code. It also detects vulnerable dependencies, + weak cryptographic parameters, misconfigurations, and more. +resources: + - title: BugProve Product Intro by John Hammond + url: https://www.youtube.com/watch?v=orTvsOlFS5k +reviews: + - https://www.g2.com/products/bugprove/reviews diff --git a/data/tools/bullet.yml b/data/tools/bullet.yml new file mode 100644 index 0000000000..c4a76574e3 --- /dev/null +++ b/data/tools/bullet.yml @@ -0,0 +1,13 @@ +name: Bullet +categories: + - linter +tags: + - ruby + - rails +license: MIT License +types: + - cli +source: "https://github.com/flyerhzm/bullet" +homepage: "https://github.com/flyerhzm/bullet" +description: >- + Help to kill N+1 queries and unused eager loading. diff --git a/data/tools/bundler-audit.yml b/data/tools/bundler-audit.yml new file mode 100644 index 0000000000..851b477f9b --- /dev/null +++ b/data/tools/bundler-audit.yml @@ -0,0 +1,13 @@ +name: bundler-audit +categories: + - linter +tags: + - ruby +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/rubysec/bundler-audit' +homepage: 'https://github.com/rubysec/bundler-audit' +description: >- + Audit Gemfile.lock for gems with security vulnerabilities reported in + [Ruby Advisory Database](https://github.com/rubysec/ruby-advisory-db). diff --git a/data/tools/c2rust.yml b/data/tools/c2rust.yml new file mode 100644 index 0000000000..76b2d38eba --- /dev/null +++ b/data/tools/c2rust.yml @@ -0,0 +1,16 @@ +name: C2Rust +categories: + - linter +tags: + - rust +license: Other +types: + - cli +source: 'https://github.com/immunant/c2rust' +homepage: 'https://c2rust.com' +resources: + - title: "RustConf 2018 - C2Rust: Migrating Legacy Code to Rust by Per Larsen" + url: https://www.youtube.com/watch?v=WEsR0Vv7jhg&t=233s +description: >- + C2Rust helps you migrate C99-compliant code to Rust. The translator (or + transpiler) produces unsafe Rust code that closely mirrors the input C code. diff --git a/data/tools/cakefuzzer.yml b/data/tools/cakefuzzer.yml new file mode 100644 index 0000000000..161c50f502 --- /dev/null +++ b/data/tools/cakefuzzer.yml @@ -0,0 +1,12 @@ +name: CakeFuzzer +categories: + - linter +tags: + - php +license: GNU GPL +types: + - cli +source: 'https://github.com/Zigrin-Security/CakeFuzzer' +homepage: 'https://zigrin.com/tools/cake-fuzzer/' +description: >- + Web application security testing tool for CakePHP-based web applications. CakeFuzzer employs a predefined set of attacks that are randomly modified before execution. Leveraging its deep understanding of the Cake PHP framework, Cake Fuzzer launches attacks on all potential application entry points. diff --git a/data/tools/callGraph.yml b/data/tools/callGraph.yml new file mode 100644 index 0000000000..b620ff9a22 --- /dev/null +++ b/data/tools/callGraph.yml @@ -0,0 +1,32 @@ +name: callGraph +categories: + - linter +tags: + - awk + - shell + - dart + - fortran + - go + - lua + - javascript + - julia + - kotlin + - matlab + - perl + - pascal + - php + - python + - r + - raku + - ruby + - rust + - scala + - swift + - tcl + - typescript +license: GNU General Public License +types: + - cli +source: 'https://github.com/koknat/callGraph' +homepage: 'https://github.com/koknat/callGraph' +description: Statically generates a call graph image and displays it on screen. diff --git a/data/tools/cane.yml b/data/tools/cane.yml new file mode 100644 index 0000000000..18cd42799f --- /dev/null +++ b/data/tools/cane.yml @@ -0,0 +1,11 @@ +name: cane +categories: + - linter +tags: + - ruby +license: Other +types: + - cli +source: 'https://github.com/square/cane' +homepage: 'https://github.com/square/cane' +description: Code quality threshold checking as part of your build. diff --git a/data/tools/cargo-audit.yml b/data/tools/cargo-audit.yml new file mode 100644 index 0000000000..2c13ece18b --- /dev/null +++ b/data/tools/cargo-audit.yml @@ -0,0 +1,18 @@ +name: cargo-audit +categories: + - linter +tags: + - rust +license: Other +types: + - cli +source: "https://github.com/RustSec/cargo-audit" +homepage: "https://rustsec.org" +resources: + - title: "Keep your Users Safe and Scan Your Rust Dependencies With This Tool" + url: https://www.youtube.com/watch?v=V8RfQ0uihzE + - title: "How to audit Rust code in 4 minutes!" + url: https://www.youtube.com/watch?v=w2Co88TzrsQ +description: >- + Audit Cargo.lock for crates with security vulnerabilities reported to the + [RustSec Advisory Database](https://github.com/RustSec/advisory-db/). diff --git a/data/tools/cargo-bloat.yml b/data/tools/cargo-bloat.yml new file mode 100644 index 0000000000..6e0a6b2283 --- /dev/null +++ b/data/tools/cargo-bloat.yml @@ -0,0 +1,14 @@ +name: cargo-bloat +categories: + - linter +tags: + - binary + - rust +license: MIT License +types: + - cli +source: 'https://github.com/RazrFalcon/cargo-bloat' +homepage: 'https://github.com/RazrFalcon/cargo-bloat' +description: >- + Find out what takes most of the space in your executable. + supports ELF (Linux, BSD), Mach-O (macOS) and PE (Windows) binaries. diff --git a/data/tools/cargo-breaking.yml b/data/tools/cargo-breaking.yml new file mode 100644 index 0000000000..5ca6768e74 --- /dev/null +++ b/data/tools/cargo-breaking.yml @@ -0,0 +1,13 @@ +name: cargo-breaking +categories: + - linter +tags: + - rust +license: MPL-2.0 +types: + - cli +source: 'https://github.com/iomentum/cargo-breaking' +homepage: 'https://github.com/iomentum/cargo-breaking' +description: >- + cargo-breaking compares a crate's public API between two different branches, + shows what changed, and suggests the next version according to semver. diff --git a/data/tools/cargo-call-stack.yml b/data/tools/cargo-call-stack.yml new file mode 100644 index 0000000000..826e96c489 --- /dev/null +++ b/data/tools/cargo-call-stack.yml @@ -0,0 +1,13 @@ +name: cargo-call-stack +categories: + - linter +tags: + - rust +license: Apache-2.0 +types: + - cli +source: "https://github.com/japaric/cargo-call-stack" +homepage: "https://github.com/japaric/cargo-call-stack" +description: >- + Whole program static stack analysis + The tool produces the full call graph of a program as a dot file. diff --git a/data/tools/cargo-deny.yml b/data/tools/cargo-deny.yml new file mode 100644 index 0000000000..0439e0d82a --- /dev/null +++ b/data/tools/cargo-deny.yml @@ -0,0 +1,14 @@ +name: cargo-deny +categories: + - linter +tags: + - rust +license: Apache License +types: + - cli +source: 'https://github.com/EmbarkStudios/cargo-deny' +homepage: 'https://embarkstudios.github.io/cargo-deny' +description: >- + A cargo plugin for linting your dependencies. + It can be used either as a command line too, a Rust crate, or a Github action for CI. + It checks for valid license information, duplicate crates, security vulnerabilities, and more. diff --git a/data/tools/cargo-expand.yml b/data/tools/cargo-expand.yml new file mode 100644 index 0000000000..249bfe90a9 --- /dev/null +++ b/data/tools/cargo-expand.yml @@ -0,0 +1,14 @@ +name: cargo-expand +categories: + - linter +tags: + - rust +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/dtolnay/cargo-expand' +homepage: 'https://github.com/dtolnay/cargo-expand' +description: >- + Cargo subcommand to show result of macro expansion + and #[derive] expansion applied to the current crate. + This is a wrapper around a more verbose compiler command. diff --git a/data/tools/cargo-geiger.yml b/data/tools/cargo-geiger.yml new file mode 100644 index 0000000000..73dbef20bb --- /dev/null +++ b/data/tools/cargo-geiger.yml @@ -0,0 +1,13 @@ +name: cargo-geiger +categories: + - linter +tags: + - rust +license: MIT License +types: + - cli +source: 'https://github.com/geiger-rs/cargo-geiger' +homepage: 'https://github.com/geiger-rs/cargo-geiger' +description: >- + A cargo plugin for analysing the usage of unsafe Rust code + Provides statistical output to aid security auditing diff --git a/data/tools/cargo-inspect.yml b/data/tools/cargo-inspect.yml new file mode 100644 index 0000000000..23b2649401 --- /dev/null +++ b/data/tools/cargo-inspect.yml @@ -0,0 +1,13 @@ +name: cargo-inspect +categories: + - linter +tags: + - rust +license: Other +types: + - cli +source: 'https://github.com/mre/cargo-inspect' +homepage: 'https://github.com/mre/cargo-inspect' +description: >- + Inspect Rust code without syntactic sugar to see what the compiler does behind + the curtains. diff --git a/data/tools/cargo-semver-checks.yml b/data/tools/cargo-semver-checks.yml new file mode 100644 index 0000000000..dcabb1cf0d --- /dev/null +++ b/data/tools/cargo-semver-checks.yml @@ -0,0 +1,16 @@ +name: cargo-semver-checks +categories: + - linter +tags: + - rust +license: Apache License (Version 2.0) or MIT +types: + - cli +source: 'https://github.com/obi1kenobi/cargo-semver-checks' +homepage: 'https://crates.io/crates/cargo-semver-checks' +description: >- + Scan your Rust crate releases for semver violations. + It can be used either directly via the CLI, as a GitHub Action in CI, + or via release managers like `release-plz`. + It found semver violations in + [more than 1 in 6 of the top 1000 most-downloaded crates](https://predr.ag/blog/semver-violations-are-common-better-tooling-is-the-answer/) on crates.io. diff --git a/data/tools/cargo-show-asm.yml b/data/tools/cargo-show-asm.yml new file mode 100644 index 0000000000..513a483451 --- /dev/null +++ b/data/tools/cargo-show-asm.yml @@ -0,0 +1,12 @@ +name: cargo-show-asm +categories: + - linter +tags: + - rust +license: MIT / Apache 2.0 +types: + - cli +source: 'https://github.com/pacak/cargo-show-asm' +homepage: 'https://github.com/pacak/cargo-show-asm' +description: >- + cargo subcommand showing the assembly, LLVM-IR and MIR generated for Rust code diff --git a/data/tools/cargo-spellcheck.yml b/data/tools/cargo-spellcheck.yml new file mode 100644 index 0000000000..7b70f918a9 --- /dev/null +++ b/data/tools/cargo-spellcheck.yml @@ -0,0 +1,13 @@ +name: cargo-spellcheck +categories: + - linter +tags: + - rust +license: Apache 2.0 / MIT License +types: + - cli +source: 'https://github.com/drahnr/cargo-spellcheck' +homepage: 'https://github.com/drahnr/cargo-spellcheck' +description: >- + Checks all your documentation for spelling and grammar mistakes + with hunspell (ready) and languagetool (preview) diff --git a/data/tools/cargo-udeps.yml b/data/tools/cargo-udeps.yml new file mode 100644 index 0000000000..b8689bf769 --- /dev/null +++ b/data/tools/cargo-udeps.yml @@ -0,0 +1,14 @@ +name: cargo udeps +categories: + - linter +tags: + - rust +license: MIT License / Apache 2.0 license +types: + - cli +source: 'https://github.com/est31/cargo-udeps' +homepage: 'https://github.com/est31/cargo-udeps' +description: >- + Find unused dependencies in Cargo.toml. + It either prints out a "unused crates" line listing the crates, + or it prints out a line saying that no crates were unused. diff --git a/data/tools/cargo-unused-features.yml b/data/tools/cargo-unused-features.yml new file mode 100644 index 0000000000..6412b4718a --- /dev/null +++ b/data/tools/cargo-unused-features.yml @@ -0,0 +1,16 @@ +name: cargo-unused-features +categories: + - linter +tags: + - rust +license: MIT +types: + - cli +source: 'https://github.com/TimonPost/cargo-unused-features' +homepage: 'https://github.com/TimonPost/cargo-unused-features' +description: >- + Find potential unused enabled feature flags and prune them. + You can generate a simple HTML report from the json to make it easier to inspect results. + + It removes a feature of a dependency and then compiles the project to see if it still compiles. + If it does, the feature flag can possibly be removed, but it can be a false-positive. diff --git a/data/tools/cast-highlight.yml b/data/tools/cast-highlight.yml new file mode 100644 index 0000000000..c3bdbbb48e --- /dev/null +++ b/data/tools/cast-highlight.yml @@ -0,0 +1,25 @@ +name: CAST Highlight +categories: +- linter +tags: +- abap +- c +- cobol +- cpp +- csharp +- java +- javascript +- jsp +- php +- plsql +- python +- tsql +- vbasic +license: proprietary +types: +- cli +homepage: https://www.castsoftware.com/products/highlight +description: >- + Commercial Static Code Analysis which runs locally, but uploads the results to its + cloud for presentation. +pricing: https://www.castsoftware.com/products/highlight/pricing#pricing diff --git a/data/tools/cbmc.yml b/data/tools/cbmc.yml new file mode 100644 index 0000000000..ec8dc7371b --- /dev/null +++ b/data/tools/cbmc.yml @@ -0,0 +1,14 @@ +name: CBMC +categories: + - linter +tags: + - c + - cpp +license: BSD-4-Clause-UC +types: + - cli +source: 'https://github.com/diffblue/cbmc' +homepage: 'http://www.cprover.org/cbmc' +description: >- + Bounded model-checker for C programs, user-defined assertions, standard + assertions, several coverage metric analyses. diff --git a/data/tools/cfn-lint.yml b/data/tools/cfn-lint.yml new file mode 100644 index 0000000000..d82ef11882 --- /dev/null +++ b/data/tools/cfn-lint.yml @@ -0,0 +1,11 @@ +name: cfn-lint +categories: + - linter +tags: + - configmanagement +license: Other +types: + - cli +source: 'https://github.com/awslabs/cfn-python-lint' +homepage: 'https://github.com/awslabs/cfn-python-lint' +description: AWS Labs CloudFormation linter. diff --git a/data/tools/cfn_nag.yml b/data/tools/cfn_nag.yml new file mode 100644 index 0000000000..1aa3c76d5c --- /dev/null +++ b/data/tools/cfn_nag.yml @@ -0,0 +1,11 @@ +name: cfn_nag +categories: + - linter +tags: + - configmanagement +license: MIT License +types: + - cli +source: 'https://github.com/stelligent/cfn_nag' +homepage: 'https://github.com/stelligent/cfn_nag' +description: A linter for AWS CloudFormation templates. diff --git a/data/tools/chap.yml b/data/tools/chap.yml new file mode 100644 index 0000000000..ca2ecae6f3 --- /dev/null +++ b/data/tools/chap.yml @@ -0,0 +1,16 @@ +name: VMware chap +categories: + - linter +tags: + - binary +license: GPL v2 +types: + - cli +source: 'https://github.com/vmware/chap' +homepage: 'https://github.com/vmware/chap' +description: >- + chap analyzes un-instrumented ELF core files for leaks, memory growth, and corruption. + It is sufficiently reliable that it can be used in automation to catch leaks before + they are committed. As an interactive tool, it helps explain memory growth, + can identify some forms of corruption, and supplements a debugger + by giving the status of various memory locations. diff --git a/data/tools/chart-testing.yml b/data/tools/chart-testing.yml new file mode 100644 index 0000000000..ba5a740dd9 --- /dev/null +++ b/data/tools/chart-testing.yml @@ -0,0 +1,14 @@ +name: chart-testing +categories: + - linter +tags: + - kubernetes +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/helm/chart-testing' +homepage: 'https://github.com/helm/chart-testing' +description: >- + ct is the tool for testing Helm charts. + It is meant to be used for linting and testing pull requests. + It automatically detects charts changed against the target branch. diff --git a/data/tools/checker-framework.yml b/data/tools/checker-framework.yml new file mode 100644 index 0000000000..a1aa9c5ea2 --- /dev/null +++ b/data/tools/checker-framework.yml @@ -0,0 +1,11 @@ +name: Checker Framework +categories: + - linter +tags: + - java +license: GPL with Classpath exception / MIT License +types: + - cli +source: 'https://github.com/typetools/checker-framework' +homepage: 'https://checkerframework.org' +description: Pluggable type-checking for Java. This is not just a bug-finder, but a verification tool that gives a guarantee of correctness. It comes with 27 pre-built type systems, and it enables users to define their own type system; the manual lists over 30 user-contributed type systems. diff --git a/data/tools/checkmake.yml b/data/tools/checkmake.yml new file mode 100644 index 0000000000..7419e1a886 --- /dev/null +++ b/data/tools/checkmake.yml @@ -0,0 +1,12 @@ +name: checkmake +categories: + - linter +tags: + - buildtool + - make +license: MIT License +types: + - cli +source: 'https://github.com/mrtazz/checkmake' +homepage: 'https://github.com/mrtazz/checkmake' +description: Linter / Analyzer for Makefiles. diff --git a/data/tools/checkmarx-cxsast.yml b/data/tools/checkmarx-cxsast.yml new file mode 100644 index 0000000000..27ac2881bd --- /dev/null +++ b/data/tools/checkmarx-cxsast.yml @@ -0,0 +1,38 @@ +name: Checkmarx CxSAST +categories: + - linter +tags: + - apex + - asp + - c + - cpp + - csharp + - go + - groovy + - html + - java + - javascript + - mobile + - nodejs + - objectivec + - perl + - phonegap + - php + - python + - ruby + - scala + - security + - swift + - vbasic + - vbnet + - vbscript + - visualforce +license: proprietary +types: + - cli +homepage: 'https://www.checkmarx.com/products/static-application-security-testing' +pricing: https://checkmarx.com/packaging/ +plans: + free: false + oss: false +description: Commercial Static Code Analysis which doesn't require pre-compilation. diff --git a/data/tools/checkov.yml b/data/tools/checkov.yml new file mode 100644 index 0000000000..2f5b99e4ba --- /dev/null +++ b/data/tools/checkov.yml @@ -0,0 +1,13 @@ +name: checkov +categories: + - linter +tags: + - configmanagement +license: Apache-2.0 +types: + - cli +source: 'https://github.com/bridgecrewio/checkov' +homepage: 'https://www.checkov.io' +description: >- + Static analysis tool for Terraform files (tf>=v0.12), preventing cloud + misconfigs at build time. diff --git a/data/tools/checkstyle.yml b/data/tools/checkstyle.yml new file mode 100644 index 0000000000..dc7bd90a1c --- /dev/null +++ b/data/tools/checkstyle.yml @@ -0,0 +1,13 @@ +name: checkstyle +categories: + - linter +tags: + - java +license: Other +types: + - cli +source: 'https://github.com/checkstyle/checkstyle' +homepage: 'https://checkstyle.org' +description: >- + Checking Java source code for adherence to a Code Standard or set of + validation rules (best practices). diff --git a/data/tools/chktex.yml b/data/tools/chktex.yml new file mode 100644 index 0000000000..374b0cb440 --- /dev/null +++ b/data/tools/chktex.yml @@ -0,0 +1,12 @@ +name: ChkTeX +categories: + - linter +tags: + - latex +license: GNU Public License version 2 or greater +types: + - cli +source: 'http://git.savannah.nongnu.org/cgit/chktex.git' +deprecated: true +homepage: 'http://www.nongnu.org/chktex' +description: A linter for LaTex which catches some typographic errors LaTeX oversees. diff --git a/data/tools/churn-php.yml b/data/tools/churn-php.yml new file mode 100644 index 0000000000..8bf60ae81b --- /dev/null +++ b/data/tools/churn-php.yml @@ -0,0 +1,11 @@ +name: churn-php +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/bmitch/churn-php' +homepage: 'https://github.com/bmitch/churn-php' +description: Helps discover good candidates for refactoring. diff --git a/data/tools/churn.yml b/data/tools/churn.yml new file mode 100644 index 0000000000..cf907590f8 --- /dev/null +++ b/data/tools/churn.yml @@ -0,0 +1,13 @@ +name: Churn +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: "https://github.com/danmayer/churn" +homepage: "https://github.com/danmayer/churn" +description: >- + A Project to give the churn file, class, and method for a project for a given checkin. + Over time the tool adds up the history of churns to give the number of times a file, class, or method is changing during the life of a project. diff --git a/data/tools/ciocheck.yml b/data/tools/ciocheck.yml new file mode 100644 index 0000000000..99393d459d --- /dev/null +++ b/data/tools/ciocheck.yml @@ -0,0 +1,15 @@ +name: ciocheck +categories: + - formatter + - meta +tags: + - meta + - python +license: MIT License +types: + - cli +source: 'https://github.com/ContinuumIO/ciocheck' +homepage: 'https://github.com/ContinuumIO/ciocheck' +description: >- + Linter, formatter and test suite helper. As a linter, it is a wrapper around + `pep8`, `pydocstyle`, `flake8`, and `pylint`. diff --git a/data/tools/ck.yml b/data/tools/ck.yml new file mode 100644 index 0000000000..484ab11cae --- /dev/null +++ b/data/tools/ck.yml @@ -0,0 +1,13 @@ +name: ck +categories: + - linter +tags: + - java +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/mauricioaniche/ck' +homepage: 'https://github.com/mauricioaniche/ck' +description: >- + Calculates Chidamber and Kemerer object-oriented metrics by processing the + source Java files. diff --git a/data/tools/ckjm.yml b/data/tools/ckjm.yml new file mode 100644 index 0000000000..f4b310ee11 --- /dev/null +++ b/data/tools/ckjm.yml @@ -0,0 +1,13 @@ +name: ckjm +categories: + - linter +tags: + - java +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/dspinellis/ckjm' +homepage: 'http://www.spinellis.gr/sw/ckjm' +description: >- + Calculates Chidamber and Kemerer object-oriented metrics by processing the + bytecode of compiled Java files. diff --git a/data/tools/clair.yml b/data/tools/clair.yml new file mode 100644 index 0000000000..de4fbc080e --- /dev/null +++ b/data/tools/clair.yml @@ -0,0 +1,11 @@ +name: clair +categories: + - linter +tags: + - container +license: Other +types: + - cli +source: 'https://github.com/coreos/clair' +homepage: 'https://github.com/coreos/clair' +description: Vulnerability Static Analysis for Containers. diff --git a/data/tools/clang-tidy.yml b/data/tools/clang-tidy.yml new file mode 100644 index 0000000000..97f10fab1e --- /dev/null +++ b/data/tools/clang-tidy.yml @@ -0,0 +1,12 @@ +name: clang-tidy +categories: + - linter +tags: + - c + - cpp +license: Apache License v2.0 with LLVM Exceptions +types: + - cli +source: 'https://clang.llvm.org/extra/clang-tidy' +homepage: 'https://clang.llvm.org/extra/clang-tidy' +description: Clang-based C++ linter tool with the (limited) ability to fix issues, too. diff --git a/data/tools/classgraph.yml b/data/tools/classgraph.yml new file mode 100644 index 0000000000..7bdeb3e0a2 --- /dev/null +++ b/data/tools/classgraph.yml @@ -0,0 +1,15 @@ +name: ClassGraph +categories: + - linter +tags: + - groovy + - java + - kotlin +license: MIT License +types: + - cli +source: 'https://github.com/classgraph/classgraph' +homepage: 'https://github.com/classgraph/classgraph' +description: >- + A classpath and module path scanner for querying or visualizing class metadata + or class relatedness. diff --git a/data/tools/clayton.yml b/data/tools/clayton.yml new file mode 100644 index 0000000000..375a5f22a4 --- /dev/null +++ b/data/tools/clayton.yml @@ -0,0 +1,15 @@ +name: Clayton +homepage: https://www.getclayton.com/ +description: >- + AI-powered code reviews for Salesforce. Secure your developments, enforce best practice + and control your technical debt in real-time. +tags: + - apex + - lwc + - visualforce +categories: + - linter +types: + - service +license: proprietary +pricing: https://www.getclayton.com/pricing diff --git a/data/tools/clazy.yml b/data/tools/clazy.yml new file mode 100644 index 0000000000..4e874936c9 --- /dev/null +++ b/data/tools/clazy.yml @@ -0,0 +1,16 @@ +name: clazy +categories: + - linter +tags: + - c + - cpp +license: LGPL +types: + - cli +source: 'https://github.com/KDE/clazy' +homepage: 'https://github.com/KDE/clazy' +description: >- + Qt-oriented static code analyzer based on the Clang framework. + clazy is a compiler plugin which allows clang to understand Qt semantics. + You get more than 50 Qt related compiler warnings, ranging from unneeded memory allocations + to misusage of API, including fix-its for automatic refactoring. diff --git a/data/tools/clippy.yml b/data/tools/clippy.yml new file mode 100644 index 0000000000..66f2876d93 --- /dev/null +++ b/data/tools/clippy.yml @@ -0,0 +1,18 @@ +name: clippy +categories: + - linter +tags: + - rust +license: Apache-2.0, MIT license +types: + - cli +source: "https://github.com/rust-lang/rust-clippy" +homepage: "https://rust-lang.github.io/rust-clippy" +demos: + - https://play.rust-lang.org +resources: + - title: Rust For Beginners Tutorial - Linting with Clippy + url: https://www.youtube.com/watch?v=BE9KY6X7aUM + - title: "Easy Rust 096: Final example of iterators and quick look at clippy" + url: https://www.youtube.com/watch?v=OgcrRt84bUY +description: A code linter to catch common mistakes and improve your Rust code. diff --git a/data/tools/clj-kondo.yml b/data/tools/clj-kondo.yml new file mode 100644 index 0000000000..9fc09d9be8 --- /dev/null +++ b/data/tools/clj-kondo.yml @@ -0,0 +1,13 @@ +name: clj-kondo +categories: + - linter +tags: + - clojure +license: Eclipse Public License 1.0 +types: + - cli +source: 'https://github.com/borkdude/clj-kondo' +homepage: 'https://github.com/borkdude/clj-kondo' +description: >- + A linter for Clojure code that sparks joy. It informs you about potential + errors while you are typing. diff --git a/data/tools/closure-compiler.yml b/data/tools/closure-compiler.yml new file mode 100644 index 0000000000..8524fba54c --- /dev/null +++ b/data/tools/closure-compiler.yml @@ -0,0 +1,13 @@ +name: Closure Compiler +categories: + - linter +tags: + - javascript +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/google/closure-compiler' +homepage: 'https://developers.google.com/closure/compiler' +description: >- + A compiler tool to increase efficiency, reduce size, and provide code warnings + in JavaScript files. diff --git a/data/tools/closurelinter.yml b/data/tools/closurelinter.yml new file mode 100644 index 0000000000..ebd9c7a7d9 --- /dev/null +++ b/data/tools/closurelinter.yml @@ -0,0 +1,15 @@ +name: ClosureLinter +categories: + - linter +tags: + - javascript +deprecated: true +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/google/closure-linter' +homepage: 'https://github.com/google/closure-linter' +description: >- + Ensures that all of your project's JavaScript code follows the guidelines in + the Google JavaScript Style Guide. It can also automatically fix many common + errors. diff --git a/data/tools/cloud-iac-security.yml b/data/tools/cloud-iac-security.yml new file mode 100644 index 0000000000..67ad6d5716 --- /dev/null +++ b/data/tools/cloud-iac-security.yml @@ -0,0 +1,16 @@ +name: Cloud (IaC) Security for JetBrains IDEs +categories: + - linter +tags: + - dockerfile + - kubernetes + - security +license: MIT +types: + - ide-plugin +source: "https://github.com/NordCoderd/cloud-security-plugin" +homepage: "https://plugins.jetbrains.com/plugin/25413-cloud-iac-security" +description: "Cloud (IaC) Security plugin for JetBrains IDEs. Performs real-time inspections of Docker & Kubernetes IaC with 50+ rules based on Docker image/build security best practices, Kubernetes Pod Security Standards, and NSA/CISA Kubernetes Hardening Guidance." +resources: + - title: "Bundled-rules documentation" + url: https://protsenko.dev/infrastructure-security/ \ No newline at end of file diff --git a/data/tools/cloudformation-guard.yml b/data/tools/cloudformation-guard.yml new file mode 100644 index 0000000000..38d5786167 --- /dev/null +++ b/data/tools/cloudformation-guard.yml @@ -0,0 +1,13 @@ +name: AWS CloudFormation Guard +categories: + - linter +tags: + - configmanagement +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/aws-cloudformation/cloudformation-guard' +homepage: 'https://github.com/aws-cloudformation/cloudformation-guard' +description: >- + Check local CloudFormation templates against policy-as-code rules + and generate rules from existing templates. diff --git a/data/tools/clusterlint.yml b/data/tools/clusterlint.yml new file mode 100644 index 0000000000..0020e21155 --- /dev/null +++ b/data/tools/clusterlint.yml @@ -0,0 +1,14 @@ +name: clusterlint +categories: + - linter +tags: + - kubernetes +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/digitalocean/clusterlint' +homepage: 'https://github.com/digitalocean/clusterlint' +description: >- + Clusterlint queries live Kubernetes clusters for resources, executes common and + platform specific checks against these resources and provides actionable feedback to cluster operators. + It is a non invasive tool that is run externally. Clusterlint does not alter the resource configurations. diff --git a/data/tools/cmetrics.yml b/data/tools/cmetrics.yml new file mode 100644 index 0000000000..d10ceee829 --- /dev/null +++ b/data/tools/cmetrics.yml @@ -0,0 +1,12 @@ +name: CMetrics +categories: + - linter +tags: + - c + - cpp +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/MetricsGrimoire/CMetrics' +homepage: 'https://github.com/MetricsGrimoire/CMetrics' +description: Measures size and complexity for C files. diff --git a/data/tools/coala.yml b/data/tools/coala.yml new file mode 100644 index 0000000000..968cffdc0e --- /dev/null +++ b/data/tools/coala.yml @@ -0,0 +1,18 @@ +name: coala +categories: + - linter +tags: + - c + - cpp + - css + - java + - javascript +license: AGPL-3.0-only +deprecated: true +types: + - cli +source: "https://github.com/coala/coala" +homepage: "https://github.com/coala/coala" +description: >- + Language independent framework for creating code analysis - supports over 60 + languages by default. diff --git a/data/tools/cobra.yml b/data/tools/cobra.yml new file mode 100644 index 0000000000..8dc029ddc7 --- /dev/null +++ b/data/tools/cobra.yml @@ -0,0 +1,16 @@ +name: Cobra +categories: + - linter +tags: + - ada + - c + - cpp + - python +license: proprietary +types: + - cli +homepage: 'https://spinroot.com/cobra' +plans: + free: true + oss: true +description: Structural source code analyzer by NASA's Jet Propulsion Laboratory. diff --git a/data/tools/codacy.yml b/data/tools/codacy.yml new file mode 100644 index 0000000000..d71371be7b --- /dev/null +++ b/data/tools/codacy.yml @@ -0,0 +1,45 @@ +name: Codacy +categories: + - linter +tags: + - apex + - shell + - coffeescript + - cpp + - csharp + - crystal + - css + - elixir + - go + - groovy + - java + - javascript + - json + - jsp + - kotlin + - markdown + - php + - plsql + - python + - ruby + - scala + - swift + - tsql + - typescript + - vbscript + - visualforce + - xml +license: proprietary +types: + - service +homepage: https://www.codacy.com +description: Code Analysis to ship Better Code, Faster. +resources: + - title: Automate your code quality with Codacy Static Analysis Tool + url: https://www.youtube.com/watch?v=oxqTu2ouxaw + - title: A founder's journey - Codacy + url: https://www.youtube.com/watch?v=lVxkD_bmbFY +pricing: https://www.codacy.com/pricing +plans: + free: false + oss: true diff --git a/data/tools/code-climate.yml b/data/tools/code-climate.yml new file mode 100644 index 0000000000..692d31c80a --- /dev/null +++ b/data/tools/code-climate.yml @@ -0,0 +1,11 @@ +name: Code Climate +categories: + - linter +license: AGPL-3.0 License +tags: + - ci +types: + - service +source: "https://github.com/codeclimate/codeclimate" +homepage: "https://codeclimate.com" +description: "The open and extensible static analysis platform, for everyone." diff --git a/data/tools/code-cracker.yml b/data/tools/code-cracker.yml new file mode 100644 index 0000000000..8ca5bcce51 --- /dev/null +++ b/data/tools/code-cracker.yml @@ -0,0 +1,13 @@ +name: code-cracker +categories: + - linter +tags: + - csharp +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/code-cracker/code-cracker' +homepage: 'https://code-cracker.github.io' +description: >- + An analyzer library for C# and VB that uses Roslyn to produce refactorings, + code analysis, and other niceties. diff --git a/data/tools/code-graph-rag.yml b/data/tools/code-graph-rag.yml new file mode 100644 index 0000000000..943f3c386d --- /dev/null +++ b/data/tools/code-graph-rag.yml @@ -0,0 +1,23 @@ +name: Code-Graph-RAG +categories: + - meta +tags: + - python + - javascript + - typescript + - rust + - go + - java + - scala + - cpp + - lua +license: MIT +types: + - cli +source: "https://github.com/vitali87/code-graph-rag" +homepage: "https://code-graph-rag.com" +description: >- + Builds knowledge graphs from multi-language codebases using Tree-sitter AST parsing + and stores them in Memgraph. Supports 11 programming languages with a unified graph + schema and enables natural language querying and editing of code structure and + relationships. Functions as an MCP server for AI assistant integration. diff --git a/data/tools/code-pathfinder.yml b/data/tools/code-pathfinder.yml new file mode 100644 index 0000000000..711fca4c97 --- /dev/null +++ b/data/tools/code-pathfinder.yml @@ -0,0 +1,22 @@ +name: Code Pathfinder +categories: + - linter +tags: + - ci + - container + - dockerfile + - python + - go + - security +license: Apache-2.0 +types: + - cli +source: 'https://github.com/shivasurya/code-pathfinder' +homepage: 'https://codepathfinder.dev' +resources: + - title: Code Pathfinder Rules Registry + url: https://codepathfinder.dev/registry +description: >- + Opensource Static Code Analysis for security teams with Inter file dataflow + taint analysis. Built for finding vulnerabilities, advanced structural search, + derive insights and supports MCP server. diff --git a/data/tools/codeac.yml b/data/tools/codeac.yml new file mode 100644 index 0000000000..a6a208b986 --- /dev/null +++ b/data/tools/codeac.yml @@ -0,0 +1,25 @@ +name: Codeac +categories: + - linter +tags: + - ci + - container + - go + - java + - javascript + - php + - python + - ruby + - typescript +license: proprietary +types: + - service +homepage: "https://www.codeac.io/?ref=awesome-static-analysis" +pricing: https://www.codeac.io/pricing.html +plans: + free: true + oss: true +description: >- + Automated code review tool integrates with GitHub, Bitbucket and GitLab (even + self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, + Java, Docker, and more. (open-source free) diff --git a/data/tools/codeburner.yml b/data/tools/codeburner.yml new file mode 100644 index 0000000000..9363ba7395 --- /dev/null +++ b/data/tools/codeburner.yml @@ -0,0 +1,16 @@ +name: codeburner +categories: + - meta +tags: + - c + - cpp + - java + - javascript + - meta + - php +license: MIT License +types: + - cli +source: 'https://github.com/groupon/codeburner' +homepage: 'https://groupon.github.io/codeburner' +description: Provides a unified interface to sort and act on the issues it finds. diff --git a/data/tools/codechecker.yml b/data/tools/codechecker.yml new file mode 100644 index 0000000000..a9830b84aa --- /dev/null +++ b/data/tools/codechecker.yml @@ -0,0 +1,15 @@ +name: codechecker +categories: + - linter +tags: + - buildtool + - c + - cpp +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/Ericsson/codechecker' +homepage: 'https://codechecker.readthedocs.io/en/latest' +description: >- + A defect database and viewer extension for the Clang Static Analyzer with web + GUI. diff --git a/data/tools/codecov.yml b/data/tools/codecov.yml new file mode 100644 index 0000000000..9a32cc6075 --- /dev/null +++ b/data/tools/codecov.yml @@ -0,0 +1,30 @@ +name: Codecov +categories: + - linter +license: proprietary +tags: + - ci +types: + - service +homepage: "https://about.codecov.io/" +pricing: "https://about.codecov.io/pricing/" +plans: + free: true + oss: true +resources: + - title: "Codecov Overview" + url: https://www.youtube.com/watch?v=wwFookaYHoo + - title: "Codecov Onboarding 1: Account Creation" + url: https://www.youtube.com/watch?v=8xToLcchs4Y + - title: "Codecov Github Tutorial/Demo" + url: https://docs.codecov.com/docs/github-tutorial +reviews: + - https://www.g2.com/products/codecov/reviews +description: >- + Codecov is a company that provides code coverage tools for developers and engineering leaders + to gain visibility into their code coverage. + + They offer flexible and unified reporting, seamless coverage insights, and robust coverage controls. + Codecov supports over 20 languages and is CI/CD agnostic. + Over 29,000 organizations and 1 million developers use Codecov. + Codecov has recently joined Sentry. diff --git a/data/tools/codedepends.yml b/data/tools/codedepends.yml new file mode 100644 index 0000000000..0f89f805c3 --- /dev/null +++ b/data/tools/codedepends.yml @@ -0,0 +1,12 @@ +name: CodeDepends +categories: + - linter +tags: + - r +license: GPL +types: + - cli +deprecated: true +source: 'https://github.com/duncantl/CodeDepends' +homepage: 'https://github.com/duncantl/CodeDepends' +description: Static Code Analysis for R. diff --git a/data/tools/codefactor.yml b/data/tools/codefactor.yml new file mode 100644 index 0000000000..58c4e95e23 --- /dev/null +++ b/data/tools/codefactor.yml @@ -0,0 +1,41 @@ +name: CodeFactor +categories: + - linter +tags: + - ci + - c + - cpp + - csharp + - java + - css + - javascript + - go + - python + - ruby + - typescript + - scala + - coffeescript + - groovy + - php + - container + - shell + - yaml + - vue + - html + - swift + - kotlin + - powershell + - dart + - r +license: proprietary +types: + - service +homepage: https://codefactor.io +description: Automated Code Analysis for repos on GitHub or BitBucket. +resources: + - title: Getting started with CodeFactor.io + url: https://www.youtube.com/watch?v=0wL1bgoya2U +pricing: https://codefactor.io/pricing +plans: + free: false + oss: true diff --git a/data/tools/codeflow.yml b/data/tools/codeflow.yml new file mode 100644 index 0000000000..16ecbe65d4 --- /dev/null +++ b/data/tools/codeflow.yml @@ -0,0 +1,24 @@ +name: CodeFlow +categories: + - linter +tags: + - ci + - javascript + - typescript + - php + - ruby + - java + - css + - container + - python +license: proprietary +types: + - service +homepage: 'https://www.getcodeflow.com' +pricing: https://www.getcodeflow.com +plans: + free: false + oss: true +description: >- + Automated code analysis tool to deal with technical depth. Integrates with + Bitbucket and Gitlab. (free for Open Source Projects) diff --git a/data/tools/codeintelligence.yml b/data/tools/codeintelligence.yml new file mode 100644 index 0000000000..f8c07f60df --- /dev/null +++ b/data/tools/codeintelligence.yml @@ -0,0 +1,21 @@ +name: Code Intelligence +categories: + - linter +tags: + - security + - go + - c + - cpp + - java +license: proprietary +types: + - service +homepage: 'https://www.code-intelligence.com' +pricing: https://www.code-intelligence.com/product-pricing +plans: + free: false + oss: true +description: 'CI/CD-agnostic DevSecOps platform which combines industry-leading fuzzing engines for finding bugs and visualizing code coverage' +resources: + - title: Code Intelligence | Introduction + url: https://www.youtube.com/watch?v=Qfsz_ZTKM6Y diff --git a/data/tools/codelyzer.yml b/data/tools/codelyzer.yml new file mode 100644 index 0000000000..4aa00a175b --- /dev/null +++ b/data/tools/codelyzer.yml @@ -0,0 +1,14 @@ +name: Codelyzer +categories: + - linter +tags: + - typescript +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/mgechev/codelyzer' +homepage: 'http://codelyzer.com' +description: >- + A set of tslint rules for static code analysis of Angular 2 TypeScript + projects. diff --git a/data/tools/codemodder.yml b/data/tools/codemodder.yml new file mode 100644 index 0000000000..309f5a85f0 --- /dev/null +++ b/data/tools/codemodder.yml @@ -0,0 +1,13 @@ +name: Codemodder +categories: + - linter +tags: + - java + - python +license: GNU AFFERO GENERAL PUBLIC LICENSE 3.0 +types: + - cli +source: 'https://github.com/pixee/codemodder-java' +homepage: 'https://codemodder.io/' +description: >- + Codemodder is a pluggable framework for building expressive codemods. Use Codemodder when you need more than a linter or code formatting tool. Use it to fix non-trivial security issues and other code quality problems. diff --git a/data/tools/codenarc.yml b/data/tools/codenarc.yml new file mode 100644 index 0000000000..8b670fd4f3 --- /dev/null +++ b/data/tools/codenarc.yml @@ -0,0 +1,13 @@ +name: CodeNarc +categories: + - linter +tags: + - groovy +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/CodeNarc/CodeNarc' +homepage: 'https://codenarc.github.io/CodeNarc' +description: >- + A static analysis tool for Groovy source code, enabling monitoring and + enforcement of many coding standards and best practices. diff --git a/data/tools/codeql.yml b/data/tools/codeql.yml new file mode 100644 index 0000000000..2437937ca8 --- /dev/null +++ b/data/tools/codeql.yml @@ -0,0 +1,26 @@ +name: codeql +categories: + - linter +tags: + - ci + - security + - java + - python + - javascript + - typescript + - csharp + - c + - cpp +license: MIT +types: + - service + - ide-plugin +homepage: 'https://github.com/github/codeql' +resources: + - title: Community-powered security analysis with CodeQL - GitHub Universe 2020 + url: https://www.youtube.com/watch?v=Y6PjAaZKNYk + - title: Continuous code analysis with CodeQL + url: https://www.youtube.com/watch?v=KEPiDz2oO-I +description: >- + Deep code analysis - semantic queries and dataflow for several languages + with VSCode plugin support. diff --git a/data/tools/codeque.yml b/data/tools/codeque.yml new file mode 100644 index 0000000000..219f7271f2 --- /dev/null +++ b/data/tools/codeque.yml @@ -0,0 +1,26 @@ +name: CodeQue +categories: + - linter +tags: + - typescript + - javascript + - jsx + - lua + - python + - json +license: Sustainable Use License +types: + - cli + - ide-plugin +source: "https://github.com/codeque-co/codeque" +homepage: "https://codeque.co" +description: Ecosystem for structural matching JavaScript and TypeScript code. Offers search tool that understands code structure. Available as CLI tool and Visual Studio Code extension. It helps to search code faster and more accurately making you workflow more effective. Soon it will offer ESLint plugin to create your own rules in minutes to help with assuring codebase quality. +resources: + - title: Documentation + url: "https://codeque.co/docs" + - title: Visual Studio Code Extension + url: "https://codeque.co/r/vsc" + - title: CLI via NPM + url: "https://www.npmjs.com/package/@codeque/cli" + - title: Core via NPM + url: "https://www.npmjs.com/package/@codeque/core" diff --git a/data/tools/coderabbit.yml b/data/tools/coderabbit.yml new file mode 100644 index 0000000000..c39b9c8a27 --- /dev/null +++ b/data/tools/coderabbit.yml @@ -0,0 +1,22 @@ +name: CodeRabbit +categories: + - linter +tags: + - ci +types: + - service +source: "https://github.com/coderabbitai" +homepage: "https://coderabbit.ai" +license: proprietary +plans: + oss: true + free: true +pricing: https://coderabbit.ai/pricing +resources: + - title: "AI Code Reviews Demo" + url: https://www.youtube.com/watch?v=3SyUOSebG7E +description: >- + AI-powered code review tool that helps developers write better code faster. + CodeRabbit provides automated code reviews, + identifies security vulnerabilities, and suggests code improvements. + It integrates with GitHub and GitLab. diff --git a/data/tools/coderush.yml b/data/tools/coderush.yml new file mode 100644 index 0000000000..865ffd9073 --- /dev/null +++ b/data/tools/coderush.yml @@ -0,0 +1,15 @@ +name: CodeRush +categories: + - linter +tags: + - aspnet + - csharp + - dotnet +license: proprietary +types: + - cli +homepage: https://www.devexpress.com/products/coderush +description: >- + Code creation, debugging, navigation, refactoring, analysis and visualization tools + that use the Roslyn engine in Visual Studio 2015 and up. +pricing: https://www.devexpress.com/buy/net/ diff --git a/data/tools/codescan.yml b/data/tools/codescan.yml new file mode 100644 index 0000000000..e127038e10 --- /dev/null +++ b/data/tools/codescan.yml @@ -0,0 +1,15 @@ +name: CodeScan +homepage: https://www.codescan.io/ +description: "Code Quality and Security for Salesforce Developers. Made exclusively\ + \ for the Salesforce platform, CodeScan\u2019s code analysis solutions provide you\ + \ with total visibility into your code health." +categories: +- linter +tags: +- apex +- lwc +- visualforce +license: proprietary +types: +- service +pricing: https://www.codescan.io/pricing diff --git a/data/tools/codescene.yml b/data/tools/codescene.yml new file mode 100644 index 0000000000..bfdaace9c4 --- /dev/null +++ b/data/tools/codescene.yml @@ -0,0 +1,44 @@ +name: CodeScene +categories: + - linter +tags: + - c + - clojure + - cpp + - csharp + - dart + - elixir + - erlang + - go + - groovy + - java + - javascript + - kotlin + - perl + - php + - powershell + - python + - ruby + - scala + - swift + - typescript +license: proprietary +types: + - service +homepage: https://codescene.com +description: >- + CodeScene is a quality visualization tool for software. Prioritize technical debt, + detect delivery risks, and measure organizational aspects. Fully automated. +resources: + - title: CodeScene Introduction - short video with the essentials of CodeScene + url: https://www.youtube.com/watch?v=4Mwv-Swxo84 + - title: Augmented Code Analysis with CodeScene + url: https://www.youtube.com/watch?v=c2lqk98bC00 + - title: "Beyond code: interview with Adam Tornhill about CodeScene" + url: https://www.youtube.com/watch?v=tbCA2JiO_K8 +pricing: https://codescene.com/pricing +plans: + free: false + oss: true +reviews: + - https://www.capterra.com/p/193379/CodeScene/ \ No newline at end of file diff --git a/data/tools/codesee.yml b/data/tools/codesee.yml new file mode 100644 index 0000000000..f738cee927 --- /dev/null +++ b/data/tools/codesee.yml @@ -0,0 +1,25 @@ +name: CodeSee +categories: + - linter +tags: + - go + - java + - javascript + - python + - rust + - typescript +license: proprietary +types: + - service + - ide-plugin +homepage: 'https://www.codesee.io/' +demos: + - https://www.codesee.io/maps-demos +pricing: https://www.codesee.io/pricing +plans: + free: true + oss: false +description: >- + CodeSee is mapping and automating your app's services, directories, file + dependencies, and code changes. It's like Google Map, but for code.t + diff --git a/data/tools/codesonar-from-grammatech.yml b/data/tools/codesonar-from-grammatech.yml new file mode 100644 index 0000000000..9ba8dea240 --- /dev/null +++ b/data/tools/codesonar-from-grammatech.yml @@ -0,0 +1,19 @@ +name: CodeSonar from GrammaTech +categories: + - linter +tags: + - c + - cpp + - csharp + - java +license: proprietary +types: + - cli +homepage: 'https://codesecure.com/our-products/codesonar/' +pricing: https://codesecure.com/trial-request/ +plans: + free: false + oss: false +description: >- + Advanced, whole program, deep path, static analysis of C, C++, Java and C# with + easy-to-understand explanations and code and path visualization. diff --git a/data/tools/codespell.yml b/data/tools/codespell.yml new file mode 100644 index 0000000000..d3f784a2a8 --- /dev/null +++ b/data/tools/codespell.yml @@ -0,0 +1,11 @@ +name: codespell +categories: + - linter +tags: + - writing +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/codespell-project/codespell' +homepage: 'https://github.com/codespell-project/codespell' +description: Check code for common misspellings. diff --git a/data/tools/codety.yml b/data/tools/codety.yml new file mode 100644 index 0000000000..39d376efe3 --- /dev/null +++ b/data/tools/codety.yml @@ -0,0 +1,27 @@ +name: Codety +categories: + - linter +tags: + - ci + - cpp + - go + - java + - javascript + - json + - jsp + - kotlin + - plsql + - python + - scala + - swift + - typescript +license: proprietary +types: + - service +homepage: https://www.codety.io +pricing: https://www.codety.io +plans: + free: true + oss: true +description: Codety Scanner is a comprehensive source code scanner that embeds 5000+ static code analysis rules, which aim to detect code issues for 20+ programming languages and IaC tools. +source: "https://github.com/codetyio/codety-scanner" diff --git a/data/tools/codiga.yml b/data/tools/codiga.yml new file mode 100644 index 0000000000..2b52123a2d --- /dev/null +++ b/data/tools/codiga.yml @@ -0,0 +1,36 @@ +name: Codiga +categories: + - linter +tags: + - apex + - c + - cpp + - dockerfile + - go + - java + - javascript + - kotlin + - ruby + - php + - python + - typescript + - scala + - ci +license: proprietary +types: + - service +homepage: https://www.codiga.io +description: >- + Automated Code Reviews and Technical Debt management platform that supports 12+ + languages. +pricing: https://www.codiga.io/pricing +resources: + - title: Codiga Code Analysis Demonstration + url: https://www.youtube.com/watch?v=hQ_BjDYlsCU + - title: Codiga Coding Assistant + url: https://www.youtube.com/watch?v=alS_h2ig7ZI +plans: + free: true + oss: false +reviews: + - https://www.capterra.com/p/234335/Codiga/ \ No newline at end of file diff --git a/data/tools/coffeelint.yml b/data/tools/coffeelint.yml new file mode 100644 index 0000000000..2dd2da56f5 --- /dev/null +++ b/data/tools/coffeelint.yml @@ -0,0 +1,11 @@ +name: coffeelint +categories: + - linter +tags: + - coffeescript +license: Other +types: + - cli +source: 'https://github.com/clutchski/coffeelint' +homepage: 'https://coffeelint.github.io/' +description: A style checker that helps keep CoffeeScript code clean and consistent. diff --git a/data/tools/cognicrypt.yml b/data/tools/cognicrypt.yml new file mode 100644 index 0000000000..bd5dd47d8d --- /dev/null +++ b/data/tools/cognicrypt.yml @@ -0,0 +1,14 @@ +name: CogniCrypt +categories: + - linter +tags: + - java +license: Eclipse Public License 2.0 +types: + - cli +source: "https://github.com/eclipse-cognicrypt/CogniCrypt" +homepage: "https://www.eclipse.org/cognicrypt" +description: Checks Java source and byte code for incorrect uses of cryptographic APIs. +resources: + - title: "Tutorial: CogniCrypt basics, and how to integrate your own Crypto APIs into CognICrypt" + url: https://www.youtube.com/watch?v=vOZKN8yQcAY diff --git a/data/tools/cohesion.yml b/data/tools/cohesion.yml new file mode 100644 index 0000000000..75d1bdb646 --- /dev/null +++ b/data/tools/cohesion.yml @@ -0,0 +1,11 @@ +name: cohesion +categories: + - linter +tags: + - python +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/mschwager/cohesion' +homepage: 'https://github.com/mschwager/cohesion' +description: A tool for measuring Python class cohesion. diff --git a/data/tools/collector.yml b/data/tools/collector.yml new file mode 100644 index 0000000000..ba4cb86e00 --- /dev/null +++ b/data/tools/collector.yml @@ -0,0 +1,11 @@ +name: collector +categories: + - formatter +tags: + - container +license: Other +types: + - cli +source: 'https://github.com/banyanops/collector' +homepage: 'https://github.com/banyanops/collector' +description: 'Run arbitrary scripts inside containers, and gather useful information.' diff --git a/data/tools/commitlint.yml b/data/tools/commitlint.yml new file mode 100644 index 0000000000..1fc7d897ed --- /dev/null +++ b/data/tools/commitlint.yml @@ -0,0 +1,12 @@ +name: commitlint +categories: + - linter +tags: + - git +license: MIT License +types: + - cli +source: 'https://github.com/conventional-changelog/commitlint' +homepage: 'https://commitlint.js.org' +description: >- + checks if your commit messages meet the conventional commit format diff --git a/data/tools/complexity-report.yml b/data/tools/complexity-report.yml new file mode 100644 index 0000000000..0de784d5f2 --- /dev/null +++ b/data/tools/complexity-report.yml @@ -0,0 +1,12 @@ +name: complexity-report +categories: + - linter +tags: + - javascript +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/escomplex/complexity-report' +homepage: 'https://github.com/escomplex/complexity-report' +description: Software complexity analysis for JavaScript projects. diff --git a/data/tools/composer-dependency-analyser.yml b/data/tools/composer-dependency-analyser.yml new file mode 100644 index 0000000000..b20d332fa0 --- /dev/null +++ b/data/tools/composer-dependency-analyser.yml @@ -0,0 +1,21 @@ +name: composer-dependency-analyser +categories: + - linter +tags: + - php + - ci + - package +license: MIT +types: + - cli +source: 'https://github.com/shipmonk-rnd/composer-dependency-analyser' +homepage: 'https://github.com/shipmonk-rnd/composer-dependency-analyser' +description: | + Fast detection of composer dependency issues. + + * 💪 Powerful: Detects unused, shadow and misplaced composer dependencies + * ⚡ Performant: Scans 15 000 files in 2s! + * ⚙️ Configurable: Fine-grained ignores via PHP config + * 🕸️ Lightweight: No composer dependencies + * 🍰 Easy-to-use: No config needed for first try + * ✨ Compatible: PHP >= 7.2 diff --git a/data/tools/cookstyle.yml b/data/tools/cookstyle.yml new file mode 100644 index 0000000000..541fc11173 --- /dev/null +++ b/data/tools/cookstyle.yml @@ -0,0 +1,13 @@ +name: cookstyle +categories: + - linter +tags: + - configmanagement +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/chef/cookstyle' +homepage: 'https://docs.chef.io/cookstyle.html' +description: >- + Cookstyle is a linting tool based on the RuboCop Ruby linting tool for Chef + cookbooks. diff --git a/data/tools/corgea.yml b/data/tools/corgea.yml new file mode 100644 index 0000000000..04da853800 --- /dev/null +++ b/data/tools/corgea.yml @@ -0,0 +1,36 @@ +name: Corgea +categories: + - linter +tags: + - ci + - go + - java + - javascript + - php + - python + - ruby + - security + - typescript + - csharp + - kotlin + - c + - cpp +license: proprietary +types: + - cli + - service +homepage: 'https://corgea.com/' +pricing: https://corgea.com/pricing +plans: + free: true + oss: false +description: >- + Corgea is an AI-powered SAST scanner that helps developers find and fix insecure code. + It finds business logic flaws, broken authentication, API vulnerabilities, and more with little false positives. + Additionally, it automatically writes security fixes for them to approve. + Corgea integrates with GitHub, GitLab, Azure DevOps, IDEs and CLI. It is free to try it. +resources: + - title: Product homepage + url: https://corgea.com/ + - title: Corgea Docs + url: https://docs.corgea.app/ diff --git a/data/tools/corrode.yml b/data/tools/corrode.yml new file mode 100644 index 0000000000..af71fb1a23 --- /dev/null +++ b/data/tools/corrode.yml @@ -0,0 +1,17 @@ +name: Corrode +categories: + - linter +tags: + - c + - cpp + - rust +deprecated: true +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/jameysharp/corrode' +homepage: 'https://github.com/jameysharp/corrode' +description: >- + Semi-automatic translation from C to Rust. Could reveal bugs in the original + implementation by showing Rust compiler warnings and errors. Superseded by + C2Rust. diff --git a/data/tools/coverity.yml b/data/tools/coverity.yml new file mode 100644 index 0000000000..e0574bd479 --- /dev/null +++ b/data/tools/coverity.yml @@ -0,0 +1,39 @@ +name: Coverity +categories: + - linter +tags: + - c + - cpp + - csharp + - fortran + - java + - javascript + - php + - python + - rails + - scala + - security + - typescript + - vbnet +license: proprietary +types: + - cli +homepage: >- + https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html +pricing: https://www.synopsys.com/software-integrity/contact-sales.html +plans: + free: false + oss: true +description: >- + Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby + on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, + C#, VB.NET. +resources: + - title: Coverity - Static Analysis by Synopsys + url: https://www.youtube.com/watch?v=FZ-ySGEcD0c + - title: Checkmarx - Source Code Analysis Made Easy 2017 + url: https://www.youtube.com/watch?v=zo1pCl6yQ34 +reviews: + - https://www.gartner.com/reviews/market/application-security-testing/vendor/synopsys/product/coverity-sast + - https://www.g2.com/products/coverity/reviews + - https://www.peerspot.com/products/coverity-reviews \ No newline at end of file diff --git a/data/tools/cpachecker.yml b/data/tools/cpachecker.yml new file mode 100644 index 0000000000..241d043478 --- /dev/null +++ b/data/tools/cpachecker.yml @@ -0,0 +1,13 @@ +name: CPAchecker +categories: + - linter +tags: + - c +license: Apache 2.0 License +types: + - cli +source: 'https://cpachecker.sosy-lab.org/download.php' +homepage: 'https://cpachecker.sosy-lab.org' +description: >- + A tool for configurable software verification of C programs. + The name CPAchecker was chosen to reflect that the tool is based on the CPA concepts and is used for checking software programs. diff --git a/data/tools/cpp-linter-action.yml b/data/tools/cpp-linter-action.yml new file mode 100644 index 0000000000..27e6264943 --- /dev/null +++ b/data/tools/cpp-linter-action.yml @@ -0,0 +1,17 @@ +name: cpp-linter-action +categories: + - linter +tags: + - c + - cpp + - ci + - python +license: MIT +types: + - cli +source: 'https://github.com/cpp-linter/cpp-linter-action' +homepage: 'https://cpp-linter.github.io/cpp-linter-action/' +description: A Github Action for linting C/C++ code integrating clang-tidy and clang-format to collect feedback provided in the form of thread comments and/or annotations. +resources: + - title: C/C++ Lint Action introduction + url: https://github.com/cpp-linter/cpp-linter-action diff --git a/data/tools/cppcheck.yml b/data/tools/cppcheck.yml new file mode 100644 index 0000000000..0e906e26f9 --- /dev/null +++ b/data/tools/cppcheck.yml @@ -0,0 +1,22 @@ +name: cppcheck +categories: + - linter +tags: + - c + - cpp +license: GNU General Public License v3.0 +types: + - cli +source: "https://github.com/danmar/cppcheck" +homepage: "https://cppcheck.sourceforge.io" +description: Static analysis of C/C++ code. +demos: + - https://cppcheck.sourceforge.io/demo/ + - https://www.g2.com/products/cppcheck/reviews +reviews: + - https://sourceforge.net/projects/cppcheck/reviews/ +resources: + - title: Cppcheck introduction + url: https://www.viva64.com/en/t/0083/ + - title: "Using cppcheck for C & C++ Static Analysis" + url: https://www.youtube.com/watch?v=oJ8SXVoefaA diff --git a/data/tools/cppdepend.yml b/data/tools/cppdepend.yml new file mode 100644 index 0000000000..9b8741ba10 --- /dev/null +++ b/data/tools/cppdepend.yml @@ -0,0 +1,15 @@ +name: CppDepend +categories: +- linter +tags: +- c +- cpp +deprecated: false +license: proprietary +types: +- cli +homepage: https://www.cppdepend.com +description: >- + Measure, query and visualize your code and avoid unexpected issues, technical debt + and complexity. +pricing: https://www.cppdepend.com/purchase diff --git a/data/tools/cpplint.yml b/data/tools/cpplint.yml new file mode 100644 index 0000000000..750945ed18 --- /dev/null +++ b/data/tools/cpplint.yml @@ -0,0 +1,12 @@ +name: cpplint +categories: + - linter +tags: + - c + - cpp +license: Apache-2.0 +types: + - cli +source: "https://github.com/cpplint/cpplint" +homepage: "https://github.com/cpplint/cpplint" +description: Automated C++ checker that follows Google's style guide. diff --git a/data/tools/cqc.yml b/data/tools/cqc.yml new file mode 100644 index 0000000000..56ed380d55 --- /dev/null +++ b/data/tools/cqc.yml @@ -0,0 +1,17 @@ +name: cqc +categories: + - linter +tags: + - css + - javascript + - jsx + - less + - vue +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/xcatliu/cqc' +homepage: 'https://github.com/xcatliu/cqc' +description: >- + Check your code quality for js, jsx, vue, css, less, scss, sass and styl + files. diff --git a/data/tools/cqmetrics.yml b/data/tools/cqmetrics.yml new file mode 100644 index 0000000000..606f28f41b --- /dev/null +++ b/data/tools/cqmetrics.yml @@ -0,0 +1,12 @@ +name: cqmetrics +categories: + - linter +tags: + - c + - cpp +license: Other +types: + - cli +source: 'https://github.com/dspinellis/cqmetrics' +homepage: 'https://github.com/dspinellis/cqmetrics' +description: Quality metrics for C code. diff --git a/data/tools/credential-digger.yml b/data/tools/credential-digger.yml new file mode 100644 index 0000000000..8f6509a663 --- /dev/null +++ b/data/tools/credential-digger.yml @@ -0,0 +1,14 @@ +name: Credential Digger +categories: + - linter +tags: + - security +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/SAP/credential-digger' +homepage: 'https://github.com/SAP/credential-digger' +description: >- + Credential Digger is a GitHub scanning tool that identifies hardcoded credentials (Passwords, API Keys, Secret Keys, Tokens, personal information, etc), + and filtering the false positive data through a machine learning model called [Password Model](https://huggingface.co/SAPOSS/password-model). This scanner + is able to detect passwords and non structured tokens with a low false positive rate. diff --git a/data/tools/credo.yml b/data/tools/credo.yml new file mode 100644 index 0000000000..6c390fef9d --- /dev/null +++ b/data/tools/credo.yml @@ -0,0 +1,11 @@ +name: credo +categories: + - linter +tags: + - elixir +license: MIT License +types: + - cli +source: 'https://github.com/rrrene/credo' +homepage: 'https://github.com/rrrene/credo' +description: A static code analysis tool with a focus on code consistency and teaching. diff --git a/data/tools/crystal.yml b/data/tools/crystal.yml new file mode 100644 index 0000000000..47582fec06 --- /dev/null +++ b/data/tools/crystal.yml @@ -0,0 +1,11 @@ +name: crystal +categories: + - linter +tags: + - crystal +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/crystal-lang/crystal' +homepage: 'https://crystal-lang.org' +description: The Crystal compiler has built-in linting functionality. diff --git a/data/tools/cscout.yml b/data/tools/cscout.yml new file mode 100644 index 0000000000..cb5863c8c0 --- /dev/null +++ b/data/tools/cscout.yml @@ -0,0 +1,12 @@ +name: CScout +categories: + - linter +tags: + - c + - cpp +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/dspinellis/cscout' +homepage: 'https://www.spinellis.gr/cscout' +description: Complexity and quality metrics for C and C preprocessor code. diff --git a/data/tools/csharpessentials.yml b/data/tools/csharpessentials.yml new file mode 100644 index 0000000000..ea2242892e --- /dev/null +++ b/data/tools/csharpessentials.yml @@ -0,0 +1,13 @@ +name: CSharpEssentials +categories: + - linter +tags: + - csharp +license: Other +types: + - cli +source: 'https://github.com/DustinCampbell/CSharpEssentials' +homepage: 'https://github.com/DustinCampbell/CSharpEssentials' +description: >- + C# Essentials is a collection of Roslyn diagnostic analyzers, code fixes and + refactorings that make it easy to work with C# 6 language features. diff --git a/data/tools/css-stats.yml b/data/tools/css-stats.yml new file mode 100644 index 0000000000..fa024673a4 --- /dev/null +++ b/data/tools/css-stats.yml @@ -0,0 +1,11 @@ +name: CSS Stats +categories: + - linter +tags: + - css +license: MIT License +types: + - cli +source: 'https://github.com/cssstats/cssstats' +homepage: 'https://cssstats.com' +description: Potentially interesting stats on stylesheets. diff --git a/data/tools/csscomb.yml b/data/tools/csscomb.yml new file mode 100644 index 0000000000..09c2a91438 --- /dev/null +++ b/data/tools/csscomb.yml @@ -0,0 +1,13 @@ +name: CSScomb +categories: + - formatter +tags: + - css +license: MIT License +types: + - cli +source: 'https://github.com/csscomb/csscomb.js' +homepage: 'https://github.com/csscomb/csscomb.js' +description: >- + A coding style formatter for CSS. Supports own configurations to make style + sheets beautiful and consistent. diff --git a/data/tools/csslint.yml b/data/tools/csslint.yml new file mode 100644 index 0000000000..91d94a8012 --- /dev/null +++ b/data/tools/csslint.yml @@ -0,0 +1,13 @@ +name: CSSLint +categories: + - linter +tags: + - css +license: Other +types: + - cli +source: 'https://github.com/CSSLint/csslint' +homepage: 'http://csslint.net' +description: >- + Does basic syntax checking and finds problematic patterns or signs of + inefficiency. diff --git a/data/tools/cwe_checker.yml b/data/tools/cwe_checker.yml new file mode 100644 index 0000000000..1c4e791aa3 --- /dev/null +++ b/data/tools/cwe_checker.yml @@ -0,0 +1,11 @@ +name: cwe_checker +categories: + - linter +tags: + - binary +license: GNU Lesser General Public License v3.0 +types: + - cli +source: 'https://github.com/fkie-cad/cwe_checker' +homepage: 'https://github.com/fkie-cad/cwe_checker' +description: cwe_checker finds vulnerable patterns in binary executables. diff --git a/data/tools/cyclocomp.yml b/data/tools/cyclocomp.yml new file mode 100644 index 0000000000..4910b7e0f5 --- /dev/null +++ b/data/tools/cyclocomp.yml @@ -0,0 +1,11 @@ +name: cyclocomp +categories: + - linter +tags: + - r +license: Other +types: + - cli +source: 'https://github.com/MangoTheCat/cyclocomp' +homepage: 'https://github.com/MangoTheCat/cyclocomp' +description: Quantifies the cyclomatic complexity of R functions / expressions. diff --git a/data/tools/d-scanner.yml b/data/tools/d-scanner.yml new file mode 100644 index 0000000000..dacd14451e --- /dev/null +++ b/data/tools/d-scanner.yml @@ -0,0 +1,11 @@ +name: D-scanner +categories: + - linter +tags: + - dlang +license: Boost Software License 1.0 +types: + - cli +source: 'https://github.com/dlang-community/D-Scanner' +homepage: 'https://github.com/dlang-community/D-Scanner' +description: D-Scanner is a tool for analyzing D source code. diff --git a/data/tools/dagda.yml b/data/tools/dagda.yml new file mode 100644 index 0000000000..68fe28d37a --- /dev/null +++ b/data/tools/dagda.yml @@ -0,0 +1,12 @@ +name: dagda +categories: + - linter +tags: + - container +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/eliasgranderubio/dagda' +homepage: 'https://github.com/eliasgranderubio/dagda' +description: Perform static analysis of known vulnerabilities in docker images/containers. +deprecated: true diff --git a/data/tools/dart-code-metrics.yml b/data/tools/dart-code-metrics.yml new file mode 100644 index 0000000000..ce69dd8a14 --- /dev/null +++ b/data/tools/dart-code-metrics.yml @@ -0,0 +1,11 @@ +name: Dart Code Metrics +categories: + - linter +tags: + - dart +license: MIT License +types: + - cli +source: 'https://github.com/dart-code-checker/dart-code-metrics' +homepage: 'https://pub.dev/packages/dart_code_metrics' +description: Additional linter for Dart. Reports code metrics, checks for anti-patterns and provides additional rules for Dart analyzer. diff --git a/data/tools/database_consistency.yml b/data/tools/database_consistency.yml new file mode 100644 index 0000000000..4ab57813eb --- /dev/null +++ b/data/tools/database_consistency.yml @@ -0,0 +1,13 @@ +name: DatabaseConsistency +categories: + - linter +tags: + - ruby + - rails +license: MIT License +types: + - cli +source: "https://github.com/djezzzl/database_consistency" +homepage: "https://github.com/djezzzl/database_consistency" +description: >- + The tool to avoid various issues due to inconsistencies and inefficiencies between a database schema and application models. diff --git a/data/tools/dataflow-framework.yml b/data/tools/dataflow-framework.yml new file mode 100644 index 0000000000..8e99ef7123 --- /dev/null +++ b/data/tools/dataflow-framework.yml @@ -0,0 +1,17 @@ +name: Dataflow Framework +categories: + - linter +tags: + - java +license: GPL with Classpath exception / MIT License +types: + - cli +source: 'https://github.com/typetools/checker-framework' +homepage: 'https://github.com/typetools/checker-framework' +description: >- + An industrial-strength dataflow framework for Java. + The Dataflow Framework is used in the Checker Framework, Google’s Error Prone, Uber’s NullAway, Meta’s Nullsafe, and in other contexts. + It is distributed with the Checker Framework. +resources: + - title: "User Manual" + url: https://checkerframework.org/manual/checker-framework-dataflow-manual.pdf diff --git a/data/tools/datree.yml b/data/tools/datree.yml new file mode 100644 index 0000000000..bc253d53ec --- /dev/null +++ b/data/tools/datree.yml @@ -0,0 +1,12 @@ +name: Datree +categories: + - linter +tags: + - kubernetes + - security +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/datreeio/datree' +homepage: 'https://datree.io/' +description: 'A CLI tool to prevent Kubernetes misconfigurations by ensuring that manifests and Helm charts follow best practices as well as your organization’s policies' diff --git a/data/tools/dawnscanner.yml b/data/tools/dawnscanner.yml new file mode 100644 index 0000000000..ad6b8ff9c8 --- /dev/null +++ b/data/tools/dawnscanner.yml @@ -0,0 +1,14 @@ +name: dawnscanner +categories: + - linter +tags: + - rails + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/thesp0nge/dawnscanner' +homepage: 'https://github.com/thesp0nge/dawnscanner' +description: >- + A static analysis security scanner for ruby written web applications. It + supports Sinatra, Padrino and Ruby on Rails frameworks. diff --git a/data/tools/dbcritic.yml b/data/tools/dbcritic.yml new file mode 100644 index 0000000000..b22ac1c1e9 --- /dev/null +++ b/data/tools/dbcritic.yml @@ -0,0 +1,13 @@ +name: dbcritic +categories: + - linter +tags: + - sql +license: BSD-3-Clause License +types: + - cli +source: 'https://github.com/channable/dbcritic' +homepage: 'https://github.com/channable/dbcritic' +description: >- + dbcritic finds problems in a database schema, such as + a missing primary key constraint in a table. diff --git a/data/tools/deadcode.yml b/data/tools/deadcode.yml new file mode 100644 index 0000000000..e0a164c9c0 --- /dev/null +++ b/data/tools/deadcode.yml @@ -0,0 +1,11 @@ +name: deadcode +categories: + - linter +tags: + - go +license: Other +types: + - cli +source: 'https://github.com/tsenart/deadcode' +homepage: 'https://github.com/tsenart/deadcode' +description: Finds unused code. diff --git a/data/tools/deadnix.yml b/data/tools/deadnix.yml new file mode 100644 index 0000000000..b23b1db8b8 --- /dev/null +++ b/data/tools/deadnix.yml @@ -0,0 +1,11 @@ +name: deadnix +categories: + - linter +tags: + - nix +license: GPL-3.0 +types: + - cli +source: 'https://github.com/astro/deadnix' +homepage: 'https://github.com/astro/deadnix' +description: 'Scan Nix files for dead code (unused variable bindings)' diff --git a/data/tools/deal.yml b/data/tools/deal.yml new file mode 100644 index 0000000000..34ae4a99f1 --- /dev/null +++ b/data/tools/deal.yml @@ -0,0 +1,15 @@ +name: deal +categories: + - linter +tags: + - python +license: MIT +types: + - cli +source: "https://github.com/life4/deal" +homepage: "https://deal.readthedocs.io/" +description: >- + Design by contract for Python. Write bug-free code. + By adding a few decorators to your code, you get for free tests, static + analysis, formal verification, and much more. + diff --git a/data/tools/deepcode.yml b/data/tools/deepcode.yml new file mode 100644 index 0000000000..b6540e69f5 --- /dev/null +++ b/data/tools/deepcode.yml @@ -0,0 +1,22 @@ +name: DeepCode +categories: + - linter +tags: + - c + - cpp + - java + - javascript + - python + - typescript +license: proprietary +types: + - service +homepage: https://snyk.io/platform/deepcode-ai/ +deprecated: true +description: >- + DeepCode was acquired by Snyk is now Snyk Code. +resources: + - title: Intro to DeepCode + url: https://www.youtube.com/watch?v=5ThvYN3nWcg + - title: "Introduction to DeepCode's CLI - Install, config, first use" + url: https://www.youtube.com/watch?v=PG8PmrKEuLY diff --git a/data/tools/deepscan.yml b/data/tools/deepscan.yml new file mode 100644 index 0000000000..9e6c4ffe76 --- /dev/null +++ b/data/tools/deepscan.yml @@ -0,0 +1,16 @@ +name: DeepScan +categories: + - linter +tags: + - javascript +license: proprietary +types: + - cli +homepage: https://deepscan.io +description: >- + An analyzer for JavaScript which targets runtime errors and quality issues rather + than coding conventions. +pricing: https://deepscan.io/pricing +plans: + free: false + oss: true diff --git a/data/tools/deepsource.yml b/data/tools/deepsource.yml new file mode 100644 index 0000000000..d84ece9339 --- /dev/null +++ b/data/tools/deepsource.yml @@ -0,0 +1,30 @@ +name: DeepSource +categories: + - linter +tags: + - configmanagement + - container + - go + - javascript + - python + - ruby + - sql +license: proprietary +types: + - service +homepage: https://deepsource.com +resources: + - title: What is DeepSource? + url: https://www.youtube.com/watch?v=SwEQXK1ms_U + - title: Static analysis for C# with DeepSource + url: https://www.youtube.com/watch?v=hgWui62Aa0E +description: >- + In-depth static analysis to find issues in verticals of bug risks, security, anti-patterns, + performance, documentation and style. Native integrations with GitHub, GitLab and + Bitbucket. Less than 5% false positives. +pricing: https://deepsource.io/pricing +plans: + free: true + oss: true +reviews: + - https://www.capterra.com/p/199025/DeepSource/ diff --git a/data/tools/deleaker.yml b/data/tools/deleaker.yml new file mode 100644 index 0000000000..186fd92d80 --- /dev/null +++ b/data/tools/deleaker.yml @@ -0,0 +1,22 @@ +name: deleaker +categories: + - linter +tags: + - c + - cpp + - csharp + - delphi + - dotnet +license: proprietary +types: + - service +homepage: 'https://www.deleaker.com/' +pricing: https://www.deleaker.com/order.html +plans: + free: false + oss: false +description: >- + Deleaker is a memory leak detection tool for C++, .NET, and Delphi, + integrating with Visual Studio, Qt Creator, and RAD Studio or running + as a standalone application. It helps developers find and fix memory, + GDI, and handle leaks efficiently. diff --git a/data/tools/delphilint.yml b/data/tools/delphilint.yml new file mode 100644 index 0000000000..fb30bd81e1 --- /dev/null +++ b/data/tools/delphilint.yml @@ -0,0 +1,11 @@ +name: DelphiLint +categories: + - linter +tags: + - delphi +license: LGPL-3.0-only license +types: + - ide-plugin +source: 'https://github.com/integrated-application-development/delphilint' +homepage: 'https://github.com/integrated-application-development/delphilint' +description: A Delphi IDE package providing on-the-fly code analysis and linting, powered by SonarDelphi. \ No newline at end of file diff --git a/data/tools/dennis.yml b/data/tools/dennis.yml new file mode 100644 index 0000000000..c587191404 --- /dev/null +++ b/data/tools/dennis.yml @@ -0,0 +1,13 @@ +name: dennis +categories: + - linter +tags: + - translation +license: BSD-3-Clause +types: + - cli +source: 'https://github.com/willkg/dennis' +homepage: 'https://github.com/willkg/dennis' +description: >- + A set of utilities for working with PO files to ease development and improve + quality. diff --git a/data/tools/deno_lint.yml b/data/tools/deno_lint.yml new file mode 100644 index 0000000000..c349a42f38 --- /dev/null +++ b/data/tools/deno_lint.yml @@ -0,0 +1,11 @@ +name: deno_lint +categories: + - linter +tags: + - deno +license: MIT License +types: + - cli +source: 'https://github.com/denoland/deno_lint' +homepage: 'https://github.com/denoland/deno_lint' +description: Official linter for Deno. diff --git a/data/tools/depends.yml b/data/tools/depends.yml new file mode 100644 index 0000000000..d791619c2c --- /dev/null +++ b/data/tools/depends.yml @@ -0,0 +1,16 @@ +name: Depends +categories: + - linter +tags: + - c + - cpp + - java + - php +license: MIT License +types: + - cli +source: 'https://github.com/multilang-depends/depends' +homepage: 'https://github.com/multilang-depends/depends' +description: >- + Analyses the comprehensive dependencies of code elements for Java, C/C++, + Ruby. diff --git a/data/tools/dephpend.yml b/data/tools/dephpend.yml new file mode 100644 index 0000000000..56de7dd136 --- /dev/null +++ b/data/tools/dephpend.yml @@ -0,0 +1,11 @@ +name: dephpend +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/mihaeu/dephpend' +homepage: 'https://github.com/mihaeu/dephpend' +description: Dependency analysis tool. diff --git a/data/tools/deprecation-detector.yml b/data/tools/deprecation-detector.yml new file mode 100644 index 0000000000..50f50e5967 --- /dev/null +++ b/data/tools/deprecation-detector.yml @@ -0,0 +1,11 @@ +name: deprecation-detector +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/sensiolabs-de/deprecation-detector' +homepage: 'https://github.com/sensiolabs-de/deprecation-detector' +description: Finds usages of deprecated (Symfony) code. diff --git a/data/tools/deptrac.yml b/data/tools/deptrac.yml new file mode 100644 index 0000000000..09cbc52b98 --- /dev/null +++ b/data/tools/deptrac.yml @@ -0,0 +1,11 @@ +name: deptrac +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/sensiolabs-de/deptrac' +homepage: 'https://github.com/sensiolabs-de/deptrac' +description: Enforce rules for dependencies between software layers. diff --git a/data/tools/derscanner.yml b/data/tools/derscanner.yml new file mode 100644 index 0000000000..9fd61fb051 --- /dev/null +++ b/data/tools/derscanner.yml @@ -0,0 +1,45 @@ +name: DerScanner +categories: + - linter +tags: + - abap + - apex + - asp + - c + - cpp + - cobol + - csharp + - dart + - delphi + - go + - groovy + - html + - java + - javascript + - kotlin + - mobile + - nodejs + - objectivec + - pascal + - perl + - php + - plsql + - python + - ruby + - rust + - scala + - security + - swift + - vbasic + - vbnet + - vbscript + - xml +license: proprietary +types: + - cli + - service +homepage: https://derscanner.com/ +description: >- + Multi-language Static Application Security Testing (SAST) platform that detects critical vulnerabilities, + including hardcoded secrets, weak cryptography, backdoors, SQL injections, insecure configurations, etc. +pricing: https://derscanner.com/pricing diff --git a/data/tools/designite.yml b/data/tools/designite.yml new file mode 100644 index 0000000000..9010660190 --- /dev/null +++ b/data/tools/designite.yml @@ -0,0 +1,13 @@ +name: Designite +categories: +- linter +tags: +- csharp +license: proprietary +types: +- cli +homepage: http://www.designite-tools.com +description: >- + Designite supports detection of various architecture, design, and implementation + smells, computation of various code quality metrics, and trend analysis. +pricing: http://www.designite-tools.com/buy diff --git a/data/tools/designitejava.yml b/data/tools/designitejava.yml new file mode 100644 index 0000000000..c9cd3ebca8 --- /dev/null +++ b/data/tools/designitejava.yml @@ -0,0 +1,13 @@ +name: DesigniteJava +categories: +- linter +tags: +- java +license: proprietary +types: +- cli +homepage: http://www.designite-tools.com/designitejava +description: >- + DesigniteJava supports detection of various architecture, design, and implementation + smells along with computation of various code quality metrics. +pricing: http://www.designite-tools.com/buy diff --git a/data/tools/designpatterndetector.yml b/data/tools/designpatterndetector.yml new file mode 100644 index 0000000000..17248caaa8 --- /dev/null +++ b/data/tools/designpatterndetector.yml @@ -0,0 +1,11 @@ +name: DesignPatternDetector +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/Halleck45/DesignPatternDetector' +homepage: 'https://github.com/Halleck45/DesignPatternDetector' +description: Detection of design patterns in PHP code. diff --git a/data/tools/detect-secrets.yml b/data/tools/detect-secrets.yml new file mode 100644 index 0000000000..1d409f107a --- /dev/null +++ b/data/tools/detect-secrets.yml @@ -0,0 +1,16 @@ +name: detect-secrets +categories: + - linter +tags: + - security +license: Apache-2.0 +types: + - cli +source: 'https://github.com/Yelp/detect-secrets' +homepage: 'https://github.com/Yelp/detect-secrets' +description: >- + An enterprise friendly way of detecting and preventing secrets in code. + + It does this by running periodic diff outputs against heuristically crafted regex statements, + to identify whether any new secret has been committed. This way, it avoids the overhead of digging + through all git history, as well as the need to scan the entire repository every time. diff --git a/data/tools/detekt.yml b/data/tools/detekt.yml new file mode 100644 index 0000000000..4ac4fa59bd --- /dev/null +++ b/data/tools/detekt.yml @@ -0,0 +1,11 @@ +name: detekt +categories: + - linter +tags: + - kotlin +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/detekt/detekt' +homepage: 'https://detekt.github.io/detekt' +description: Static code analysis for Kotlin code. diff --git a/data/tools/devskim.yml b/data/tools/devskim.yml new file mode 100644 index 0000000000..faeef7b924 --- /dev/null +++ b/data/tools/devskim.yml @@ -0,0 +1,22 @@ +name: DevSkim +categories: + - linter +tags: + - asp + - c + - cpp + - java + - php + - python + - ruby +license: MIT License +types: + - ide-plugin +source: 'https://github.com/microsoft/devskim' +homepage: 'https://github.com/microsoft/devskim' +resources: + - title: "ToorCon 19 — Pavel Bansky - Detecting security issues as fast as you making them" + url: https://www.youtube.com/watch?v=VK80nTLGUk4 +description: >- + Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text + - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others. diff --git a/data/tools/dialyxir.yml b/data/tools/dialyxir.yml new file mode 100644 index 0000000000..321bdad699 --- /dev/null +++ b/data/tools/dialyxir.yml @@ -0,0 +1,11 @@ +name: dialyxir +categories: + - linter +tags: + - elixir +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/jeremyjh/dialyxir' +homepage: 'https://github.com/jeremyjh/dialyxir' +description: 'Mix tasks to simplify use of Dialyzer in Elixir projects.' diff --git a/data/tools/dialyzer.yml b/data/tools/dialyzer.yml new file mode 100644 index 0000000000..a53ce2994f --- /dev/null +++ b/data/tools/dialyzer.yml @@ -0,0 +1,29 @@ +name: dialyzer +categories: + - linter +tags: + - erlang +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/erlang/otp/tree/master/lib/dialyzer' +homepage: 'https://www.erlang.org/doc/man/dialyzer.html' +description: >- + The DIALYZER, a DIscrepancy AnaLYZer for ERlang programs. + Dialyzer is a static analysis tool that identifies software discrepancies, + such as definite type errors, code that has become dead or unreachable + because of programming error, and unnecessary tests, + in single Erlang modules or entire (sets of) applications. + + Dialyzer starts its analysis from either debug-compiled BEAM bytecode + or from Erlang source code. The file and line number of a discrepancy + is reported along with an indication of what the discrepancy is about. + Dialyzer bases its analysis on the concept of success typings, + which allows for sound warnings (no false positives). +resources: + - title: "ElixirConf 2016 - Dialyzer: Optimistic Type Checking for Erlang and Elixir by Jason Voegele" + url: https://www.youtube.com/watch?v=JT0ECYZ9FaQ + - title: "Sean Cribbs - Chemanalysis: Dialyzing Elixir | Code BEAM SF 19" + url: https://www.youtube.com/watch?v=k4au7VioXNk + - title: "Stavros Aronis - What does Dialyzer think about me? | Code BEAM STO 19" + url: https://www.youtube.com/watch?v=Nxsw1jRE2A4&t=709s diff --git a/data/tools/diesel-guard.yml b/data/tools/diesel-guard.yml new file mode 100644 index 0000000000..8084bb15ca --- /dev/null +++ b/data/tools/diesel-guard.yml @@ -0,0 +1,14 @@ +name: diesel-guard +categories: + - linter +tags: + - sql + - rust +license: MIT License +types: + - cli +source: 'https://github.com/ayarotsky/diesel-guard' +homepage: 'https://github.com/ayarotsky/diesel-guard' +description: >- + Linter for dangerous Postgres migration patterns in Diesel and SQLx. + Prevents downtime caused by unsafe schema changes. diff --git a/data/tools/diffblue.yml b/data/tools/diffblue.yml new file mode 100644 index 0000000000..9467c65b66 --- /dev/null +++ b/data/tools/diffblue.yml @@ -0,0 +1,30 @@ +name: Diffblue +categories: + - linter +license: proprietary +tags: + - ci + - java +types: + - service +homepage: "https://www.diffblue.com/" +pricing: "https://www.diffblue.com/pricing/" +plans: + free: true +resources: + - title: "Diffblue Cover Overview" + url: https://www.youtube.com/watch?v=9vt1szlaAKw + - title: "Codecov Github Tutorial/Demo" + url: https://docs.codecov.com/docs/github-tutorial + - title: "Diffblue Cover in Eclipse" + url: https://www.youtube.com/watch?v=jiUgMs21NNE + - title: "Diffblue Cover on a Pull Request" + url: https://www.youtube.com/watch?v=dhN-mbgOSMo +description: >- + Diffblue is a software company that provides AI-powered code analysis and + testing solutions for software development teams. + + Its technology helps developers automate testing, find bugs, and reduce manual + labor in their software development processes. The company's main product, + Diffblue Cover, uses AI to generate and run unit tests for Java code, helping + to catch errors and improve code quality. diff --git a/data/tools/diffrs.yml b/data/tools/diffrs.yml new file mode 100644 index 0000000000..cbb0c1d566 --- /dev/null +++ b/data/tools/diffrs.yml @@ -0,0 +1,12 @@ +name: diff.rs +categories: + - linter +tags: + - rust +license: MIT +types: + - cli +source: "https://github.com/xfbs/diff.rs" +homepage: "https://diff.rs" +description: >- + Web application (WASM) to render a diff between Rust crate versions. diff --git a/data/tools/diktat.yml b/data/tools/diktat.yml new file mode 100644 index 0000000000..968b54e15c --- /dev/null +++ b/data/tools/diktat.yml @@ -0,0 +1,12 @@ +name: diktat +categories: + - linter + - formatter +tags: + - kotlin +license: MIT License +types: + - cli +source: 'https://github.com/saveourtool/diktat' +homepage: 'https://diktat.saveourtool.com' +description: Strict coding standard for Kotlin and a linter that detects and auto-fixes code smells. diff --git a/data/tools/dingo-hunter.yml b/data/tools/dingo-hunter.yml new file mode 100644 index 0000000000..78e22b388e --- /dev/null +++ b/data/tools/dingo-hunter.yml @@ -0,0 +1,11 @@ +name: dingo-hunter +categories: + - linter +tags: + - go +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/nickng/dingo-hunter' +homepage: 'https://github.com/nickng/dingo-hunter' +description: Static analyser for finding deadlocks in Go. diff --git a/data/tools/dlint.yml b/data/tools/dlint.yml new file mode 100644 index 0000000000..f8cb9761e1 --- /dev/null +++ b/data/tools/dlint.yml @@ -0,0 +1,11 @@ +name: Dlint +categories: + - linter +tags: + - python +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/dlint-py/dlint' +homepage: 'https://github.com/dlint-py/dlint' +description: A tool for ensuring Python code is secure. diff --git a/data/tools/docker-label-inspector.yml b/data/tools/docker-label-inspector.yml new file mode 100644 index 0000000000..4e23cde76f --- /dev/null +++ b/data/tools/docker-label-inspector.yml @@ -0,0 +1,11 @@ +name: Docker Label Inspector +categories: + - linter +tags: + - container +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/garethr/docker-label-inspector' +homepage: 'https://github.com/garethr/docker-label-inspector' +description: Lint and validate Dockerfile labels. diff --git a/data/tools/dockle.yml b/data/tools/dockle.yml new file mode 100644 index 0000000000..684b331b59 --- /dev/null +++ b/data/tools/dockle.yml @@ -0,0 +1,18 @@ +name: Dockle +categories: + - linter +tags: + - container + - security + - dockerfile +license: Apache License 2.0 +types: + - cli +source: "https://github.com/goodwithtech/dockle" +homepage: "https://github.com/goodwithtech/dockle" +description: >- + Container Image Linter for Security helping build the Best-Practice Docker + Image. Scans Docker images for security vulnerabilities and CIS Benchmark + compliance. Checks for secrets, credential exposure, and security best + practices. Provides multiple severity levels (FATAL, WARN, INFO) and + supports various output formats for CI/CD integration. \ No newline at end of file diff --git a/data/tools/dodgy.yml b/data/tools/dodgy.yml new file mode 100644 index 0000000000..a338f43c8a --- /dev/null +++ b/data/tools/dodgy.yml @@ -0,0 +1,11 @@ +name: Dodgy +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: "https://github.com/landscapeio/dodgy" +homepage: "https://github.com/landscapeio/dodgy" +description: Dodgy is a very basic tool to run against your codebase to search for "dodgy" looking values. It is a series of simple regular expressions designed to detect things such as accidental SCM diff checkins, or passwords or secret keys hard coded into files. diff --git a/data/tools/dogsled.yml b/data/tools/dogsled.yml new file mode 100644 index 0000000000..726b155565 --- /dev/null +++ b/data/tools/dogsled.yml @@ -0,0 +1,11 @@ +name: dogsled +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/alexkohler/dogsled' +homepage: 'https://github.com/alexkohler/dogsled' +description: Finds assignments/declarations with too many blank identifiers. diff --git a/data/tools/doop.yml b/data/tools/doop.yml new file mode 100644 index 0000000000..62780365ba --- /dev/null +++ b/data/tools/doop.yml @@ -0,0 +1,11 @@ +name: Doop +categories: + - linter +tags: + - java +license: UPL +types: + - cli +source: 'https://github.com/plast-lab/doop' +homepage: 'https://plast-lab.github.io/doop-pldi15-tutorial/' +description: Doop is a declarative framework for static analysis of Java/Android programs, centered on pointer analysis algorithms. Doop provides a large variety of analyses and also the surrounding scaffolding to run an analysis end-to-end (fact generation, processing, statistics, etc.). diff --git a/data/tools/dotenv-linter-rust.yml b/data/tools/dotenv-linter-rust.yml new file mode 100644 index 0000000000..9cdabe8d45 --- /dev/null +++ b/data/tools/dotenv-linter-rust.yml @@ -0,0 +1,11 @@ +name: dotenv-linter (Rust) +categories: + - linter +tags: + - configfile +license: MIT License +types: + - cli +source: 'https://github.com/dotenv-linter/dotenv-linter' +homepage: 'https://dotenv-linter.github.io/#/' +description: 'Lightning-fast linter for .env files. Written in Rust' diff --git a/data/tools/dotenv-linter.yml b/data/tools/dotenv-linter.yml new file mode 100644 index 0000000000..aeabca1399 --- /dev/null +++ b/data/tools/dotenv-linter.yml @@ -0,0 +1,11 @@ +name: dotenv-linter +categories: + - linter +tags: + - configfile +license: MIT License +types: + - cli +source: 'https://github.com/wemake-services/dotenv-linter' +homepage: 'https://dotenv-linter.readthedocs.io/en/latest' +description: Linting dotenv files like a charm. diff --git a/data/tools/dotnet-format.yml b/data/tools/dotnet-format.yml new file mode 100644 index 0000000000..763f786a01 --- /dev/null +++ b/data/tools/dotnet-format.yml @@ -0,0 +1,17 @@ +name: dotnet-format +categories: + - linter +tags: + - dotnet + - csharp + - vbasic +license: MIT +types: + - cli +source: "https://github.com/dotnet/format" +homepage: "https://github.com/dotnet/format" +description: >- + A code formatter for .NET. Preferences will be read from an `.editorconfig` + file, if present, otherwise a default set of preferences will be used. At this + time dotnet-format is able to format C# and Visual Basic projects with a + subset of supported `.editorconfig` options. diff --git a/data/tools/drnim.yml b/data/tools/drnim.yml new file mode 100644 index 0000000000..4e8e290c0e --- /dev/null +++ b/data/tools/drnim.yml @@ -0,0 +1,11 @@ +name: DrNim +categories: + - linter +tags: + - nim +license: MIT +types: + - cli +source: 'https://nim-lang.org/docs/drnim.html' +homepage: 'https://nim-lang.org/docs/drnim.html' +description: 'DrNim combines the Nim frontend with the Z3 proof engine in order to allow verify / validate software written in Nim.' diff --git a/data/tools/dupl.yml b/data/tools/dupl.yml new file mode 100644 index 0000000000..787392b4c0 --- /dev/null +++ b/data/tools/dupl.yml @@ -0,0 +1,11 @@ +name: dupl +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/mibk/dupl' +homepage: 'https://github.com/mibk/dupl' +description: Reports potentially duplicated code. diff --git a/data/tools/dylint.yml b/data/tools/dylint.yml new file mode 100644 index 0000000000..58300513c7 --- /dev/null +++ b/data/tools/dylint.yml @@ -0,0 +1,13 @@ +name: dylint +categories: + - linter +tags: + - rust +license: MIT License / Apache 2.0 license +types: + - cli +source: 'https://github.com/trailofbits/dylint' +homepage: 'https://www.trailofbits.com/post/write-rust-lints-without-forking-clippy' +description: >- + A tool for running Rust lints from dynamic libraries. + Dylint makes it easy for developers to maintain their own personal lint collections. diff --git a/data/tools/easycodingstandard.yml b/data/tools/easycodingstandard.yml new file mode 100644 index 0000000000..a2250e363e --- /dev/null +++ b/data/tools/easycodingstandard.yml @@ -0,0 +1,14 @@ +name: EasyCodingStandard +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/Symplify/EasyCodingStandard' +homepage: >- + https://www.tomasvotruba.com/blog/2017/05/03/combine-power-of-php-code-sniffer-and-php-cs-fixer-in-3-lines +description: >- + Combine [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) and + [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer). diff --git a/data/tools/effective_dart.yml b/data/tools/effective_dart.yml new file mode 100644 index 0000000000..58441302d8 --- /dev/null +++ b/data/tools/effective_dart.yml @@ -0,0 +1,11 @@ +name: effective_dart +categories: + - linter +tags: + - dart +license: MIT License +types: + - cli +source: 'https://github.com/tenhobi/effective_dart' +homepage: 'https://pub.dev/packages/effective_dart' +description: Linter rules corresponding to the guidelines in Effective Dart diff --git a/data/tools/electrolysis.yml b/data/tools/electrolysis.yml new file mode 100644 index 0000000000..309bd3e895 --- /dev/null +++ b/data/tools/electrolysis.yml @@ -0,0 +1,13 @@ +name: electrolysis +categories: + - linter +tags: + - rust +license: Other +types: + - cli +source: 'https://github.com/Kha/electrolysis' +homepage: 'https://kha.github.io/electrolysis' +description: >- + A tool for formally verifying Rust programs by transpiling them into + definitions in the Lean theorem prover. diff --git a/data/tools/elm-analyse.yml b/data/tools/elm-analyse.yml new file mode 100644 index 0000000000..1522334d90 --- /dev/null +++ b/data/tools/elm-analyse.yml @@ -0,0 +1,13 @@ +name: elm-analyse +categories: + - linter +tags: + - elm +license: MIT License +types: + - cli +source: 'https://github.com/stil4m/elm-analyse' +homepage: 'https://stil4m.github.io/elm-analyse' +description: >- + A tool that allows you to analyse your Elm code, identify deficiencies and + apply best practices. diff --git a/data/tools/elm-review.yml b/data/tools/elm-review.yml new file mode 100644 index 0000000000..a362c9677d --- /dev/null +++ b/data/tools/elm-review.yml @@ -0,0 +1,13 @@ +name: elm-review +categories: + - linter +tags: + - elm +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/jfmengels/elm-review' +homepage: 'https://package.elm-lang.org/packages/jfmengels/elm-review/latest' +description: >- + Analyzes whole Elm projects, with a focus on shareable and custom rules + written in Elm that add guarantees the Elm compiler doesn't give you. diff --git a/data/tools/elvis.yml b/data/tools/elvis.yml new file mode 100644 index 0000000000..0784fe5356 --- /dev/null +++ b/data/tools/elvis.yml @@ -0,0 +1,11 @@ +name: elvis +categories: + - linter +tags: + - erlang +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/inaka/elvis' +homepage: 'https://github.com/inaka/elvis' +description: Erlang Style Reviewer. diff --git a/data/tools/ember-template-lint.yml b/data/tools/ember-template-lint.yml new file mode 100644 index 0000000000..fa1e8970b4 --- /dev/null +++ b/data/tools/ember-template-lint.yml @@ -0,0 +1,11 @@ +name: ember-template-lint +categories: + - linter +tags: + - template +license: MIT License +types: + - cli +source: 'https://github.com/ember-template-lint/ember-template-lint' +homepage: 'https://github.com/ember-template-lint/ember-template-lint' +description: Linter for Ember or Handlebars templates. diff --git a/data/tools/embold.yml b/data/tools/embold.yml new file mode 100644 index 0000000000..e44af8e496 --- /dev/null +++ b/data/tools/embold.yml @@ -0,0 +1,25 @@ +name: Embold +categories: + - linter +tags: + - c + - cpp + - csharp + - go + - java + - javascript + - kotlin + - python + - typescript +license: proprietary +types: + - service +homepage: https://embold.io +description: >- + Intelligent software analytics platform that identifies design issues, code issues, + duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, + Go, Kotlin and more. +pricing: https://embold.io/pricing +plans: + free: true + oss: false diff --git a/data/tools/emerge.yml b/data/tools/emerge.yml new file mode 100644 index 0000000000..c54c8200ae --- /dev/null +++ b/data/tools/emerge.yml @@ -0,0 +1,23 @@ +name: emerge +categories: + - linter +tags: + - c + - cpp + - objectivec + - go + - javascript + - java + - kotlin + - php + - python + - ruby + - swift + - typescript +license: MIT +types: + - cli + - service +source: "https://github.com/glato/emerge" +homepage: "https://github.com/glato/emerge" +description: Emerge is a source code and dependency visualizer that can be used to gather insights about source code structure, metrics, dependencies and complexity of software projects. After scanning the source code of a project it provides you an interactive web interface to explore and analyze your project by using graph structures. diff --git a/data/tools/enforster.yml b/data/tools/enforster.yml new file mode 100644 index 0000000000..034906162c --- /dev/null +++ b/data/tools/enforster.yml @@ -0,0 +1,29 @@ +name: Enforster AI +categories: + - linter +tags: + - ci + - go + - java + - javascript + - php + - python + - security + - typescript + - csharp + - c + - cpp +license: proprietary +types: + - service +homepage: 'https://enforster.ai/' +description: >- + Enforster AI performs Contextual Code Security SAST, leveraging LLMs and artificial intelligence to reduce + and enrich the detection of Logic Flaws, Secrets, Data leaks, Supply chain and technical vulnerabilities. +resources: + - title: Product homepage + url: https://enforster.ai/ + - title: Docs + url: https://docs.enforster.ai/ + - title: Platform Access + url: https://app.enforster.ai/ diff --git a/data/tools/enlightn.yml b/data/tools/enlightn.yml new file mode 100644 index 0000000000..7210c31c70 --- /dev/null +++ b/data/tools/enlightn.yml @@ -0,0 +1,19 @@ +name: Enlightn +categories: + - linter +tags: + - php + - security + - laravel +license: LGPL-3.0 License +types: + - cli +source: 'https://github.com/enlightn/enlightn' +homepage: 'https://www.laravel-enlightn.com/' +resources: + - title: "Enlightn: Performance and Security Consultant" + url: https://www.youtube.com/watch?v=l6gY53fL1zI +description: >- + A static and dynamic analysis tool for Laravel applications that provides + recommendations to improve the performance, security and code reliability + of Laravel apps. Contains 120 automated checks. diff --git a/data/tools/enre-cpp.yml b/data/tools/enre-cpp.yml new file mode 100644 index 0000000000..2b5e61252f --- /dev/null +++ b/data/tools/enre-cpp.yml @@ -0,0 +1,15 @@ +name: ENRE-cpp +categories: + - linter +tags: + - c + - cpp +license: LGPL-2.1 license +types: + - cli +source: 'https://github.com/xjtu-enre/ENRE-cpp' +homepage: 'https://github.com/xjtu-enre/ENRE-cpp' +description: >- + ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. + ENRE-cpp is a ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development) + diff --git a/data/tools/enre-java.yml b/data/tools/enre-java.yml new file mode 100644 index 0000000000..466f1c58f0 --- /dev/null +++ b/data/tools/enre-java.yml @@ -0,0 +1,14 @@ +name: ENRE-java +categories: + - linter +tags: + - java +license: LGPL-2.1 license +types: + - cli +source: 'https://github.com/xjtu-enre/ENRE-java' +homepage: 'https://github.com/xjtu-enre/ENRE-java' +description: >- + ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. + ENRE-java is a ENtity Relationship Extractor for Java projects based on @Eclipse JDT/parser. + diff --git a/data/tools/enre-py.yml b/data/tools/enre-py.yml new file mode 100644 index 0000000000..09ac410578 --- /dev/null +++ b/data/tools/enre-py.yml @@ -0,0 +1,14 @@ +name: ENRE-py +categories: + - linter +tags: + - python +license: LGPL-2.1 license +types: + - cli +source: 'https://github.com/xjtu-enre/ENRE-py' +homepage: 'https://github.com/xjtu-enre/ENRE-py' +description: >- + ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. + ENRE-py is a ENtity Relationship Extractor for Python based on Python Language Services of The Standard Library. + diff --git a/data/tools/enre-ts.yml b/data/tools/enre-ts.yml new file mode 100644 index 0000000000..319b513ab5 --- /dev/null +++ b/data/tools/enre-ts.yml @@ -0,0 +1,14 @@ +name: ENRE-ts +categories: + - linter +tags: + - typescript +license: LGPL-2.1 license +types: + - cli +source: 'https://github.com/xjtu-enre/ENRE-ts' +homepage: 'https://github.com/xjtu-enre/ENRE-ts' +description: >- + ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. + ENRE-ts is a ENtity Relationship Extractor for ECMAScript and TypeScript based on @babel/parser. + diff --git a/data/tools/erb-formatter.yml b/data/tools/erb-formatter.yml new file mode 100644 index 0000000000..37ef5cb6d6 --- /dev/null +++ b/data/tools/erb-formatter.yml @@ -0,0 +1,15 @@ +name: ERB::Formatter +categories: + - formatter +tags: + - erb + - html + - ruby + - rails +license: MIT License +types: + - cli +source: "https://github.com/nebulab/erb-formatter" +homepage: "https://github.com/nebulab/erb-formatter" +description: >- + Format ERB files with speed and precision. diff --git a/data/tools/erb-lint.yml b/data/tools/erb-lint.yml new file mode 100644 index 0000000000..e2ef066a4c --- /dev/null +++ b/data/tools/erb-lint.yml @@ -0,0 +1,13 @@ +name: ERB Lint +categories: + - linter +tags: + - erb + - html + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/Shopify/erb-lint' +homepage: 'https://github.com/Shopify/erb-lint' +description: 'Lint your ERB or HTML files' diff --git a/data/tools/errcheck.yml b/data/tools/errcheck.yml new file mode 100644 index 0000000000..9ef345e351 --- /dev/null +++ b/data/tools/errcheck.yml @@ -0,0 +1,11 @@ +name: errcheck +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/kisielk/errcheck' +homepage: 'https://github.com/kisielk/errcheck' +description: Check that error return values are used. diff --git a/data/tools/error-prone.yml b/data/tools/error-prone.yml new file mode 100644 index 0000000000..363dded78b --- /dev/null +++ b/data/tools/error-prone.yml @@ -0,0 +1,11 @@ +name: Error Prone +categories: + - linter +tags: + - java +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/google/error-prone' +homepage: 'https://errorprone.info' +description: Catch common Java mistakes as compile-time errors. diff --git a/data/tools/errwrap.yml b/data/tools/errwrap.yml new file mode 100644 index 0000000000..6b271c71bc --- /dev/null +++ b/data/tools/errwrap.yml @@ -0,0 +1,15 @@ +name: errwrap +categories: + - linter +tags: + - go +license: BSD 3-Clause License +types: + - cli +source: 'https://github.com/fatih/errwrap' +homepage: 'https://github.com/fatih/errwrap' +description: >- + Wrap and fix Go errors with the new %w verb directive. + This tool analyzes fmt.Errorf() calls and reports calls that contain a verb directive that + is different than the new %w verb directive introduced in Go v1.13. + It's also capable of rewriting calls to use the new %w wrap verb directive. diff --git a/data/tools/es6-plato.yml b/data/tools/es6-plato.yml new file mode 100644 index 0000000000..2ae9a4711f --- /dev/null +++ b/data/tools/es6-plato.yml @@ -0,0 +1,11 @@ +name: es6-plato +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/the-simian/es6-plato' +homepage: 'https://github.com/the-simian/es6-plato' +description: Visualize JavaScript (ES6) source complexity. diff --git a/data/tools/esbmc.yml b/data/tools/esbmc.yml new file mode 100644 index 0000000000..edd289a1b1 --- /dev/null +++ b/data/tools/esbmc.yml @@ -0,0 +1,15 @@ +name: ESBMC +categories: + - linter +tags: + - c + - cpp +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/esbmc/esbmc' +homepage: 'http://esbmc.org' +description: >- + ESBMC is an open source, permissively licensed, context-bounded model checker + based on satisfiability modulo theories for the verification of single- and + multi-threaded C/C++ programs. diff --git a/data/tools/escomplex.yml b/data/tools/escomplex.yml new file mode 100644 index 0000000000..a11d27d890 --- /dev/null +++ b/data/tools/escomplex.yml @@ -0,0 +1,11 @@ +name: escomplex +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/jared-stilwell/escomplex' +homepage: 'https://github.com/jared-stilwell/escomplex' +description: Software complexity analysis of JavaScript-family abstract syntax trees. diff --git a/data/tools/eslint.yml b/data/tools/eslint.yml new file mode 100644 index 0000000000..7beadb09ee --- /dev/null +++ b/data/tools/eslint.yml @@ -0,0 +1,23 @@ +name: ESLint +categories: + - linter +tags: + - javascript + - typescript + - jsx +license: MIT License +types: + - cli +source: "https://github.com/eslint/eslint" +homepage: "https://github.com/eslint/eslint" +description: An extensible linter for JS, following the ECMAScript standard. +reviews: + - https://stackshare.io/eslint + - https://openbase.com/js/eslint/reviews +demos: + - https://eslint.org/play/ +resources: + - title: ESLint Tutorial with VSCode + url: https://www.youtube.com/watch?v=fslNny60HzI + - title: VSCode ESLint, Prettier & Airbnb Style Guide Setup + url: https://www.youtube.com/watch?v=SydnKbGc7W8 diff --git a/data/tools/esprima.yml b/data/tools/esprima.yml new file mode 100644 index 0000000000..517630df0b --- /dev/null +++ b/data/tools/esprima.yml @@ -0,0 +1,11 @@ +name: Esprima +categories: + - linter +tags: + - javascript +license: BSD 2-Clause "Simplified" License +types: + - cli +source: 'https://github.com/jquery/esprima' +homepage: 'https://esprima.org' +description: ECMAScript parsing infrastructure for multipurpose analysis. diff --git a/data/tools/exakat.yml b/data/tools/exakat.yml new file mode 100644 index 0000000000..89b9c79ee1 --- /dev/null +++ b/data/tools/exakat.yml @@ -0,0 +1,12 @@ +name: exakat +categories: + - linter +tags: + - ci + - php +license: Other +types: + - service +source: 'https://github.com/exakat/exakat' +homepage: 'https://www.exakat.io' +description: An automated code reviewing engine for PHP. diff --git a/data/tools/ezno.yml b/data/tools/ezno.yml new file mode 100644 index 0000000000..f1c93b97d2 --- /dev/null +++ b/data/tools/ezno.yml @@ -0,0 +1,17 @@ +name: ezno +categories: + - linter +tags: + - javascript + - typescript +license: MIT +types: + - cli +source: "https://github.com/kaleidawave/ezno" +homepage: "https://kaleidawave.github.io/posts/introducing-ezno/" +description: >- + A JavaScript compiler and TypeScript checker written in Rust with a focus on + static analysis and runtime performance. Ezno's type checker is built from + scratch. + The checker is fully compatible with TypeScript type annotations and can work + without any type annotations at all. diff --git a/data/tools/fantomas.yml b/data/tools/fantomas.yml new file mode 100644 index 0000000000..5b4f83acc0 --- /dev/null +++ b/data/tools/fantomas.yml @@ -0,0 +1,11 @@ +name: fantomas +categories: + - formatter +tags: + - fsharp +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/fsprojects/fantomas' +homepage: 'https://fsprojects.github.io/fantomas/' +description: F# source code formatter. diff --git a/data/tools/fasterer.yml b/data/tools/fasterer.yml new file mode 100644 index 0000000000..b51b6cb25d --- /dev/null +++ b/data/tools/fasterer.yml @@ -0,0 +1,11 @@ +name: Fasterer +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/DamirSvrtan/fasterer' +homepage: 'https://github.com/DamirSvrtan/fasterer' +description: 'Common Ruby idioms checker.' diff --git a/data/tools/fb-contrib.yml b/data/tools/fb-contrib.yml new file mode 100644 index 0000000000..7cf123fa72 --- /dev/null +++ b/data/tools/fb-contrib.yml @@ -0,0 +1,11 @@ +name: fb-contrib +categories: + - linter +tags: + - java +license: GNU Lesser General Public License v2.1 +types: + - cli +source: 'https://github.com/mebigfatguy/fb-contrib' +homepage: 'http://fb-contrib.sourceforge.net' +description: A plugin for FindBugs with additional bug detectors. diff --git a/data/tools/find-security-bugs.yml b/data/tools/find-security-bugs.yml new file mode 100644 index 0000000000..31df14a228 --- /dev/null +++ b/data/tools/find-security-bugs.yml @@ -0,0 +1,16 @@ +name: Find Security Bugs +categories: + - linter +tags: + - groovy + - java + - kotlin + - scala +license: LGPL-3.0-only +types: + - cli +source: 'https://github.com/find-sec-bugs/find-sec-bugs' +homepage: 'https://find-sec-bugs.github.io' +description: >- + The SpotBugs plugin for security audits of Java web applications and Android + applications. (Also work with Kotlin, Groovy and Scala projects) diff --git a/data/tools/fix-insight.yml b/data/tools/fix-insight.yml new file mode 100644 index 0000000000..f9bc1c8316 --- /dev/null +++ b/data/tools/fix-insight.yml @@ -0,0 +1,14 @@ +name: Fix Insight +categories: + - linter +tags: + - delphi +license: proprietary +types: + - cli +source: https://www.tmssoftware.com/site/fixinsight.asp +homepage: https://www.tmssoftware.com/site/fixinsight.asp +description: >- + A free IDE Plugin for static code analysis. A _Pro_ edition includes a command line + tool for automation purposes. +pricing: https://tmssoftware.com/site/tmsallaccess.asp#product-buy-online diff --git a/data/tools/fixinator.yml b/data/tools/fixinator.yml new file mode 100644 index 0000000000..8af269bc5c --- /dev/null +++ b/data/tools/fixinator.yml @@ -0,0 +1,14 @@ +name: Fixinator +categories: +- linter +tags: +- coldfusion +license: proprietary +types: +- cli +homepage: https://fixinator.app +description: Static security code analysis for ColdFusion or CFML code. Designed to work within a CI pipeline or from the developers terminal. +resources: +- title: Fixinator Getting Started Guide + url: https://github.com/foundeo/fixinator/wiki/Getting-Started +pricing: https://fixinator.app diff --git a/data/tools/fixit.yml b/data/tools/fixit.yml new file mode 100644 index 0000000000..d99d471536 --- /dev/null +++ b/data/tools/fixit.yml @@ -0,0 +1,14 @@ +name: fixit +categories: + - linter +tags: + - python +license: MIT +types: + - cli +source: 'https://github.com/Instagram/Fixit' +homepage: 'https://pypi.org/project/fixit' +description: A framework for creating lint rules and corresponding auto-fixes for source code. +resources: + - title: Enforcing coding conventions using libCST and Fixit + url: https://www.digitalernachschub.de/blog/enforcing-coding-conventions-using-libcst-and-fixit/ diff --git a/data/tools/flake8.yml b/data/tools/flake8.yml new file mode 100644 index 0000000000..f610937577 --- /dev/null +++ b/data/tools/flake8.yml @@ -0,0 +1,23 @@ +name: flake8 +categories: + - meta +tags: + - meta + - python +license: Other +types: + - cli +source: "https://github.com/PyCQA/flake8" +homepage: "https://github.com/PyCQA/flake8" +description: "A wrapper around `pyflakes`, `pycodestyle` and `mccabe`." +resources: + - title: My Python Code Looks Ugly and Confusing - Help! + url: https://www.youtube.com/watch?v=TDUf93vqq3g + - title: flake8 in Python | Linters | PEP8 Standards + url: https://www.youtube.com/watch?v=qUpfUenwUPA + - title: A flake8 plugin from scratch (intermediate) + url: https://www.youtube.com/watch?v=ot5Z4KQPBL8 +demo: + - https://aperezhortal.github.io/flake8-dashboard/example_dashboard/index.html +reviews: + - https://www.slant.co/options/12632/~flake8-review \ No newline at end of file diff --git a/data/tools/flakeheaven.yml b/data/tools/flakeheaven.yml new file mode 100644 index 0000000000..c008c549f2 --- /dev/null +++ b/data/tools/flakeheaven.yml @@ -0,0 +1,14 @@ +name: flakeheaven +categories: + - meta +tags: + - meta + - python +license: MIT License +types: + - cli +source: "https://github.com/flakeheaven/flakeheaven" +homepage: "https://pypi.org/project/flakeheaven/" +description: >- + flakeheaven is a python linter built around flake8 to enable + inheritable and complex toml configuration. diff --git a/data/tools/flawfinder.yml b/data/tools/flawfinder.yml new file mode 100644 index 0000000000..7d2996bbe2 --- /dev/null +++ b/data/tools/flawfinder.yml @@ -0,0 +1,12 @@ +name: flawfinder +categories: + - linter +tags: + - c + - cpp +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/david-a-wheeler/flawfinder' +homepage: 'http://dwheeler.com/flawfinder/' +description: Finds possible security weaknesses. diff --git a/data/tools/flay.yml b/data/tools/flay.yml new file mode 100644 index 0000000000..ce2c25aaf1 --- /dev/null +++ b/data/tools/flay.yml @@ -0,0 +1,11 @@ +name: flay +categories: + - linter +tags: + - ruby +license: MIT +types: + - cli +source: 'https://github.com/seattlerb/flay' +homepage: 'https://ruby.sadi.st/Flay.html' +description: Flay analyzes code for structural similarities. diff --git a/data/tools/flen.yml b/data/tools/flen.yml new file mode 100644 index 0000000000..518c00ca69 --- /dev/null +++ b/data/tools/flen.yml @@ -0,0 +1,11 @@ +name: flen +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/lafolle/flen' +homepage: 'https://github.com/lafolle/flen' +description: Get info on length of functions in a Go package. diff --git a/data/tools/flint.yml b/data/tools/flint.yml new file mode 100644 index 0000000000..f909b6945e --- /dev/null +++ b/data/tools/flint.yml @@ -0,0 +1,15 @@ +name: flint++ +categories: + - linter +tags: + - c + - cpp +deprecated: true +license: Boost Software License 1.0 +types: + - cli +source: 'https://github.com/JossWhittle/FlintPlusPlus' +homepage: 'https://github.com/JossWhittle/FlintPlusPlus' +description: >- + Cross-platform, zero-dependency port of flint, a lint program for C++ + developed and used at Facebook. diff --git a/data/tools/flog.yml b/data/tools/flog.yml new file mode 100644 index 0000000000..1ac084246d --- /dev/null +++ b/data/tools/flog.yml @@ -0,0 +1,13 @@ +name: flog +categories: + - linter +tags: + - ruby +license: MIT +types: + - cli +source: 'https://github.com/seattlerb/flog' +homepage: 'https://ruby.sadi.st/Flog.html' +description: >- + Flog reports the most tortured code in an easy to read pain report. The higher + the score, the more pain the code is in. diff --git a/data/tools/flow.yml b/data/tools/flow.yml new file mode 100644 index 0000000000..6166a0bf18 --- /dev/null +++ b/data/tools/flow.yml @@ -0,0 +1,11 @@ +name: flow +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/facebook/flow' +homepage: 'https://flow.org' +description: A static type checker for JavaScript. diff --git a/data/tools/flowdroid.yml b/data/tools/flowdroid.yml new file mode 100644 index 0000000000..2660cb4e34 --- /dev/null +++ b/data/tools/flowdroid.yml @@ -0,0 +1,11 @@ +name: FlowDroid +categories: + - linter +tags: + - mobile +license: GNU Lesser General Public License v2.1 +types: + - cli +source: 'https://github.com/secure-software-engineering/FlowDroid' +homepage: 'https://github.com/secure-software-engineering/FlowDroid' +description: Static taint analysis tool for Android applications. diff --git a/data/tools/flowr.yml b/data/tools/flowr.yml new file mode 100644 index 0000000000..230221ab84 --- /dev/null +++ b/data/tools/flowr.yml @@ -0,0 +1,21 @@ +name: flowR +categories: + - linter +tags: + - r +license: GPL-3 +types: + - cli + - ide-plugin +source: 'https://github.com/flowr-analysis/flowr' +homepage: 'https://github.com/flowr-analysis/flowr' +description: >- + A [program slicer](https://github.com/flowr-analysis/flowr/wiki/Terminology#program-slice) and [dataflow analyzer](https://en.wikipedia.org/wiki/Data-flow_analysis) for the [R](https://www.r-project.org/) programming language. + Its slicer allows you to reduce a complicated program just to the parts related for a specific task (e.g., the generation of a single or collection of plots, a significance test, ...). The dataflow analysis + provides you with a detailed view on the semantics of the R code which can greatly improve other analyses. + To use _flowR_, check out the [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr), the [RStudio Addin](https://github.com/flowr-analysis/rstudio-addin-flowr), the [Docker image](https://hub.docker.com/r/eagleoutice/flowr), or the [R package](https://github.com/flowr-analysis/flowr-r-adapter). +resources: +- title: Wiki Pages + url: https://github.com/flowr-analysis/flowr/wiki +- title: Overview of the VS Code extension + url: https://www.youtube.com/watch?v=Zgq6rnbvvhk diff --git a/data/tools/foodcritic.yml b/data/tools/foodcritic.yml new file mode 100644 index 0000000000..a0bd33b804 --- /dev/null +++ b/data/tools/foodcritic.yml @@ -0,0 +1,11 @@ +name: foodcritic +categories: + - linter +tags: + - configmanagement +license: MIT License +types: + - cli +source: 'https://github.com/foodcritic/foodcritic' +homepage: 'http://www.foodcritic.io' +description: A lint tool that checks Chef cookbooks for common problems. diff --git a/data/tools/forbidden-apis.yml b/data/tools/forbidden-apis.yml new file mode 100644 index 0000000000..e4181e497a --- /dev/null +++ b/data/tools/forbidden-apis.yml @@ -0,0 +1,13 @@ +name: forbidden-apis +categories: + - linter +tags: + - java +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/policeman-tools/forbidden-apis' +homepage: 'https://github.com/policeman-tools/forbidden-apis' +description: >- + Detects and forbids invocations of specific method/class/field (like reading + from a text stream without a charset). Maven/Gradle/Ant compatible. diff --git a/data/tools/fortify.yml b/data/tools/fortify.yml new file mode 100644 index 0000000000..2291527e5d --- /dev/null +++ b/data/tools/fortify.yml @@ -0,0 +1,46 @@ +name: Fortify +categories: + - linter +tags: + - abap + - actionscript + - apex + - aspnet + - c + - cobol + - coldfusion + - cpp + - csharp + - html + - java + - javascript + - jsp + - objectivec + - php + - plsql + - python + - ruby + - scala + - security + - swift + - tsql + - vbasic + - vbnet + - vbscript + - xml +license: proprietary +types: + - ide-plugin +homepage: https://www.microfocus.com/en-us/cyberres/application-security/static-code-analyzer +pricing: https://www.opentext.com/products/fortify-on-demand/trial +plans: + free: false + oss: false +description: >- + A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, + VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, + HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), + Ruby (1.9.3), Swift, Scala, VB, and XML. +resources: + - title: Visual Studio - real-time security with Fortify Security Assistant (2018) + url: https://www.youtube.com/watch?v=7CfeUXtDlwQ diff --git a/data/tools/fortitude.yml b/data/tools/fortitude.yml new file mode 100644 index 0000000000..cd10214355 --- /dev/null +++ b/data/tools/fortitude.yml @@ -0,0 +1,13 @@ +name: Fortitude +categories: + - linter +tags: + - fortran +license: MIT License +types: + - cli +homepage: "https://fortitude.readthedocs.io" +source: "https://github.com/PlasmaFAIR/fortitude" +description: >- + Fortran linter, inspired by (and built on) Ruff, and based on + community best practices. Supports latest Fortran (2023) standard. diff --git a/data/tools/fprettify.yml b/data/tools/fprettify.yml new file mode 100644 index 0000000000..54d9cae6c3 --- /dev/null +++ b/data/tools/fprettify.yml @@ -0,0 +1,17 @@ +name: fprettify +categories: + - linter +tags: + - fortran +license: NOASSERTION +types: + - cli +source: "https://github.com/pseewald/fprettify" +homepage: "https://pypi.python.org/pypi/fprettify" +description: >- + Auto-formatter for modern fortran source code, written in Python. + + Fprettify is a tool that provides consistent whitespace, indentation, and + delimiter alignment in code, including the ability to change letter case and + handle preprocessor directives, all while preserving revision history and + tested for editor integration. diff --git a/data/tools/frama-c.yml b/data/tools/frama-c.yml new file mode 100644 index 0000000000..146c5f08f5 --- /dev/null +++ b/data/tools/frama-c.yml @@ -0,0 +1,11 @@ +name: Frama-C +categories: + - linter +tags: + - c +license: GNU Lesser General Public License v2.1 +types: + - cli +source: 'https://www.frama-c.com/html/get-frama-c.html' +homepage: 'https://www.frama-c.com' +description: A sound and extensible static analyzer for C code. diff --git a/data/tools/freeplane-code-explorer.yml b/data/tools/freeplane-code-explorer.yml new file mode 100644 index 0000000000..82863d3500 --- /dev/null +++ b/data/tools/freeplane-code-explorer.yml @@ -0,0 +1,17 @@ +name: Freeplane Code Explorer +categories: + - meta +tags: + - java + - kotlin + - scala +license: GPL-2.0-or-later +types: + - gui +source: 'https://github.com/freeplane/freeplane' +homepage: 'https://docs.freeplane.org/user-documentation/Code_Explorer.html' +description: > + The Code Explorer mode in Freeplane is designed for analyzing the structure and dependencies + of code compiled to JVM class files. + It also allows displaying ArchUnit test results directly in Freeplane, + if Freeplane is running and ArchUnit detects rule violations during the tests. diff --git a/data/tools/frink.yml b/data/tools/frink.yml new file mode 100644 index 0000000000..5b78996a62 --- /dev/null +++ b/data/tools/frink.yml @@ -0,0 +1,13 @@ +name: Frink +categories: + - formatter +tags: + - tcl +license: unknown +types: + - cli +source: 'http://catless.ncl.ac.uk/Programs/Frink' +homepage: 'http://catless.ncl.ac.uk/Programs/Frink' +description: >- + A Tcl formatting and static check program (can prettify the program, minimise, + obfuscate or just sanity check it). diff --git a/data/tools/fsharplint.yml b/data/tools/fsharplint.yml new file mode 100644 index 0000000000..27eecf2c32 --- /dev/null +++ b/data/tools/fsharplint.yml @@ -0,0 +1,11 @@ +name: FSharpLint +categories: + - linter +tags: + - fsharp +license: MIT License +types: + - cli +source: "https://github.com/fsprojects/FSharpLint" +homepage: "https://github.com/fsprojects/FSharpLint" +description: Lint tool for F#. diff --git a/data/tools/fta.yml b/data/tools/fta.yml new file mode 100644 index 0000000000..5d047ff7e2 --- /dev/null +++ b/data/tools/fta.yml @@ -0,0 +1,14 @@ +name: fta +categories: + - linter +types: + - cli +tags: + - typescript +license: MIT +source: 'https://github.com/sgb-io/fta' +homepage: 'https://ftaproject.dev/' +description: >- + Rust-based static analysis for TypeScript projects +demos: + - https://ftaproject.dev/playground \ No newline at end of file diff --git a/data/tools/fukuzatsu.yml b/data/tools/fukuzatsu.yml new file mode 100644 index 0000000000..6a5f5947bf --- /dev/null +++ b/data/tools/fukuzatsu.yml @@ -0,0 +1,11 @@ +name: Fukuzatsu +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/CoralineAda/fukuzatsu' +homepage: 'https://github.com/CoralineAda/fukuzatsu' +description: 'A tool for measuring code complexity in Ruby class files. Its analysis generates scores based on cyclomatic complexity algorithms with no added "opinions".' diff --git a/data/tools/gawk-lint.yml b/data/tools/gawk-lint.yml new file mode 100644 index 0000000000..7d0c7d6fad --- /dev/null +++ b/data/tools/gawk-lint.yml @@ -0,0 +1,13 @@ +name: gawk --lint +categories: + - linter +tags: + - awk +license: GNU General Public License v3.0 +types: + - cli +source: 'https://www.gnu.org/software/gawk/manual/html_node/Options.html' +homepage: 'https://www.gnu.org/software/gawk/manual/html_node/Options.html' +description: >- + Warns about constructs that are dubious or nonportable to other awk + implementations. diff --git a/data/tools/gcc.yml b/data/tools/gcc.yml new file mode 100644 index 0000000000..0a2138d0ed --- /dev/null +++ b/data/tools/gcc.yml @@ -0,0 +1,15 @@ +name: GCC +categories: + - linter +tags: + - c + - cpp +license: GPL +types: + - cli +source: "https://github.com/gcc-mirror/gcc" +homepage: "https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html" +description: >- + The GCC compiler has static analysis capabilities since version 10. + This option is only available if GCC was configured with analyzer support enabled. + It can also output its diagnostics to a JSON file in the SARIF format (from v13). diff --git a/data/tools/gendarme.yml b/data/tools/gendarme.yml new file mode 100644 index 0000000000..f0bfdeb595 --- /dev/null +++ b/data/tools/gendarme.yml @@ -0,0 +1,13 @@ +name: Gendarme +categories: + - formatter +tags: + - csharp +license: MIT +types: + - cli +source: 'https://github.com/mono/mono-tools' +homepage: 'https://www.mono-project.com/docs/tools+libraries/tools/gendarme' +description: >- + Gendarme inspects programs and libraries that contain code in ECMA CIL format + (Mono and .NET). diff --git a/data/tools/gherkin-lint.yml b/data/tools/gherkin-lint.yml new file mode 100644 index 0000000000..97f8c94d5d --- /dev/null +++ b/data/tools/gherkin-lint.yml @@ -0,0 +1,11 @@ +name: gherkin-lint +categories: + - linter +tags: + - gherkin +license: ISC License +types: + - cli +source: 'https://github.com/vsiakka/gherkin-lint' +homepage: 'https://github.com/vsiakka/gherkin-lint' +description: A linter for the Gherkin-Syntax written in Javascript. diff --git a/data/tools/ghidra.yml b/data/tools/ghidra.yml new file mode 100644 index 0000000000..0986dd4e5c --- /dev/null +++ b/data/tools/ghidra.yml @@ -0,0 +1,16 @@ +name: Ghidra +categories: + - linter +tags: + - binary +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/NationalSecurityAgency/ghidra' +homepage: 'https://ghidra-sre.org' +description: >- + A software reverse engineering (SRE) suite of tools developed by NSA's + Research Directorate in support of the Cybersecurity mission +resources: + - title: Ghidra Installation Guide + url: https://ghidra-sre.org/InstallationGuide.html diff --git a/data/tools/gitguardian-internel-monitoring.yml b/data/tools/gitguardian-internel-monitoring.yml new file mode 100644 index 0000000000..7c68901b3d --- /dev/null +++ b/data/tools/gitguardian-internel-monitoring.yml @@ -0,0 +1,27 @@ +name: GitGuardian ggshield +categories: + - linter +tags: + - security + - ci + - dotenv + - terraform + - container + - git +license: MIT +types: + - cli + - service +source: 'https://github.com/gitguardian/ggshield' +homepage: 'https://www.gitguardian.com/ggshield' +resources: + - title: Getting started with ggshield + url: https://docs.gitguardian.com/ggshield-docs/getting-started + - title: A Developer's View of GitGuardian ggshield Throughout The Software Development Lifecycle + url: https://www.youtube.com/watch?v=diuBTBjx7Qc +description: >- + ggshield is a CLI application that runs in your local environment + or in a CI environment to help you detect more than 350+ types of secrets, + as well as other potential security vulnerabilities or policy breaks affecting your codebase. +free forever for individual developers: + - https://dashboard.gitguardian.com/auth/signup diff --git a/data/tools/gitleaks.yml b/data/tools/gitleaks.yml new file mode 100644 index 0000000000..3c8fa68735 --- /dev/null +++ b/data/tools/gitleaks.yml @@ -0,0 +1,13 @@ +name: Gitleaks +categories: + - linter +tags: + - security +license: MIT License +types: + - cli +source: 'https://github.com/zricethezav/gitleaks' +homepage: 'https://github.com/zricethezav/gitleaks' +description: >- + A SAST tool for detecting hardcoded secrets like passwords, api keys, and + tokens in git repos. diff --git a/data/tools/gixy.yml b/data/tools/gixy.yml new file mode 100644 index 0000000000..6e63f1b404 --- /dev/null +++ b/data/tools/gixy.yml @@ -0,0 +1,13 @@ +name: gixy +categories: + - linter +tags: + - configfile +license: Other +types: + - cli +source: 'https://github.com/yandex/gixy' +homepage: 'https://github.com/yandex/gixy' +description: >- + A tool to analyze Nginx configuration. The main goal is to prevent + misconfiguration and automate flaw detection. diff --git a/data/tools/go-consistent.yml b/data/tools/go-consistent.yml new file mode 100644 index 0000000000..f99a48eaba --- /dev/null +++ b/data/tools/go-consistent.yml @@ -0,0 +1,11 @@ +name: go-consistent +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/Quasilyte/go-consistent' +homepage: 'https://github.com/Quasilyte/go-consistent' +description: Analyzer that helps you to make your Go programs more consistent. diff --git a/data/tools/go-critic.yml b/data/tools/go-critic.yml new file mode 100644 index 0000000000..5ba00f349d --- /dev/null +++ b/data/tools/go-critic.yml @@ -0,0 +1,13 @@ +name: go-critic +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/go-critic/go-critic' +homepage: 'https://github.com/go-critic/go-critic' +description: >- + Go source code linter that maintains checks which are currently not + implemented in other linters. diff --git a/data/tools/go-meta-linter.yml b/data/tools/go-meta-linter.yml new file mode 100644 index 0000000000..c4088e0ed5 --- /dev/null +++ b/data/tools/go-meta-linter.yml @@ -0,0 +1,15 @@ +name: Go Meta Linter +categories: + - meta +tags: + - go + - meta +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/alecthomas/gometalinter' +homepage: 'https://github.com/alecthomas/gometalinter' +description: >- + Concurrently run Go lint tools and normalise their output. Use `golangci-lint` + for new projects. diff --git a/data/tools/go-tool-vet-shadow.yml b/data/tools/go-tool-vet-shadow.yml new file mode 100644 index 0000000000..307cfe9179 --- /dev/null +++ b/data/tools/go-tool-vet-shadow.yml @@ -0,0 +1,11 @@ +name: go tool vet --shadow +categories: + - linter +tags: + - go +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/golang/go/tree/master/src/cmd/vet' +homepage: 'https://golang.org/cmd/vet#hdr-Shadowed_variables' +description: Reports variables that may have been unintentionally shadowed. diff --git a/data/tools/go-vet.yml b/data/tools/go-vet.yml new file mode 100644 index 0000000000..ca2e009807 --- /dev/null +++ b/data/tools/go-vet.yml @@ -0,0 +1,11 @@ +name: go vet +categories: + - linter +tags: + - go +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/golang/go/tree/master/src/cmd/vet' +homepage: 'https://golang.org/cmd/vet' +description: Examines Go source code and reports suspicious. diff --git a/data/tools/goast-rego.yml b/data/tools/goast-rego.yml new file mode 100644 index 0000000000..474f09cd67 --- /dev/null +++ b/data/tools/goast-rego.yml @@ -0,0 +1,11 @@ +name: goast +categories: + - linter +tags: + - go +license: Apache License 2.0 +types: + - cli +source: "https://github.com/m-mizutani/goast" +homepage: "https://github.com/m-mizutani/goast" +description: Go AST (Abstract Syntax Tree) based static analysis tool with Rego. diff --git a/data/tools/goast.yml b/data/tools/goast.yml new file mode 100644 index 0000000000..50facbb5c0 --- /dev/null +++ b/data/tools/goast.yml @@ -0,0 +1,11 @@ +name: go/ast +categories: + - linter +tags: + - go +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/golang/go/tree/master/src/go/ast' +homepage: 'https://golang.org/pkg/go/ast' +description: Package ast declares the types used to represent syntax trees for Go packages. diff --git a/data/tools/goblint.yml b/data/tools/goblint.yml new file mode 100644 index 0000000000..d2cd1f0715 --- /dev/null +++ b/data/tools/goblint.yml @@ -0,0 +1,16 @@ +name: Goblint +categories: + - linter +tags: + - c + - ci +license: MIT License +types: + - cli + - ide-plugin +homepage: "https://goblint.in.tum.de" +source: "https://github.com/goblint/analyzer" +description: >- + A static analyzer for the analysis of multi-threaded C programs. Its primary focus is the + detection of data races, but it also reports other runtime errors, such as buffer overflows and + null-pointer dereferences. diff --git a/data/tools/gochecknoglobals.yml b/data/tools/gochecknoglobals.yml new file mode 100644 index 0000000000..ca0cec0cab --- /dev/null +++ b/data/tools/gochecknoglobals.yml @@ -0,0 +1,11 @@ +name: gochecknoglobals +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/leighmcculloch/gochecknoglobals' +homepage: 'https://github.com/leighmcculloch/gochecknoglobals' +description: Checks that no globals are present. diff --git a/data/tools/goconst.yml b/data/tools/goconst.yml new file mode 100644 index 0000000000..8148ca28ad --- /dev/null +++ b/data/tools/goconst.yml @@ -0,0 +1,11 @@ +name: goconst +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/jgautheron/goconst' +homepage: 'https://github.com/jgautheron/goconst' +description: Finds repeated strings that could be replaced by a constant. diff --git a/data/tools/gocyclo.yml b/data/tools/gocyclo.yml new file mode 100644 index 0000000000..f95607095f --- /dev/null +++ b/data/tools/gocyclo.yml @@ -0,0 +1,11 @@ +name: gocyclo +categories: + - linter +tags: + - go +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/fzipp/gocyclo' +homepage: 'https://github.com/fzipp/gocyclo' +description: Calculate cyclomatic complexities of functions in Go source code. diff --git a/data/tools/gofmt-s.yml b/data/tools/gofmt-s.yml new file mode 100644 index 0000000000..3a8c26676d --- /dev/null +++ b/data/tools/gofmt-s.yml @@ -0,0 +1,12 @@ +name: gofmt -s +categories: + - formatter + - linter +tags: + - go +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/golang/go/tree/master/src/cmd/gofmt' +homepage: 'https://golang.org/cmd/gofmt' +description: Checks if the code is properly formatted and could not be further simplified. diff --git a/data/tools/gofumpt.yml b/data/tools/gofumpt.yml new file mode 100644 index 0000000000..2798e82754 --- /dev/null +++ b/data/tools/gofumpt.yml @@ -0,0 +1,20 @@ +name: gofumpt +categories: + - formatter +tags: + - go +license: BSD-3 +types: + - cli + - ide-plugin +source: 'https://github.com/mvdan/gofumpt' +homepage: 'https://github.com/mvdan/gofumpt' +description: >- + Enforce a stricter format than `gofmt`, while being backwards-compatible. + That is, `gofumpt` is happy with a subset of the formats that `gofmt` is happy with. + + The tool is a fork of `gofmt` as of Go 1.19, and requires Go 1.18 or later. + It can be used as a drop-in replacement to format your Go code, and running gofmt + after gofumpt should produce no changes. + + `gofumpt` will never add rules which disagree with `gofmt` formatting. So we extend `gofmt` rather than compete with it. diff --git a/data/tools/goimports.yml b/data/tools/goimports.yml new file mode 100644 index 0000000000..e8665a5f40 --- /dev/null +++ b/data/tools/goimports.yml @@ -0,0 +1,11 @@ +name: goimports +categories: + - linter +tags: + - go +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/golang/tools/tree/master/cmd/goimports' +homepage: 'https://pkg.go.dev/golang.org/x/tools/cmd/goimports' +description: Checks missing or unreferenced package imports. diff --git a/data/tools/gokart.yml b/data/tools/gokart.yml new file mode 100644 index 0000000000..0c8e55dcec --- /dev/null +++ b/data/tools/gokart.yml @@ -0,0 +1,15 @@ +name: gokart +categories: + - linter +tags: + - go + - security +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/praetorian-inc/gokart' +homepage: 'https://github.com/praetorian-inc/gokart' +description: >- + Golang security analysis with a focus on minimizing false positives. + It is capable of tracing the source of variables and function arguments + to determine whether input sources are safe. diff --git a/data/tools/golangci-lint.yml b/data/tools/golangci-lint.yml new file mode 100644 index 0000000000..c38e2c5260 --- /dev/null +++ b/data/tools/golangci-lint.yml @@ -0,0 +1,16 @@ +name: GolangCI-Lint +categories: + - linter +tags: + - go +license: GNU General Public License v3.0 +types: + - cli +source: "https://github.com/golangci/golangci-lint" +homepage: "https://golangci-lint.run" +description: "Fast linters runner for Go. It aggregates multiple Go linters and provides a unified configuration, caching, and output format. Alternative to `Go Meta Linter`." +reviews: + - https://stackshare.io/golangci-lint +resources: + - title: "GopherCon 2019: Denis Isaev (author of golangci-lint) - Go Linters: Myths and Best Practices" + url: https://www.youtube.com/watch?v=1U-Gzz4TYP0 diff --git a/data/tools/golint.yml b/data/tools/golint.yml new file mode 100644 index 0000000000..188e4ad6af --- /dev/null +++ b/data/tools/golint.yml @@ -0,0 +1,11 @@ +name: golint +categories: + - linter +tags: + - go +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/golang/lint' +homepage: 'https://github.com/golang/lint' +description: Prints out coding style mistakes in Go source code. diff --git a/data/tools/goodcheck.yml b/data/tools/goodcheck.yml new file mode 100644 index 0000000000..66105231b8 --- /dev/null +++ b/data/tools/goodcheck.yml @@ -0,0 +1,13 @@ +name: Goodcheck +categories: + - linter +tags: + - c + - cpp + - java + - php +license: MIT License +types: + - cli +homepage: 'https://sider.github.io/goodcheck' +description: Regexp based customizable linter. diff --git a/data/tools/goodpractice.yml b/data/tools/goodpractice.yml new file mode 100644 index 0000000000..f622f2b273 --- /dev/null +++ b/data/tools/goodpractice.yml @@ -0,0 +1,13 @@ +name: goodpractice +categories: + - linter +tags: + - r +license: Other +types: + - cli +source: "https://github.com/mangothecat/goodpractice" +homepage: "https://docs.ropensci.org/goodpractice/" +description: >- + Analyses the source code for R packages and provides best-practice + recommendations. diff --git a/data/tools/google-java-format.yml b/data/tools/google-java-format.yml new file mode 100644 index 0000000000..d4cdcca516 --- /dev/null +++ b/data/tools/google-java-format.yml @@ -0,0 +1,13 @@ +name: google-java-format +categories: + - formatter +tags: + - java +license: Apache License 2.0 +types: + - cli + - ide-plugin +source: "https://github.com/google/google-java-format" +homepage: "https://github.com/google/google-java-format" +description: >- + Reformats Java source code to comply with Google Java Style diff --git a/data/tools/goone.yml b/data/tools/goone.yml new file mode 100644 index 0000000000..2c52461305 --- /dev/null +++ b/data/tools/goone.yml @@ -0,0 +1,12 @@ +name: goone +categories: + - linter +tags: + - go + - sql +license: MIT License +types: + - cli +source: 'https://github.com/masibw/goone' +homepage: 'https://github.com/masibw/goone' +description: 'Finds N+1 queries (SQL calls in a for loop) in go code' diff --git a/data/tools/goreporter.yml b/data/tools/goreporter.yml new file mode 100644 index 0000000000..2533ec680f --- /dev/null +++ b/data/tools/goreporter.yml @@ -0,0 +1,12 @@ +name: goreporter +categories: + - meta +tags: + - go + - meta +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/360EntSecGroup-Skylar/goreporter' +homepage: 'https://github.com/360EntSecGroup-Skylar/goreporter' +description: Concurrently runs many linters and normalises their output to a report. diff --git a/data/tools/goroutine-inspect.yml b/data/tools/goroutine-inspect.yml new file mode 100644 index 0000000000..5d65dee21d --- /dev/null +++ b/data/tools/goroutine-inspect.yml @@ -0,0 +1,11 @@ +name: goroutine-inspect +categories: + - linter +tags: + - go +license: BSD 2-Clause "Simplified" License +types: + - cli +source: 'https://github.com/linuxerwang/goroutine-inspect' +homepage: 'https://github.com/linuxerwang/goroutine-inspect' +description: An interactive tool to analyze Golang goroutine dump. diff --git a/data/tools/gosec-gas.yml b/data/tools/gosec-gas.yml new file mode 100644 index 0000000000..2b9310a221 --- /dev/null +++ b/data/tools/gosec-gas.yml @@ -0,0 +1,11 @@ +name: gosec (gas) +categories: + - linter +tags: + - go +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/securego/gosec' +homepage: 'https://securego.io' +description: Inspects source code for security problems by scanning the Go AST. diff --git a/data/tools/gotype.yml b/data/tools/gotype.yml new file mode 100644 index 0000000000..c44c03cb43 --- /dev/null +++ b/data/tools/gotype.yml @@ -0,0 +1,11 @@ +name: gotype +categories: + - linter +tags: + - go +license: 3-Clause BSD License + Patent Grant +types: + - cli +source: 'https://golang.org/x/tools/cmd/gotype' +homepage: 'https://pkg.go.dev/golang.org/x/tools/cmd/gotype' +description: Syntactic and semantic analysis similar to the Go compiler. diff --git a/data/tools/govulncheck.yml b/data/tools/govulncheck.yml new file mode 100644 index 0000000000..5f2375e6b4 --- /dev/null +++ b/data/tools/govulncheck.yml @@ -0,0 +1,17 @@ +name: govulncheck +categories: + - linter +tags: + - go +license: BSD-3-Clause +types: + - cli + - service +source: 'https://pkg.go.dev/golang.org/x/vuln/vulncheck' +homepage: 'https://go.dev/blog/vuln' +description: >- + Govulncheck reports known vulnerabilities that affect Go code. + It uses static analysis of source code or a binary's symbol table to narrow down reports to only those that could affect the application. + + By default, govulncheck makes requests to the Go vulnerability database at https://vuln.go.dev. + Requests to the vulnerability database contain only module paths, not code or other properties of your program. diff --git a/data/tools/graphmycsscom.yml b/data/tools/graphmycsscom.yml new file mode 100644 index 0000000000..a3d0d86227 --- /dev/null +++ b/data/tools/graphmycsscom.yml @@ -0,0 +1,11 @@ +name: GraphMyCSS.com +categories: + - linter +tags: + - css +license: MIT License +types: + - cli +source: 'https://github.com/TheJaredWilcurt/itcss-specificity-graph' +homepage: 'https://graphmycss.com' +description: CSS Specificity Graph Generator. diff --git a/data/tools/graudit.yml b/data/tools/graudit.yml new file mode 100644 index 0000000000..3dbaa31596 --- /dev/null +++ b/data/tools/graudit.yml @@ -0,0 +1,19 @@ +name: graudit +categories: + - linter +tags: + - asp + - c + - cpp + - csharp + - java + - perl + - php + - python + - ruby +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/wireghoul/graudit' +homepage: 'http://www.justanotherhacker.com' +description: Grep rough audit - source code auditing tool. diff --git a/data/tools/griffe.yml b/data/tools/griffe.yml new file mode 100644 index 0000000000..bd6dc5be8c --- /dev/null +++ b/data/tools/griffe.yml @@ -0,0 +1,14 @@ +name: Griffe +categories: + - linter +tags: + - python +license: ISC License +types: + - cli +source: 'https://github.com/mkdocstrings/griffe' +homepage: 'https://mkdocstrings.github.io/griffe/' +description: >- + Signatures for entire Python programs. + Extract the structure, the frame, the skeleton of your project, + to generate API documentation or find breaking changes in your API. diff --git a/data/tools/grumphp.yml b/data/tools/grumphp.yml new file mode 100644 index 0000000000..26011727ac --- /dev/null +++ b/data/tools/grumphp.yml @@ -0,0 +1,11 @@ +name: GrumPHP +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/phpro/grumphp' +homepage: 'https://github.com/phpro/grumphp' +description: Checks code on every commit. diff --git a/data/tools/grunt-bootlint.yml b/data/tools/grunt-bootlint.yml new file mode 100644 index 0000000000..c027014ce3 --- /dev/null +++ b/data/tools/grunt-bootlint.yml @@ -0,0 +1,13 @@ +name: grunt-bootlint +categories: + - linter +tags: + - html +license: MIT License +types: + - cli +source: 'https://github.com/twbs/grunt-bootlint' +homepage: 'https://github.com/twbs/grunt-bootlint' +description: >- + A Grunt wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML + linter for Bootstrap projects. diff --git a/data/tools/grype.yml b/data/tools/grype.yml new file mode 100644 index 0000000000..5db1ba357f --- /dev/null +++ b/data/tools/grype.yml @@ -0,0 +1,18 @@ +name: Grype +categories: + - linter +tags: + - security + - container +license: Apache License 2.0 +types: + - cli +source: "https://github.com/anchore/grype" +homepage: "https://github.com/anchore/grype" +description: >- + Vulnerability scanner for container images and filesystems. Developed by + Anchore, it scans container images, directories, and archives for known + vulnerabilities. Supports multiple image formats, SBOM integration, and + VEX (Vulnerability Exploitability eXchange) for accurate vulnerability + assessment. Works with various vulnerability databases and provides + detailed reporting. \ No newline at end of file diff --git a/data/tools/gulp-bootlint.yml b/data/tools/gulp-bootlint.yml new file mode 100644 index 0000000000..779da6b49b --- /dev/null +++ b/data/tools/gulp-bootlint.yml @@ -0,0 +1,13 @@ +name: gulp-bootlint +categories: + - linter +tags: + - html +license: MIT License +types: + - cli +source: 'https://github.com/tschortsch/gulp-bootlint' +homepage: 'https://github.com/tschortsch/gulp-bootlint' +description: >- + A gulp wrapper for [Bootlint](https://github.com/twbs/bootlint), the HTML + linter for Bootstrap projects. diff --git a/data/tools/haml-lint.yml b/data/tools/haml-lint.yml new file mode 100644 index 0000000000..daba3b800d --- /dev/null +++ b/data/tools/haml-lint.yml @@ -0,0 +1,11 @@ +name: haml-lint +categories: + - linter +tags: + - template +license: MIT License +types: + - cli +source: 'https://github.com/sds/haml-lint' +homepage: 'https://github.com/sds/haml-lint' +description: Tool for writing clean and consistent HAML. diff --git a/data/tools/haskell-dockerfile-linter.yml b/data/tools/haskell-dockerfile-linter.yml new file mode 100644 index 0000000000..5a86b05923 --- /dev/null +++ b/data/tools/haskell-dockerfile-linter.yml @@ -0,0 +1,11 @@ +name: Haskell Dockerfile Linter +categories: + - linter +tags: + - container +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/lukasmartinelli/hadolint' +homepage: 'https://github.com/lukasmartinelli/hadolint' +description: A smarter Dockerfile linter that helps you build best practice Docker images. diff --git a/data/tools/hasmysecretleaked.yml b/data/tools/hasmysecretleaked.yml new file mode 100644 index 0000000000..65ce239652 --- /dev/null +++ b/data/tools/hasmysecretleaked.yml @@ -0,0 +1,17 @@ +name: HasMySecretLeaked +categories: + - linter +tags: + - git + - security +license: proprietary +types: + - cli + - service +deprecated: true +homepage: "https://gitguardian.com/hasmysecretleaked" +source: "https://github.com/GitGuardian/ggshield" +description: >- + HasMySecretLeaked is a project from GitGuardian that aims to help individual users + and organizations search across 20 million exposed secrets to verify if their + developer secrets have leaked on public repositories, gists, and issues on GitHub projects. diff --git a/data/tools/haxe-checkstyle.yml b/data/tools/haxe-checkstyle.yml new file mode 100644 index 0000000000..b96c0526eb --- /dev/null +++ b/data/tools/haxe-checkstyle.yml @@ -0,0 +1,13 @@ +name: Haxe Checkstyle +categories: + - linter +tags: + - haxe +license: MIT License +types: + - cli +source: 'https://github.com/HaxeCheckstyle/haxe-checkstyle' +homepage: 'https://haxecheckstyle.github.io/docs/haxe-checkstyle/home.html' +description: >- + A static analysis tool to help developers write Haxe code that adheres to a + coding standard. diff --git a/data/tools/hegel.yml b/data/tools/hegel.yml new file mode 100644 index 0000000000..08d1b1db5c --- /dev/null +++ b/data/tools/hegel.yml @@ -0,0 +1,13 @@ +name: hegel +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/JSMonk/hegel' +homepage: 'https://hegel.js.org' +description: >- + A static type checker for JavaScript with a bias on type inference and strong + type systems. diff --git a/data/tools/helix-qac.yml b/data/tools/helix-qac.yml new file mode 100644 index 0000000000..4a9070b128 --- /dev/null +++ b/data/tools/helix-qac.yml @@ -0,0 +1,19 @@ +name: Helix QAC +categories: +- linter +tags: +- c +- cpp +license: proprietary +types: +- cli +homepage: https://www.perforce.com/products/helix-qac +description: >- + Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and + AUTOSAR coding standards. +resources: +- title: Code with Confidence - Helix QAC + url: https://www.youtube.com/watch?v=HHaBnZx2fGY +- title: How to Apply AUTOSAR Guidelines With Helix QAC + url: https://www.youtube.com/watch?v=XFvZ_hh6LCo +pricing: https://www.perforce.com/purchase diff --git a/data/tools/herbie.yml b/data/tools/herbie.yml new file mode 100644 index 0000000000..af28cd86d1 --- /dev/null +++ b/data/tools/herbie.yml @@ -0,0 +1,13 @@ +name: herbie +categories: + - linter +tags: + - rust +license: Mozilla Public License 2.0 +types: + - cli +source: 'https://github.com/mcarton/rust-herbie-lint' +homepage: 'https://github.com/mcarton/rust-herbie-lint' +description: >- + Adds warnings or errors to your crate when using a numerically unstable + floating point expression. diff --git a/data/tools/hlint.yml b/data/tools/hlint.yml new file mode 100644 index 0000000000..60b703e74e --- /dev/null +++ b/data/tools/hlint.yml @@ -0,0 +1,11 @@ +name: HLint +categories: + - linter +tags: + - haskell +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/ndmitchell/hlint' +homepage: 'https://github.com/ndmitchell/hlint' +description: HLint is a tool for suggesting possible improvements to Haskell code. diff --git a/data/tools/holistic.yml b/data/tools/holistic.yml new file mode 100644 index 0000000000..8386f47744 --- /dev/null +++ b/data/tools/holistic.yml @@ -0,0 +1,13 @@ +name: holistic +categories: + - linter +tags: + - sql +license: MIT License +types: + - service +homepage: 'https://holistic.dev/' +description: >- + More than 1,300 rules to analyze SQL queries. + Takes an SQL schema definition and the query source code to generate improvement recommendations. + Detects code smells, unused indexes, unused tables, views, materialized views, and more. diff --git a/data/tools/hopper-gui.yml b/data/tools/hopper-gui.yml new file mode 100644 index 0000000000..e3c7b7c9d7 --- /dev/null +++ b/data/tools/hopper-gui.yml @@ -0,0 +1,14 @@ +name: Hopper +categories: + - linter +tags: + - binary +license: proprietary +types: + - gui +homepage: "https://www.hopperapp.com/" +description: >- + macOS and Linux reverse engineering tool that lets you disassemble, decompile + and debug applications. Hopper displays the code using different + representations, e.g. the Control Flow Graph, and the pseudo-code of a + procedure. Supports Apple Silicon. diff --git a/data/tools/hopper.yml b/data/tools/hopper.yml new file mode 100644 index 0000000000..4fa6090a58 --- /dev/null +++ b/data/tools/hopper.yml @@ -0,0 +1,15 @@ +name: Hopper +categories: + - linter +tags: + - groovy + - java + - kotlin + - scala +deprecated: true +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/cuplv/hopper' +homepage: 'https://github.com/cuplv/hopper' +description: A static analysis tool written in scala for languages that run on JVM. diff --git a/data/tools/hound-ci.yml b/data/tools/hound-ci.yml new file mode 100644 index 0000000000..efbf1beab6 --- /dev/null +++ b/data/tools/hound-ci.yml @@ -0,0 +1,18 @@ +name: Hound CI +categories: + - linter +tags: + - coffeescript + - css + - go + - javascript + - ruby + - swift +license: MIT License +types: + - cli +source: 'https://github.com/houndci/hound' +homepage: 'https://houndci.com' +description: >- + Comments on style violations in GitHub pull requests. Supports Coffeescript, + Go, HAML, JavaScript, Ruby, SCSS and Swift. diff --git a/data/tools/html-inspector.yml b/data/tools/html-inspector.yml new file mode 100644 index 0000000000..29abaa4cc2 --- /dev/null +++ b/data/tools/html-inspector.yml @@ -0,0 +1,14 @@ +name: HTML Inspector +categories: + - linter +tags: + - html +deprecated: true +license: MIT +types: + - cli +source: 'https://github.com/philipwalton/html-inspector' +homepage: 'https://github.com/philipwalton/html-inspector' +description: >- + HTML Inspector is a code quality tool to help you and your team write better + markup. diff --git a/data/tools/html-tidy.yml b/data/tools/html-tidy.yml new file mode 100644 index 0000000000..8f17075ec6 --- /dev/null +++ b/data/tools/html-tidy.yml @@ -0,0 +1,13 @@ +name: HTML Tidy +categories: + - linter +tags: + - html +license: Custom +types: + - cli +source: 'https://github.com/htacg/tidy-html5' +homepage: 'http://www.html-tidy.org' +description: >- + Corrects and cleans up HTML and XML documents by fixing markup errors and + upgrading legacy code to modern standards. diff --git a/data/tools/html-validate.yml b/data/tools/html-validate.yml new file mode 100644 index 0000000000..d7a51dc1bc --- /dev/null +++ b/data/tools/html-validate.yml @@ -0,0 +1,13 @@ +name: HTML-Validate +categories: + - linter +tags: + - html + - vue +license: MIT License +types: + - cli + - ide-plugin +source: 'https://gitlab.com/html-validate/html-validate' +homepage: 'https://html-validate.org/' +description: Offline HTML5 validator. diff --git a/data/tools/htmlbeautifier.yml b/data/tools/htmlbeautifier.yml new file mode 100644 index 0000000000..b25591374f --- /dev/null +++ b/data/tools/htmlbeautifier.yml @@ -0,0 +1,15 @@ +name: htmlbeautifier +categories: + - formatter +tags: + - erb + - html + - ruby +license: MIT License +types: + - cli +source: "https://github.com/threedaymonk/htmlbeautifier" +homepage: "https://github.com/threedaymonk/htmlbeautifier" +description: >- + A normaliser/beautifier for HTML that also understands embedded Ruby. + Ideal for tidying up Rails templates. diff --git a/data/tools/htmlhint.yml b/data/tools/htmlhint.yml new file mode 100644 index 0000000000..ccff9a3e05 --- /dev/null +++ b/data/tools/htmlhint.yml @@ -0,0 +1,11 @@ +name: HTMLHint +categories: + - linter +tags: + - html +license: MIT License +types: + - cli +source: 'https://github.com/yaniswang/HTMLHint' +homepage: 'https://htmlhint.com' +description: A Static Code Analysis Tool for HTML. diff --git a/data/tools/huntbugs.yml b/data/tools/huntbugs.yml new file mode 100644 index 0000000000..9d0e7c7548 --- /dev/null +++ b/data/tools/huntbugs.yml @@ -0,0 +1,14 @@ +name: HuntBugs +categories: + - linter +tags: + - java +deprecated: true +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/amaembo/huntbugs' +homepage: 'https://github.com/amaembo/huntbugs' +description: >- + Bytecode static analyzer tool based on Procyon Compiler Tools aimed to + supersede FindBugs. diff --git a/data/tools/i-code-cnes-for-fortran.yml b/data/tools/i-code-cnes-for-fortran.yml new file mode 100644 index 0000000000..93b093be3e --- /dev/null +++ b/data/tools/i-code-cnes-for-fortran.yml @@ -0,0 +1,11 @@ +name: i-Code CNES for Fortran +categories: + - linter +tags: + - fortran +license: Eclipse Public License 1.0 +types: + - cli +source: 'https://github.com/lequal/i-CodeCNES' +homepage: 'https://github.com/lequal/i-CodeCNES' +description: 'An open source static code analysis tool for Fortran 77, Fortran 90 and Shell.' diff --git a/data/tools/i-code-cnes-for-shell.yml b/data/tools/i-code-cnes-for-shell.yml new file mode 100644 index 0000000000..d070c4c46f --- /dev/null +++ b/data/tools/i-code-cnes-for-shell.yml @@ -0,0 +1,11 @@ +name: i-Code CNES for Shell +categories: + - linter +tags: + - shell +license: Eclipse Public License 1.0 +types: + - cli +source: 'https://github.com/lequal/i-CodeCNES' +homepage: 'https://github.com/lequal/i-CodeCNES' +description: An open source static code analysis tool for Shell and Fortran (77 and 90). diff --git a/data/tools/iblessing.yml b/data/tools/iblessing.yml new file mode 100644 index 0000000000..b140bcb413 --- /dev/null +++ b/data/tools/iblessing.yml @@ -0,0 +1,14 @@ +name: iblessing +categories: + - linter +tags: + - mobile + - security +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/Soulghost/iblessing' +homepage: 'https://www.kitploit.com/2020/08/iblessing-ios-security-exploiting.html' +description: >- + iblessing is an iOS security exploiting toolkit. It can be used for reverse + engineering, binary analysis and vulnerability mining. diff --git a/data/tools/ida-free.yml b/data/tools/ida-free.yml new file mode 100644 index 0000000000..e3b052fa72 --- /dev/null +++ b/data/tools/ida-free.yml @@ -0,0 +1,10 @@ +name: IDA Free +categories: + - linter +tags: + - binary +license: proprietary +types: + - cli +homepage: 'https://www.hex-rays.com/products/ida/support/download_freeware' +description: Binary code analysis tool. diff --git a/data/tools/ikos.yml b/data/tools/ikos.yml new file mode 100644 index 0000000000..8b966f0859 --- /dev/null +++ b/data/tools/ikos.yml @@ -0,0 +1,12 @@ +name: IKOS +categories: + - linter +tags: + - c + - cpp +license: Other +types: + - cli +source: 'https://github.com/nasa-sw-vnv/ikos' +homepage: 'https://github.com/nasa-sw-vnv/ikos' +description: A sound static analyzer for C/C++ code based on LLVM. diff --git a/data/tools/imhotep.yml b/data/tools/imhotep.yml new file mode 100644 index 0000000000..102d04080c --- /dev/null +++ b/data/tools/imhotep.yml @@ -0,0 +1,17 @@ +name: imhotep +categories: + - meta +tags: + - buildtool + - javascript + - meta + - python + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/justinabrahms/imhotep' +homepage: 'https://github.com/justinabrahms/imhotep' +description: >- + Comment on commits coming into your repository and check for syntactic errors + and general lint warnings. diff --git a/data/tools/include-gardener.yml b/data/tools/include-gardener.yml new file mode 100644 index 0000000000..563d95dca9 --- /dev/null +++ b/data/tools/include-gardener.yml @@ -0,0 +1,17 @@ +name: include-gardener +categories: + - formatter +tags: + - c + - cpp + - python + - ruby +license: GNU Public License version 2 or greater +types: + - cli +source: 'https://github.com/feddischson/include_gardener' +homepage: 'https://github.com/feddischson/include_gardener' +description: >- + A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph + (in dot or graphml format) which shows all `#include` relations of a given set + of files. diff --git a/data/tools/ineffassign.yml b/data/tools/ineffassign.yml new file mode 100644 index 0000000000..c611ca60df --- /dev/null +++ b/data/tools/ineffassign.yml @@ -0,0 +1,11 @@ +name: ineffassign +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/gordonklaus/ineffassign' +homepage: 'https://github.com/gordonklaus/ineffassign' +description: Detect ineffectual assignments in Go code. diff --git a/data/tools/infer.yml b/data/tools/infer.yml new file mode 100644 index 0000000000..ae6c1f709e --- /dev/null +++ b/data/tools/infer.yml @@ -0,0 +1,14 @@ +name: Infer +categories: + - linter +tags: + - c + - cpp + - java + - objectivec +license: MIT License +types: + - cli +source: 'https://github.com/facebook/infer' +homepage: 'https://fbinfer.com' +description: 'A static analyzer for Java, C and Objective-C' diff --git a/data/tools/infersharp.yml b/data/tools/infersharp.yml new file mode 100644 index 0000000000..9c4d134d13 --- /dev/null +++ b/data/tools/infersharp.yml @@ -0,0 +1,14 @@ +name: Infer# +categories: + - linter +tags: + - csharp +license: MIT License +types: + - cli +source: 'https://github.com/microsoft/infersharp' +homepage: 'https://github.com/microsoft/infersharp' +description: >- + InferSharp (also referred to as Infer#) is an interprocedural and + scalable static code analyzer for C#. Via the capabilities of Facebook's Infer, + this tool detects null pointer dereferences and resource leaks. diff --git a/data/tools/inspectortiger.yml b/data/tools/inspectortiger.yml new file mode 100644 index 0000000000..561f5ab464 --- /dev/null +++ b/data/tools/inspectortiger.yml @@ -0,0 +1,14 @@ +name: InspectorTiger +categories: + - linter +tags: + - python +license: MIT +types: + - cli +source: 'https://github.com/thg-consulting/it' +homepage: 'https://github.com/thg-consulting/it' +description: >- + IT, Inspector Tiger, is a modern python code review tool / framework. + It comes with bunch of pre-defined handlers which warns you about improvements and possible bugs. + Beside these handlers, you can write your own or use community ones. diff --git a/data/tools/intellij-idea.yml b/data/tools/intellij-idea.yml new file mode 100644 index 0000000000..ff4c3d85cf --- /dev/null +++ b/data/tools/intellij-idea.yml @@ -0,0 +1,16 @@ +name: IntelliJ IDEA +categories: + - formatter +tags: + - java +license: proprietary +types: + - ide-plugin +homepage: https://www.jetbrains.com/idea +description: >- + Comes bundled with a lot of inspections for Java and Kotlin and includes tools for + refactoring, formatting and more. +pricing: https://www.jetbrains.com/buy +plans: + free: false + oss: true diff --git a/data/tools/interfacer.yml b/data/tools/interfacer.yml new file mode 100644 index 0000000000..fa86b64450 --- /dev/null +++ b/data/tools/interfacer.yml @@ -0,0 +1,12 @@ +name: interfacer +categories: + - linter +tags: + - go +deprecated: true +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/mvdan/interfacer' +homepage: 'https://github.com/mvdan/interfacer' +description: Suggest narrower interfaces that can be used. diff --git a/data/tools/ionide-analyzers.yml b/data/tools/ionide-analyzers.yml new file mode 100644 index 0000000000..4a289d658a --- /dev/null +++ b/data/tools/ionide-analyzers.yml @@ -0,0 +1,11 @@ +name: ionide-analyzers +categories: + - linter +tags: + - fsharp +license: "MIT License" +types: + - cli +source: 'https://github.com/ionide/ionide-analyzers' +homepage: 'https://ionide.io/ionide-analyzers/' +description: A collection of F# analyzers, built with the FSharp.Analyzers.SDK. diff --git a/data/tools/iverilog.yml b/data/tools/iverilog.yml new file mode 100644 index 0000000000..c788ac1bb7 --- /dev/null +++ b/data/tools/iverilog.yml @@ -0,0 +1,14 @@ +name: Icarus Verilog +categories: + - linter +tags: + - verilog +license: GNU General Public License v2.0 +types: + - cli +deprecated: true +source: 'http://iverilog.icarus.com/' +homepage: 'https://github.com/steveicarus/iverilog' +description: >- + A Verilog simulation and synthesis tool that operates by compiling + source code written in IEEE-1364 Verilog into some target format diff --git a/data/tools/jakstab.yml b/data/tools/jakstab.yml new file mode 100644 index 0000000000..9e37377be4 --- /dev/null +++ b/data/tools/jakstab.yml @@ -0,0 +1,14 @@ +name: Jakstab +categories: + - linter +tags: + - binary +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/jkinder/jakstab' +homepage: 'https://github.com/jkinder/jakstab' +description: >- + Jakstab is an Abstract Interpretation-based, integrated disassembly and static + analysis framework for designing analyses on executables and recovering + reliable control flow graphs. diff --git a/data/tools/jarchitect.yml b/data/tools/jarchitect.yml new file mode 100644 index 0000000000..d4387eea14 --- /dev/null +++ b/data/tools/jarchitect.yml @@ -0,0 +1,13 @@ +name: JArchitect +categories: + - linter +tags: + - java +license: proprietary +types: + - cli +homepage: https://www.jarchitect.com +description: >- + Measure, query and visualize your code and avoid unexpected issues, technical debt + and complexity. +pricing: https://www.jarchitect.com/purchase diff --git a/data/tools/jbmc.yml b/data/tools/jbmc.yml new file mode 100644 index 0000000000..4e2e0ef33d --- /dev/null +++ b/data/tools/jbmc.yml @@ -0,0 +1,13 @@ +name: JBMC +categories: + - linter +tags: + - java +license: BSD-4-Clause-UC (original text) +types: + - cli +source: 'https://github.com/peterschrammel/cbmc/releases/tag/jbmc-5.8-cav18' +homepage: 'https://www.cprover.org/jbmc' +description: >- + Bounded model-checker for Java (bytecode), verifies user-defined assertions, + standard assertions, several coverage metric analyses. diff --git a/data/tools/jeb-decomplier.yml b/data/tools/jeb-decomplier.yml new file mode 100644 index 0000000000..b03cba3577 --- /dev/null +++ b/data/tools/jeb-decomplier.yml @@ -0,0 +1,12 @@ +name: JEB Decompiler +categories: + - linter +tags: + - binary +license: proprietary +types: + - cli +homepage: 'https://www.pnfsoftware.com/' +description: >- + Decompile and debug binary code. Break down and analyze document files. + Android Dalvik, MIPS, ARM, Intel x86, Java, WebAssembly & Ethereum Decompilers. diff --git a/data/tools/jedi.yml b/data/tools/jedi.yml new file mode 100644 index 0000000000..6ecd202919 --- /dev/null +++ b/data/tools/jedi.yml @@ -0,0 +1,14 @@ +name: jedi +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/davidhalter/jedi' +homepage: 'https://jedi.readthedocs.io/en/latest' +description: Autocompletion/static analysis library for Python. +resources: + - title: Choosing an Autocomplete for Python + url: https://www.youtube.com/watch?v=Qa-5mYCqPto \ No newline at end of file diff --git a/data/tools/jet.yml b/data/tools/jet.yml new file mode 100644 index 0000000000..2e81b4c678 --- /dev/null +++ b/data/tools/jet.yml @@ -0,0 +1,11 @@ +name: JET +categories: + - linter +tags: + - julia +license: MIT +types: + - cli +source: 'https://github.com/aviatesk/JET.jl' +homepage: 'https://github.com/aviatesk/JET.jl' +description: Static type inference system to detect bugs and type instabilities. diff --git a/data/tools/jlisa.yml b/data/tools/jlisa.yml new file mode 100644 index 0000000000..c5bf839f63 --- /dev/null +++ b/data/tools/jlisa.yml @@ -0,0 +1,11 @@ +name: JLiSA +categories: + - linter +tags: + - java +license: MIT license +types: + - cli +source: 'https://github.com/lisa-analyzer/jlisa' +homepage: 'https://github.com/lisa-analyzer/jlisa' +description: An abstract interpretation-based static analyzer for Java build upon the [LiSA](https://github.com/lisa-analyzer/lisa) framekwork. \ No newline at end of file diff --git a/data/tools/joern.yml b/data/tools/joern.yml new file mode 100644 index 0000000000..b5b52a1aec --- /dev/null +++ b/data/tools/joern.yml @@ -0,0 +1,35 @@ +name: Joern +categories: + - linter +tags: + - security + - java + - javascript + - typescript + - csharp + - c + - cpp + - ghidra + - go + - jimple + - kotlin + - php + - python + - ruby + - swift +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/joernio/joern' +homepage: 'https://joern.io' +description: >- + Joern is a platform for analyzing source code, bytecode, and binary executables. + It generates code property graphs (CPGs), a graph representation of code for cross-language code analysis. + Code property graphs are stored in a custom graph database. + This allows code to be mined using search queries formulated in a Scala-based domain-specific query language. + Joern is developed with the goal of providing a useful tool for vulnerability discovery and research in static program analysis. +resources: + - title: Documentation + url: https://docs.joern.io + - title: CPG Specification + url: https://cpg.joern.io diff --git a/data/tools/jqassistant.yml b/data/tools/jqassistant.yml new file mode 100644 index 0000000000..614756553d --- /dev/null +++ b/data/tools/jqassistant.yml @@ -0,0 +1,24 @@ +name: jQAssistant +categories: + - linter +tags: + - java + - kotlin + - typescript + - xml + - json + - yaml + - git + - spring + - nodejs +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/jqassistant/jqassistant' +homepage: 'https://jqassistant.org/' +description: >- + jQAssistant is a plugin based software analytics platform which allows scanning code structures and metadata from repositories into a Neo4j graph database. + The gathered data can be used for ad-hoc exploration using queries, visualization or defining rules for continuous architecture validation. +resources: + - title: Plugins + url: https://github.com/jqassistant-plugin \ No newline at end of file diff --git a/data/tools/jshint.yml b/data/tools/jshint.yml new file mode 100644 index 0000000000..1100d4c35a --- /dev/null +++ b/data/tools/jshint.yml @@ -0,0 +1,14 @@ +name: jshint +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/jshint/jshint' +homepage: 'https://jshint.com/about' +discussion: 'https://github.com/analysis-tools-dev/static-analysis/issues/223' +description: >- + Detect errors and potential problems in JavaScript code and enforce your + team's coding conventions. diff --git a/data/tools/jslint.yml b/data/tools/jslint.yml new file mode 100644 index 0000000000..b8d4e36cb4 --- /dev/null +++ b/data/tools/jslint.yml @@ -0,0 +1,12 @@ +name: JSLint +categories: + - linter +tags: + - javascript +license: Llvm release license +types: + - cli +source: 'https://github.com/douglascrockford/JSLint' +homepage: 'https://github.com/douglascrockford/JSLint' +discussion: 'https://github.com/analysis-tools-dev/static-analysis/issues/223' +description: The JavaScript Code Quality Tool. diff --git a/data/tools/jsonlint.yml b/data/tools/jsonlint.yml new file mode 100644 index 0000000000..c34da27d31 --- /dev/null +++ b/data/tools/jsonlint.yml @@ -0,0 +1,13 @@ +name: jsonlint +categories: + - linter +tags: + - json +license: MIT License +types: + - cli + - service +source: 'https://github.com/zaach/jsonlint' +homepage: 'https://jsonlint.com/' +description: >- + A JSON parser and validator with a CLI. Standalone version of jsonlint.com diff --git a/data/tools/jsprime.yml b/data/tools/jsprime.yml new file mode 100644 index 0000000000..12bdd9a9e8 --- /dev/null +++ b/data/tools/jsprime.yml @@ -0,0 +1,12 @@ +name: JSPrime +categories: + - linter +tags: + - javascript +deprecated: true +license: Other +types: + - cli +source: 'https://github.com/dpnishant/jsprime' +homepage: 'https://dpnishant.github.io/jsprime' +description: Static security analysis tool. diff --git a/data/tools/kani.yml b/data/tools/kani.yml new file mode 100644 index 0000000000..1eee45a33d --- /dev/null +++ b/data/tools/kani.yml @@ -0,0 +1,21 @@ +name: kani +categories: + - linter +types: + - cli +tags: + - rust + - security +license: "MIT & Apache 2.0" +source: "https://github.com/model-checking/kani" +homepage: "https://github.com/model-checking/kani" +description: | + The Kani Rust Verifier is a bit-precise model checker for Rust. + Kani is particularly useful for verifying unsafe code blocks in Rust, + where the "unsafe superpowers" are unchecked by the compiler. + Kani verifies: + + * Memory safety (e.g., null pointer dereferences) + * User-specified assertions (i.e., assert!(...)) + * The absence of panics (e.g., unwrap() on None values) + * The absence of some types of unexpected behavior (e.g., arithmetic overflows) diff --git a/data/tools/keploy.yml b/data/tools/keploy.yml new file mode 100644 index 0000000000..bcbbc01f17 --- /dev/null +++ b/data/tools/keploy.yml @@ -0,0 +1,26 @@ +name: keploy +categories: + - linter +tags: + - go + - csharp + - javascript + - java + - python + - rust + +license: Apache-2.0 License +types: + - cli +homepage: "https://keploy.io/" +source: "https://github.com/keploy/" +resources: + - title: "Keploy PR Agent" + url: https://github.com/apps/keploy + - title: "Keploy Agent VSCode Extension" + url: https://marketplace.visualstudio.com/items?itemName=Keploy.keployio + - title: "Keploy Low code Integration Testing" + url: "https://github.com/keploy/keploy" +description: >- + Keploy is an open-source testing platform that helps developers automate and streamline their testing process. It provides API, and integration testing agents, generating tests, mocks/stubs for APIs that actually work. Additionally, Keploy offers an AI-powered Unit Testing Agent that generates stable, useful unit tests directly in your GitHub PRs and in VSCode, helping catch errors and improve code quality. + diff --git a/data/tools/kics.yml b/data/tools/kics.yml new file mode 100644 index 0000000000..3433290994 --- /dev/null +++ b/data/tools/kics.yml @@ -0,0 +1,16 @@ +name: kics +categories: + - linter +tags: + - ansible + - configmanagement + - container + - kubernetes + - security + - terraform +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/Checkmarx/kics' +homepage: 'https://kics.io/' +description: 'Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible' diff --git a/data/tools/kiuwan.yml b/data/tools/kiuwan.yml new file mode 100644 index 0000000000..f650cc79d3 --- /dev/null +++ b/data/tools/kiuwan.yml @@ -0,0 +1,25 @@ +name: Kiuwan +categories: +- linter +tags: +- c +- cpp +- go +- java +- javascript +- kotlin +- php +- python +- scala +- swift +license: proprietary +types: +- service +homepage: https://www.kiuwan.com/code-security-sast +description: >- + Identify and remediate cyber threats in a blazingly fast, collaborative environment, + with seamless integration in your SDLC. Python, C\C++, Java, C#, PHP and more. +pricing: https://www.kiuwan.com/pricing +plans: + free: false + oss: false diff --git a/data/tools/klee.yml b/data/tools/klee.yml new file mode 100644 index 0000000000..d2cec943df --- /dev/null +++ b/data/tools/klee.yml @@ -0,0 +1,24 @@ +name: KLEE +categories: + - linter +tags: + - c + - cpp +license: UIUC open source license +types: + - cli +source: "https://github.com/klee/klee" +homepage: "http://klee.github.io/" +resources: + - title: "Introduction to symbolic execution with KLEE" + url: "https://www.youtube.com/watch?v=z6bsk-lsk1Q" + - title: "KLEE: Unassisted and Automatic Generation of High-Coverage +Tests for Complex Systems Programs [Original Paper]" + url: "https://www.usenix.org/legacy/event/osdi08/tech/full_papers/cadar/cadar.pdf" +description: >- + A dynamic symbolic execution engine built on top of the LLVM compiler + infrastructure. + It can auto-generate test cases for programs such that + the test cases exercise as much of the program as possible. + + diff --git a/data/tools/klint.yml b/data/tools/klint.yml new file mode 100644 index 0000000000..f0a4fc9a00 --- /dev/null +++ b/data/tools/klint.yml @@ -0,0 +1,15 @@ +name: klint +categories: + - linter +tags: + - kubernetes +license: Apache-2.0 +types: + - cli +source: 'https://github.com/uswitch/klint' +homepage: 'https://github.com/uswitch/klint' +description: >- + A tool that listens to changes in Kubernetes resources and runs linting rules against them. + Identify and debug erroneous objects and nudge objects in line with the policies + as both change over time. + Klint helps us encode checks and proactively alert teams when they need to take action. diff --git a/data/tools/klocwork.yml b/data/tools/klocwork.yml new file mode 100644 index 0000000000..c4d31e973c --- /dev/null +++ b/data/tools/klocwork.yml @@ -0,0 +1,17 @@ +name: Klocwork +categories: +- linter +tags: +- c +- cpp +- csharp +- java +license: proprietary +types: +- service +homepage: https://www.perforce.com/products/klocwork +description: Quality and Security Static analysis for C/C++, Java and C#. +pricing: https://www.perforce.com/purchase +plans: + free: false + oss: false diff --git a/data/tools/kmdr.yml b/data/tools/kmdr.yml new file mode 100644 index 0000000000..f050b94eaf --- /dev/null +++ b/data/tools/kmdr.yml @@ -0,0 +1,13 @@ +name: kmdr +categories: + - linter +tags: + - shell +license: MIT License +types: + - cli +source: 'https://github.com/ediardo/kmdr-cli' +homepage: 'https://github.com/ediardo/kmdr-cli' +description: >- + CLI tool for learning commands from your terminal. kmdr delivers a break down + of commands with every attribute explained. diff --git a/data/tools/krane.yml b/data/tools/krane.yml new file mode 100644 index 0000000000..acd49ff808 --- /dev/null +++ b/data/tools/krane.yml @@ -0,0 +1,17 @@ +name: krane +categories: + - linter +tags: + - kubernetes + - container +license: Apache-2.0 +types: + - cli +source: "https://github.com/appvia/krane" +homepage: "https://github.com/appvia/krane" +description: >- + Krane is a simple Kubernetes RBAC static analysis tool. + + It identifies potential security risks in K8s RBAC design and makes + suggestions on how to mitigate them. Krane dashboard presents current RBAC + security posture and lets you navigate through its definition. diff --git a/data/tools/ktfmt.yml b/data/tools/ktfmt.yml new file mode 100644 index 0000000000..67e9b1ee07 --- /dev/null +++ b/data/tools/ktfmt.yml @@ -0,0 +1,18 @@ +name: ktfmt +categories: + - formatter +tags: + - kotlin +license: Apache-2.0 +types: + - cli + - ide-plugin +source: "https://github.com/facebook/ktfmt" +homepage: "https://facebook.github.io/ktfmt/" +description: >- + A program that reformats Kotlin source code to comply with the common + community standard for Kotlin code conventions. + + A ktfmt IntelliJ plugin is available from the plugin repository. To install + it, go to your IDE's settings and select the Plugins category. Click the + Marketplace tab, search for the ktfmt plugin, and click the Install button. diff --git a/data/tools/ktlint.yml b/data/tools/ktlint.yml new file mode 100644 index 0000000000..7e388e2f95 --- /dev/null +++ b/data/tools/ktlint.yml @@ -0,0 +1,12 @@ +name: ktlint +categories: + - formatter + - linter +tags: + - kotlin +license: MIT License +types: + - cli +source: 'https://github.com/shyiko/ktlint' +homepage: 'https://ktlint.github.io' +description: An anti-bikeshedding Kotlin linter with built-in formatter. diff --git a/data/tools/kube-hunter.yml b/data/tools/kube-hunter.yml new file mode 100644 index 0000000000..0cc494dbe5 --- /dev/null +++ b/data/tools/kube-hunter.yml @@ -0,0 +1,13 @@ +name: kube-hunter +categories: + - linter +tags: + - kubernetes + - security +license: Apache-2.0 +types: + - cli +source: 'https://github.com/aquasecurity/kube-hunter' +homepage: 'https://aquasecurity.github.io/kube-hunter/' +description: >- + Hunt for security weaknesses in Kubernetes clusters. diff --git a/data/tools/kube-lint.yml b/data/tools/kube-lint.yml new file mode 100644 index 0000000000..7b05d7edbd --- /dev/null +++ b/data/tools/kube-lint.yml @@ -0,0 +1,14 @@ +name: kube-lint +categories: + - linter +tags: + - kubernetes +license: Apache-2.0 License +types: + - cli +source: "https://github.com/viglesiasce/kube-lint" +homepage: "https://github.com/viglesiasce/kube-lint" +description: >- + A linter for Kubernetes resources with a customizable rule set. + You define a list of rules that you would like to validate against your + resources and kube-lint will evaluate those rules against them. diff --git a/data/tools/kube-linter.yml b/data/tools/kube-linter.yml new file mode 100644 index 0000000000..9b8ac4a9e5 --- /dev/null +++ b/data/tools/kube-linter.yml @@ -0,0 +1,13 @@ +name: kube-linter +categories: + - linter +tags: + - kubernetes +license: Apache-2.0 License +types: + - cli +source: "https://github.com/stackrox/kube-linter" +homepage: "https://github.com/stackrox/kube-linter" +description: >- + KubeLinter is a static analysis tool that checks Kubernetes YAML files + and Helm charts to ensure the applications represented in them adhere to best practices. diff --git a/data/tools/kube-score.yml b/data/tools/kube-score.yml new file mode 100644 index 0000000000..5a08a9abb1 --- /dev/null +++ b/data/tools/kube-score.yml @@ -0,0 +1,11 @@ +name: kube-score +categories: + - linter +tags: + - kubernetes +license: MIT License +types: + - cli +source: "https://github.com/zegl/kube-score" +homepage: "https://kube-score.com" +description: Static code analysis of your Kubernetes object definitions. diff --git a/data/tools/kubeconform.yml b/data/tools/kubeconform.yml new file mode 100644 index 0000000000..ba0200df33 --- /dev/null +++ b/data/tools/kubeconform.yml @@ -0,0 +1,21 @@ +name: kubeconform +categories: + - linter +tags: + - kubernetes +license: Apache 2.0 +types: + - cli +source: "https://github.com/yannh/kubeconform" +homepage: "https://github.com/yannh/kubeconform" +resources: + - title: Ensuring Kubernetes manifests validity & compliance - a tooling overview - Yann Hamon, Contentful + url: https://youtu.be/YM7Wy_M7Lvw?t=657 +description: | + A fast Kubernetes manifests validator with support for custom resources. + + It is inspired by, contains code from and is designed to stay close to [Kubeval](https://analysis-tools.dev/tool/kubeval), + but with the following improvements: + * high performance: will validate & download manifests over multiple routines, caching downloaded files in memory + * configurable list of remote, or local schemas locations, enabling validating Kubernetes custom resources (CRDs) and offline validation capabilities + * uses by default a self-updating fork of the schemas registry maintained by the kubernetes-json-schema project - which guarantees up-to-date schemas for all recent versions of Kubernetes. diff --git a/data/tools/kubelinter.yml b/data/tools/kubelinter.yml new file mode 100644 index 0000000000..5767d87108 --- /dev/null +++ b/data/tools/kubelinter.yml @@ -0,0 +1,16 @@ +name: KubeLinter +categories: + - linter +tags: + - kubernetes +license: Apache-2.0 License +types: + - cli +source: "https://github.com/stackrox/kube-linter" +homepage: "https://github.com/stackrox/kube-linter" +description: "KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices." +resources: + - title: "KubeLinter: An open source linter for Kubernetes, from StackRox" + url: https://www.youtube.com/watch?v=KWX0sWojV_0 + - title: Announcement blog post + url: https://www.stackrox.com/post/2020/10/introducing-kubelinter-an-open-source-linter-for-kubernetes diff --git a/data/tools/kubeval.yml b/data/tools/kubeval.yml new file mode 100644 index 0000000000..3f925ae687 --- /dev/null +++ b/data/tools/kubeval.yml @@ -0,0 +1,14 @@ +name: kubeval +categories: + - linter +tags: + - kubernetes +license: Other +types: + - cli +deprecated: true +source: "https://github.com/instrumenta/kubeval" +homepage: "https://kubeval.instrumenta.dev" +description: >- + Validates your Kubernetes configuration files and supports multiple Kubernetes + versions. diff --git a/data/tools/lacheck.yml b/data/tools/lacheck.yml new file mode 100644 index 0000000000..68116871be --- /dev/null +++ b/data/tools/lacheck.yml @@ -0,0 +1,11 @@ +name: lacheck +categories: + - linter +tags: + - latex +license: GPL +types: + - cli +source: 'https://www.ctan.org/tex-archive/support/lacheck' +homepage: 'https://www.ctan.org/pkg/lacheck' +description: A tool for finding common mistakes in LaTeX documents. diff --git a/data/tools/langlint.yml b/data/tools/langlint.yml new file mode 100644 index 0000000000..2dc3a3c477 --- /dev/null +++ b/data/tools/langlint.yml @@ -0,0 +1,24 @@ +name: LangLint +categories: + - linter +tags: + - python + - javascript + - typescript + - go + - rust + - java + - cpp + - markdown + - json + - yaml + - translation +license: MIT License +types: + - cli +source: 'https://github.com/HzaCode/Langlint' +homepage: 'https://github.com/HzaCode/Langlint' +description: >- + Automated translation platform for code comments and docstrings across 20+ file types. + Eliminates language barriers in international software collaboration. Supports 100+ language pairs with syntax protection. + Integrates into CI/CD pipelines like Ruff. 10-20x faster with concurrent processing. diff --git a/data/tools/languagetool.yml b/data/tools/languagetool.yml new file mode 100644 index 0000000000..1cd0fa6e0f --- /dev/null +++ b/data/tools/languagetool.yml @@ -0,0 +1,13 @@ +name: languagetool +categories: + - linter +tags: + - writing +license: GNU Lesser General Public License v2.1 +types: + - cli +source: 'https://github.com/languagetool-org/languagetool' +homepage: 'https://languagetool.org' +description: >- + Style and grammar checker for 25+ languages. It finds many errors that a + simple spell checker cannot detect. diff --git a/data/tools/larastan.yml b/data/tools/larastan.yml new file mode 100644 index 0000000000..9e7a097be7 --- /dev/null +++ b/data/tools/larastan.yml @@ -0,0 +1,14 @@ +name: larastan +categories: + - linter +tags: + - php + - laravel +license: MIT License +types: + - cli +source: 'https://github.com/larastan/larastan' +homepage: 'https://github.com/larastan/larastan' +description: >- + Adds static analysis to Laravel improving developer productivity and code quality. + It is a wrapper around PHPStan. diff --git a/data/tools/laser.yml b/data/tools/laser.yml new file mode 100644 index 0000000000..c10c1d8fdd --- /dev/null +++ b/data/tools/laser.yml @@ -0,0 +1,12 @@ +name: laser +categories: + - linter +tags: + - ruby +deprecated: true +license: GNU Affero General Public License v3.0 +types: + - cli +source: 'https://github.com/michaeledgar/laser' +homepage: 'https://github.com/michaeledgar/laser' +description: Static analysis and style linter for Ruby code. diff --git a/data/tools/ldra.yml b/data/tools/ldra.yml new file mode 100644 index 0000000000..6b81de18d8 --- /dev/null +++ b/data/tools/ldra.yml @@ -0,0 +1,17 @@ +name: LDRA +categories: +- linter +tags: +- c +- cpp +license: proprietary +types: +- cli +homepage: https://ldra.com +description: >- + A tool suite including static analysis (TBVISION) to various standards including + MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules. +pricing: https://ldra.com/register/ +plans: + free: false + oss: false diff --git a/data/tools/lgtm.yml b/data/tools/lgtm.yml new file mode 100644 index 0000000000..57a74831db --- /dev/null +++ b/data/tools/lgtm.yml @@ -0,0 +1,27 @@ +name: LGTM +categories: + - linter +tags: + - ci + - security + - java + - python + - javascript + - typescript + - go + - c + - cpp + - csharp +license: proprietary +types: + - service +homepage: 'https://lgtm.com/' +description: >- + Find security vulnerabilities, variants, and critical code quality issues + using CodeQL queries over source code. Automatic PR code review; free for open source. + Formerly semmle. It supports public Git repositories hosted on Bitbucket Cloud, + GitHub.com, GitLab.com. + +resources: + - title: "Welcoming Semmle to GitHub" + url: https://github.blog/2019-09-18-github-welcomes-semmle/ diff --git a/data/tools/libvcs4j.yml b/data/tools/libvcs4j.yml new file mode 100644 index 0000000000..94afdb0e60 --- /dev/null +++ b/data/tools/libvcs4j.yml @@ -0,0 +1,14 @@ +name: LibVCS4j +categories: + - linter +tags: + - support +license: Other +types: + - cli +source: 'https://github.com/uni-bremen-agst/libvcs4j' +homepage: 'https://github.com/uni-bremen-agst/libvcs4j' +description: >- + A Java library that allows existing tools to analyse the evolution of software + systems by providing a common API for different version control systems and + issue trackers. diff --git a/data/tools/lint.yml b/data/tools/lint.yml new file mode 100644 index 0000000000..bf6c724479 --- /dev/null +++ b/data/tools/lint.yml @@ -0,0 +1,13 @@ +name: lint +categories: + - linter +tags: + - dart +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/passsy/dart-lint' +homepage: 'https://github.com/passsy/dart-lint' +description: >- + An opinionated, community-driven set of lint rules for Dart and Flutter + projects. Like pedantic but stricter diff --git a/data/tools/linter-for-dart.yml b/data/tools/linter-for-dart.yml new file mode 100644 index 0000000000..f3b0c953ed --- /dev/null +++ b/data/tools/linter-for-dart.yml @@ -0,0 +1,11 @@ +name: Linter for dart +categories: + - linter +tags: + - dart +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: "https://github.com/dart-lang/linter" +homepage: "https://github.com/dart-lang/linter" +description: Style linter for Dart. diff --git a/data/tools/linter-rust.yml b/data/tools/linter-rust.yml new file mode 100644 index 0000000000..21c1efe84b --- /dev/null +++ b/data/tools/linter-rust.yml @@ -0,0 +1,11 @@ +name: linter-rust +categories: + - linter +tags: + - rust +license: MIT License +types: + - cli +source: 'https://github.com/AtomLinter/linter-rust' +homepage: 'https://github.com/AtomLinter/linter-rust' +description: 'Linting your Rust-files in Atom, using rustc and cargo.' diff --git a/data/tools/linter.yml b/data/tools/linter.yml new file mode 100644 index 0000000000..cfb37ad4a1 --- /dev/null +++ b/data/tools/linter.yml @@ -0,0 +1,13 @@ +name: linter +categories: + - linter +tags: + - scala +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/HairyFotr/linter' +homepage: 'https://github.com/HairyFotr/linter' +description: >- + Linter is a Scala static analysis compiler plugin which adds compile-time + checks for various possible bugs, inefficiencies, and style problems. diff --git a/data/tools/lintian.yml b/data/tools/lintian.yml new file mode 100644 index 0000000000..e4f1243c05 --- /dev/null +++ b/data/tools/lintian.yml @@ -0,0 +1,11 @@ +name: lintian +categories: + - linter +tags: + - package +license: GNU General Public License v2.0 +types: + - cli +source: "https://salsa.debian.org/lintian/lintian" +homepage: "https://wiki.debian.org/Lintian" +description: Static analysis tool for Debian packages. diff --git a/data/tools/lintr.yml b/data/tools/lintr.yml new file mode 100644 index 0000000000..3e41f5fb68 --- /dev/null +++ b/data/tools/lintr.yml @@ -0,0 +1,11 @@ +name: lintr +categories: + - linter +tags: + - r +license: Other +types: + - cli +source: 'https://github.com/jimhester/lintr' +homepage: 'https://github.com/jimhester/lintr' +description: Static Code Analysis for R. diff --git a/data/tools/linty-fresh.yml b/data/tools/linty-fresh.yml new file mode 100644 index 0000000000..ec262e0061 --- /dev/null +++ b/data/tools/linty-fresh.yml @@ -0,0 +1,11 @@ +name: linty fresh +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/lyft/linty_fresh' +homepage: 'https://github.com/lyft/linty_fresh' +description: Parse lint errors and report them to Github as comments on a pull request. diff --git a/data/tools/liquidhaskell.yml b/data/tools/liquidhaskell.yml new file mode 100644 index 0000000000..c33976e415 --- /dev/null +++ b/data/tools/liquidhaskell.yml @@ -0,0 +1,11 @@ +name: Liquid Haskell +categories: + - linter +tags: + - haskell +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/ucsd-progsys/liquidhaskell' +homepage: 'https://ucsd-progsys.github.io/liquidhaskell-blog/' +description: Liquid Haskell is a refinement type checker for Haskell programs. diff --git a/data/tools/lizard.yml b/data/tools/lizard.yml new file mode 100644 index 0000000000..eaf54f87fc --- /dev/null +++ b/data/tools/lizard.yml @@ -0,0 +1,30 @@ +name: lizard +categories: + - linter +tags: + - c + - cpp + - java + - csharp + - javascript + - typescript + - objectivec + - swift + - python + - ruby + - php + - scala + - go + - lua + - rust +license: MIT License +types: + - cli +source: 'https://github.com/terryyin/lizard' +homepage: 'https://github.com/terryyin/lizard' +description: >- + Lizard is an extensible Cyclomatic Complexity Analyzer for many programming languages + including C/C++ (doesn't require all the header files or Java imports). + It also does copy-paste detection (code clone detection/code duplicate detection) + and many other forms of static code analysis. + Counts lines of code without comments, CCN (cyclomatic complexity number), token count of functions, parameter count of functions. diff --git a/data/tools/lll.yml b/data/tools/lll.yml new file mode 100644 index 0000000000..31291c81d0 --- /dev/null +++ b/data/tools/lll.yml @@ -0,0 +1,11 @@ +name: lll +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/walle/lll' +homepage: 'https://github.com/walle/lll' +description: Report long lines. diff --git a/data/tools/lockbud.yml b/data/tools/lockbud.yml new file mode 100644 index 0000000000..0420bbc5ca --- /dev/null +++ b/data/tools/lockbud.yml @@ -0,0 +1,16 @@ +name: lockbud +categories: + - linter +tags: + - rust +license: BSD-3-Clause +types: + - cli +source: "https://github.com/BurtonQin/lockbud" +homepage: "https://github.com/BurtonQin/lockbud" +description: >- + Statically detects Rust deadlocks bugs. + It currently detects two common kinds of deadlock bugs: + doublelock and locks in conflicting order. + It will print bugs in JSON format together with the source code location and + an explanation of each bug. diff --git a/data/tools/lockfile-lint.yml b/data/tools/lockfile-lint.yml new file mode 100644 index 0000000000..fd06128545 --- /dev/null +++ b/data/tools/lockfile-lint.yml @@ -0,0 +1,13 @@ +name: lockfile-lint +categories: + - linter +tags: + - security + - nodejs +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/lirantal/lockfile-lint' +homepage: 'https://github.com/lirantal/lockfile-lint' +description: >- + Lint an npm or yarn lockfile to analyze and detect security issues diff --git a/data/tools/luacheck.yml b/data/tools/luacheck.yml new file mode 100644 index 0000000000..300f4627bd --- /dev/null +++ b/data/tools/luacheck.yml @@ -0,0 +1,11 @@ +name: luacheck +categories: + - linter +tags: + - lua +license: MIT License +types: + - cli +source: 'https://github.com/lunarmodules/luacheck' +homepage: 'https://github.com/lunarmodules/luacheck' +description: A tool for linting and static analysis of Lua code. diff --git a/data/tools/lualint.yml b/data/tools/lualint.yml new file mode 100644 index 0000000000..9e50ddb823 --- /dev/null +++ b/data/tools/lualint.yml @@ -0,0 +1,13 @@ +name: lualint +categories: + - linter +tags: + - lua +license: MIT License +types: + - cli +source: 'https://github.com/philips/lualint' +homepage: 'https://github.com/philips/lualint' +description: >- + lualint performs luac-based static analysis of global variable usage in + Lua source code. diff --git a/data/tools/luanalysis.yml b/data/tools/luanalysis.yml new file mode 100644 index 0000000000..833f4d0aeb --- /dev/null +++ b/data/tools/luanalysis.yml @@ -0,0 +1,11 @@ +name: Luanalysis +categories: + - linter +tags: + - lua +license: Apache-2.0 License +types: + - ide-plugin +source: 'https://github.com/Benjamin-Dobell/IntelliJ-Luanalysis' +homepage: 'https://plugins.jetbrains.com/plugin/14698-luanalysis' +description: 'An IDE for statically typed Lua development.' diff --git a/data/tools/lunasec.yml b/data/tools/lunasec.yml new file mode 100644 index 0000000000..b7bfdba12b --- /dev/null +++ b/data/tools/lunasec.yml @@ -0,0 +1,13 @@ +name: LunaSec +categories: + - linter +tags: + - security +license: Apache License Version 2.0 +types: + - service +homepage: "https://github.com/marketplace/lunatrace-by-lunasec/" +source: "https://github.com/lunasec-io/lunasec" +description: >- + Open Source AppSec platform that automatically notifies you the next time vulnerabilities + like Log4Shell or node-ipc happen. Track your dependencies and builds in a centralized service. diff --git a/data/tools/mago.yml b/data/tools/mago.yml new file mode 100644 index 0000000000..0ebe3de827 --- /dev/null +++ b/data/tools/mago.yml @@ -0,0 +1,19 @@ +name: mago +categories: + - linter + - formatter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/carthage-software/mago' +homepage: 'https://mago.carthage.software' +description: >- + Mago is a complete toolchain for PHP, written in Rust, designed from the ground up for maximum performance. + + - ✨ A blazing-fast formatter that automatically formats your code according to PER-CS, ending style debates forever. + - 🔎 An intelligent linter that catches stylistic issues, inconsistencies, and code smells before they become problems. + - 🔬 A powerful static analyzer that finds type errors and logical bugs in your code without you ever having to run it. + - 🛡️ A robust architectural guard that enforces dependency rules and structural conventions. + diff --git a/data/tools/malcat.yml b/data/tools/malcat.yml new file mode 100644 index 0000000000..fe4a3134b7 --- /dev/null +++ b/data/tools/malcat.yml @@ -0,0 +1,19 @@ +name: Malcat +categories: + - linter +tags: + - binary + - security +license: proprietary +types: + - gui +plans: + free: true +homepage: "https://malcat.fr/" +description: >- + Hexadecimal editor and disassembler for malware analysis and binary file + inspection. Supports over 50 file formats and multiple CPU architectures + (x86/x64, MIPS, .NET, Python, VB p-code). Features rapid analysis, + embedded file extraction, Yara signature scanning, anomaly detection, + and Python scripting. Designed for malware analysts, SOC operators, + incident responders, and CTF players. \ No newline at end of file diff --git a/data/tools/maligned.yml b/data/tools/maligned.yml new file mode 100644 index 0000000000..021f2d0fee --- /dev/null +++ b/data/tools/maligned.yml @@ -0,0 +1,11 @@ +name: maligned +categories: + - linter +tags: + - go +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/mdempsky/maligned' +homepage: 'https://github.com/mdempsky/maligned' +description: Detect structs that would take less memory if their fields were sorted. diff --git a/data/tools/manalyze.yml b/data/tools/manalyze.yml new file mode 100644 index 0000000000..a3254eef34 --- /dev/null +++ b/data/tools/manalyze.yml @@ -0,0 +1,11 @@ +name: Manalyze +categories: + - linter +tags: + - binary +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/JusticeRage/Manalyze' +homepage: 'https://github.com/JusticeRage/Manalyze' +description: 'A static analyzer, which checks portable executables for malicious content.' diff --git a/data/tools/mariana-trench.yml b/data/tools/mariana-trench.yml new file mode 100644 index 0000000000..d565200f21 --- /dev/null +++ b/data/tools/mariana-trench.yml @@ -0,0 +1,16 @@ +name: Mariana Trench +categories: + - linter +tags: + - java + - mobile +license: MIT +types: + - cli +source: "https://github.com/facebook/mariana-trench" +homepage: "https://mariana-tren.ch/" +description: >- + Our security focused static analysis tool for Android and Java applications. + Mariana Trench analyzes Dalvik bytecode and is built to run fast on large + codebases (10s of millions of lines of code). It can find vulnerabilities as + code changes, before it ever lands in your repository. diff --git a/data/tools/markdownlint.yml b/data/tools/markdownlint.yml new file mode 100644 index 0000000000..c387d30a48 --- /dev/null +++ b/data/tools/markdownlint.yml @@ -0,0 +1,11 @@ +name: markdownlint +categories: + - linter +tags: + - markdown +license: MIT License +types: + - cli +source: 'https://github.com/DavidAnson/markdownlint' +homepage: 'https://github.com/DavidAnson/markdownlint' +description: Node.js -based style checker and lint tool for Markdown/CommonMark files. diff --git a/data/tools/mate.yml b/data/tools/mate.yml new file mode 100644 index 0000000000..cd65a38b95 --- /dev/null +++ b/data/tools/mate.yml @@ -0,0 +1,18 @@ +name: MATE +categories: + - linter +tags: + - c + - cpp +license: BSD-3-Clause +types: + - cli +source: "https://github.com/GaloisInc/MATE" +homepage: "https://galoisinc.github.io/MATE/" +description: >- + A suite of tools for interactive program analysis with a focus on + hunting for bugs in C and C++ code. + MATE unifies application-specific and low-level vulnerability analysis using + code property graphs (CPGs), enabling the discovery of highly + application-specific vulnerabilities that depend on both implementation + details and the high-level semantics of target C/C++ programs. diff --git a/data/tools/mbake.yml b/data/tools/mbake.yml new file mode 100644 index 0000000000..0960056c52 --- /dev/null +++ b/data/tools/mbake.yml @@ -0,0 +1,13 @@ +name: mbake +categories: + - formatter + - linter +tags: + - make + - python +license: MIT +types: + - cli +source: 'https://github.com/EbodShojaei/bake' +homepage: 'https://pypi.org/project/mbake/' +description: mbake is a Makefile formatter and linter. It only took 50 years! diff --git a/data/tools/mccabe.yml b/data/tools/mccabe.yml new file mode 100644 index 0000000000..dc7d2b95d8 --- /dev/null +++ b/data/tools/mccabe.yml @@ -0,0 +1,11 @@ +name: mccabe +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/PyCQA/mccabe' +homepage: 'https://pypi.org/project/mccabe' +description: Check McCabe complexity. diff --git a/data/tools/mcsema.yml b/data/tools/mcsema.yml new file mode 100644 index 0000000000..9f93110baa --- /dev/null +++ b/data/tools/mcsema.yml @@ -0,0 +1,14 @@ +name: mcsema +categories: + - linter +tags: + - binary +license: AGPL-3.0 License +types: + - cli +source: 'https://github.com/lifting-bits/mcsema' +homepage: 'https://github.com/lifting-bits/mcsema' +description: >- + Framework for lifting x86, amd64, aarch64, sparc32, and sparc64 program binaries to LLVM bitcode. + It translates ("lifts") executable binaries from native machine code to LLVM bitcode, + which is very useful for performing program analysis methods. diff --git a/data/tools/mdformat.yml b/data/tools/mdformat.yml new file mode 100644 index 0000000000..d9938e3c3c --- /dev/null +++ b/data/tools/mdformat.yml @@ -0,0 +1,11 @@ +name: mdformat +categories: + - formatter +tags: + - markdown +license: MIT License +types: + - cli +source: "https://github.com/executablebooks/mdformat" +homepage: "https://mdformat.rtfd.io" +description: "CommonMark compliant Markdown formatter" diff --git a/data/tools/mdl.yml b/data/tools/mdl.yml new file mode 100644 index 0000000000..a03c11392a --- /dev/null +++ b/data/tools/mdl.yml @@ -0,0 +1,11 @@ +name: mdl +categories: + - linter +tags: + - markdown +license: MIT License +types: + - cli +source: 'https://github.com/mivok/markdownlint' +homepage: 'https://github.com/mivok/markdownlint' +description: A tool to check Markdown files and flag style issues. diff --git a/data/tools/mdsf.yml b/data/tools/mdsf.yml new file mode 100644 index 0000000000..540f2054aa --- /dev/null +++ b/data/tools/mdsf.yml @@ -0,0 +1,12 @@ +name: mdsf +categories: + - formatter +tags: + - markdown +license: MIT License +types: + - cli +deprecated: false +homepage: "https://github.com/hougesen/mdsf" +source: "https://github.com/hougesen/mdsf" +description: Format markdown code blocks using your favorite code formatters. diff --git a/data/tools/mega-linter.yml b/data/tools/mega-linter.yml new file mode 100644 index 0000000000..022e8a1806 --- /dev/null +++ b/data/tools/mega-linter.yml @@ -0,0 +1,69 @@ +name: Mega-Linter +categories: + - linter +tags: + - ansible + - apex + - arm + - c + - ci + - clojure + - cloudformation + - coffeescript + - configfile + - configmanagement + - container + - cpp + - css + - csharp + - dart + - dockerfile + - dotenv + - dotnet + - gherkin + - go + - groovy + - html + - java + - javascript + - json + - jsx + - kotlin + - kubernetes + - latex + - lua + - lwc + - markdown + - nodejs + - perl + - php + - powershell + - protobuf + - puppet + - python + - r + - raku + - ruby + - rust + - scala + - shell + - sql + - terraform + - typescript + - vbnet + - vue + - writing + - xml + - yaml +license: MIT License +types: + - cli +source: "https://github.com/nvuillam/mega-linter" +homepage: "https://megalinter.io/" +description: >- + Mega-Linter can handle any type of project thanks to its 70+ embedded Linters, + its advanced reporting, runnable on any CI system or locally, + with assisted installation and configuration, able to apply formatting and fixes +resources: + - title: Hands on - Improving code standards with mega linter + url: https://www.youtube.com/watch?v=3xgTU1GhRvs diff --git a/data/tools/metadata-json-lint.yml b/data/tools/metadata-json-lint.yml new file mode 100644 index 0000000000..ab89282bcb --- /dev/null +++ b/data/tools/metadata-json-lint.yml @@ -0,0 +1,12 @@ +name: metadata-json-lint +categories: + - linter +tags: + - configmanagement + - puppet +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/voxpupuli/metadata-json-lint' +homepage: 'https://github.com/voxpupuli/metadata-json-lint' +description: Tool to check the validity of Puppet metadata.json files. diff --git a/data/tools/metric_fu.yml b/data/tools/metric_fu.yml new file mode 100644 index 0000000000..785d7e1a01 --- /dev/null +++ b/data/tools/metric_fu.yml @@ -0,0 +1,12 @@ +name: MetricFu +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: "https://github.com/metricfu/metric_fu" +homepage: "https://github.com/metricfu/metric_fu" +description: >- + MetricFu is a set of tools to provide reports that show which parts of your code might need extra work. diff --git a/data/tools/mirai.yml b/data/tools/mirai.yml new file mode 100644 index 0000000000..36b3367579 --- /dev/null +++ b/data/tools/mirai.yml @@ -0,0 +1,13 @@ +name: MIRAI +categories: + - linter +tags: + - rust +license: MIT License +types: + - cli +source: 'https://github.com/facebookexperimental/MIRAI' +homepage: 'https://github.com/facebookexperimental/MIRAI' +description: >- + And abstract interpreter operating on Rust's mid-level intermediate language, + and providing warnings based on taint analysis. diff --git a/data/tools/misshit.yml b/data/tools/misshit.yml new file mode 100644 index 0000000000..5aac81ccac --- /dev/null +++ b/data/tools/misshit.yml @@ -0,0 +1,17 @@ +name: MISS_HIT +categories: + - linter + - formatter +tags: + - matlab +license: GPL-3.0 +types: + - cli +source: "https://github.com/florianschanda/miss_hit" +homepage: "https://misshit.org/" +description: >- + MISS_HIT is a free, open-source code quality toolset for MATLAB, Simulink, + and Octave. It includes MH Style (style checker and formatter), MH Metrics + (complexity metrics), MH Lint (static analysis), MH Trace (requirements + traceability), and MH Copyright (copyright management). Designed to work + standalone without requiring MATLAB/Octave installation. \ No newline at end of file diff --git a/data/tools/misspell-fixer.yml b/data/tools/misspell-fixer.yml new file mode 100644 index 0000000000..8d582cb957 --- /dev/null +++ b/data/tools/misspell-fixer.yml @@ -0,0 +1,11 @@ +name: misspell-fixer +categories: + - linter +tags: + - writing +license: Other +types: + - cli +source: 'https://github.com/vlajos/misspell-fixer' +homepage: 'https://github.com/vlajos/misspell-fixer' +description: 'Quick tool for fixing common misspellings, typos in source code.' diff --git a/data/tools/misspell.yml b/data/tools/misspell.yml new file mode 100644 index 0000000000..978aa0c1e1 --- /dev/null +++ b/data/tools/misspell.yml @@ -0,0 +1,11 @@ +name: misspell +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/client9/misspell' +homepage: 'https://github.com/client9/misspell' +description: Finds commonly misspelled English words. diff --git a/data/tools/misspelled-words-in-context.yml b/data/tools/misspelled-words-in-context.yml new file mode 100644 index 0000000000..68392f0fe3 --- /dev/null +++ b/data/tools/misspelled-words-in-context.yml @@ -0,0 +1,13 @@ +name: Misspelled Words In Context +categories: + - linter +tags: + - writing +license: MIT License +types: + - cli +source: 'https://github.com/jwilk/mwic' +homepage: 'https://jwilk.net/software/mwic' +description: >- + A spell-checker that groups possible misspellings and shows them in their + contexts. diff --git a/data/tools/mlint.yml b/data/tools/mlint.yml new file mode 100644 index 0000000000..63597b4a32 --- /dev/null +++ b/data/tools/mlint.yml @@ -0,0 +1,10 @@ +name: mlint +categories: + - linter +tags: + - matlab +license: proprietary +types: + - cli +homepage: 'https://www.mathworks.com/help/matlab/ref/mlint.html' +description: Check MATLAB code files for possible problems. diff --git a/data/tools/mobb.yml b/data/tools/mobb.yml new file mode 100644 index 0000000000..b8beca7f99 --- /dev/null +++ b/data/tools/mobb.yml @@ -0,0 +1,18 @@ +name: Mobb +categories: + - formatter + - linter +tags: + - ci + - java + - javascript + - typescript + - csharp +license: proprietary +types: + - service + - cli +homepage: 'https://mobb.ai' +description: >- + Mobb is a trusted, automatic vulnerability fixer that secures applications, reduces security backlogs, + and frees developers to focus on innovation. Mobb is free for open-source projects. diff --git a/data/tools/mondrian.yml b/data/tools/mondrian.yml new file mode 100644 index 0000000000..7818891ffc --- /dev/null +++ b/data/tools/mondrian.yml @@ -0,0 +1,11 @@ +name: Mondrian +categories: + - linter +tags: + - php +license: CC-BY-SA-3.0 +types: + - cli +source: 'https://github.com/Trismegiste/Mondrian' +homepage: 'https://trismegiste.github.io/Mondrian' +description: A set of static analysis and refactoring tools which use graph theory. diff --git a/data/tools/mopsa.yml b/data/tools/mopsa.yml new file mode 100644 index 0000000000..ca21bd9096 --- /dev/null +++ b/data/tools/mopsa.yml @@ -0,0 +1,12 @@ +name: MOPSA +categories: + - linter +tags: + - c + - python +license: GNU Lesser General Public License v3.0 +types: + - cli +source: 'https://gitlab.com/mopsa/mopsa-analyzer' +homepage: 'https://mopsa.lip6.fr' +description: A static analyzer designed to easily reuse abstract domains across widely different languages (such as C and Python). diff --git a/data/tools/multilint.yml b/data/tools/multilint.yml new file mode 100644 index 0000000000..331fe827e9 --- /dev/null +++ b/data/tools/multilint.yml @@ -0,0 +1,12 @@ +name: multilint +categories: + - meta +tags: + - meta + - python +license: ISC License +types: + - cli +source: 'https://github.com/adamchainz/multilint' +homepage: 'https://github.com/adamchainz/multilint' +description: 'A wrapper around `flake8`, `isort` and `modernize`.' diff --git a/data/tools/mypy.yml b/data/tools/mypy.yml new file mode 100644 index 0000000000..9cf5d9dd65 --- /dev/null +++ b/data/tools/mypy.yml @@ -0,0 +1,21 @@ +name: mypy +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/python/mypy' +homepage: 'http://www.mypy-lang.org' +resources: + - title: Static type checking with mypy + url: https://www.youtube.com/watch?v=9gNnhNxra3E + - title: Introduction to python typing + mypy (beginner - intermediate) + url: https://www.youtube.com/watch?v=H5CnZQDKfhU +demos: + - https://mypy-lang.org/examples.html +description: >- + A static type checker that aims to combine the benefits of duck typing and + static typing, frequently used with + [MonkeyType](https://github.com/Instagram/MonkeyType). diff --git a/data/tools/mythril.yml b/data/tools/mythril.yml new file mode 100644 index 0000000000..2e0a06ae03 --- /dev/null +++ b/data/tools/mythril.yml @@ -0,0 +1,18 @@ +name: mythril +categories: + - linter +tags: + - smart-contracts +license: MIT License +types: + - cli +source: 'https://github.com/ConsenSys/mythril' +homepage: 'https://github.com/ConsenSys/mythril' +description: >- + A symbolic execution framework with batteries included, can be used to find + and exploit vulnerabilities in smart contracts automatically. +resources: + - title: "The Ether Wars: Exploits, counter exploits and honeypots - Bernhard Mueller, DEF CON 27 Conference" + url: https://www.youtube.com/watch?v=Qd9ubry-c_M + - title: "Smashing Ethereum Smart Contracts for Fun and ACTUAL Profit - Bernhard Mueller" + url: https://www.youtube.com/watch?v=iqf6epACgds diff --git a/data/tools/mythx.yml b/data/tools/mythx.yml new file mode 100644 index 0000000000..66fb9b3222 --- /dev/null +++ b/data/tools/mythx.yml @@ -0,0 +1,23 @@ +name: MythX +categories: + - linter +tags: + - smart-contracts +license: proprietary +types: + - cli + - service + - ide-plugin +homepage: https://mythx.io +description: >- + MythX is an easy to use analysis platform which integrates several analysis methods + like fuzzing, symbolic execution and static analysis to find vulnerabilities with + high precision. It can be integrated with toolchains like Remix or VSCode or called + from the command-line. +resources: + - title: What is MythX? + url: https://www.youtube.com/watch?v=N-dAuqNztjA +pricing: https://mythx.io/plans/ +plans: + free: false + oss: false diff --git a/data/tools/nagelfar.yml b/data/tools/nagelfar.yml new file mode 100644 index 0000000000..c28d0b246c --- /dev/null +++ b/data/tools/nagelfar.yml @@ -0,0 +1,11 @@ +name: Nagelfar +categories: + - linter +tags: + - tcl +license: GPL v2 +types: + - cli +source: 'https://sourceforge.net/p/nagelfar/code/ci/master/tree' +homepage: 'https://sourceforge.net/projects/nagelfar' +description: A static syntax checker for Tcl. diff --git a/data/tools/nakedret.yml b/data/tools/nakedret.yml new file mode 100644 index 0000000000..42f60f7d24 --- /dev/null +++ b/data/tools/nakedret.yml @@ -0,0 +1,11 @@ +name: nakedret +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/alexkohler/nakedret' +homepage: 'https://github.com/alexkohler/nakedret' +description: Finds naked returns. diff --git a/data/tools/nargs.yml b/data/tools/nargs.yml new file mode 100644 index 0000000000..d719dc63f0 --- /dev/null +++ b/data/tools/nargs.yml @@ -0,0 +1,11 @@ +name: nargs +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/alexkohler/nargs' +homepage: 'https://github.com/alexkohler/nargs' +description: Finds unused arguments in function declarations. diff --git a/data/tools/nauz-file-detector.yml b/data/tools/nauz-file-detector.yml new file mode 100644 index 0000000000..0ded2a217e --- /dev/null +++ b/data/tools/nauz-file-detector.yml @@ -0,0 +1,11 @@ +name: Nauz File Detector +categories: + - linter +tags: + - binary +license: MIT License +types: + - cli +source: 'https://github.com/horsicq/Nauz-File-Detector' +homepage: 'https://github.com/horsicq/Nauz-File-Detector' +description: Static Linker/Compiler/Tool detector for Windows, Linux and MacOS. diff --git a/data/tools/ndepend.yml b/data/tools/ndepend.yml new file mode 100644 index 0000000000..4335299040 --- /dev/null +++ b/data/tools/ndepend.yml @@ -0,0 +1,16 @@ +name: NDepend +categories: + - linter +tags: + - csharp +license: proprietary +types: + - cli +homepage: http://www.ndepend.com +description: >- + Measure, query and visualize your code and avoid unexpected issues, technical debt + and complexity. +pricing: https://www.ndepend.com/purchase +plans: + free: false + oss: false diff --git a/data/tools/net-analyzers.yml b/data/tools/net-analyzers.yml new file mode 100644 index 0000000000..6102f9db87 --- /dev/null +++ b/data/tools/net-analyzers.yml @@ -0,0 +1,13 @@ +name: .NET Analyzers +categories: + - linter +tags: + - csharp +license: MIT +types: + - cli +source: 'https://github.com/DotNetAnalyzers' +homepage: 'https://github.com/DotNetAnalyzers' +description: >- + An organization for the development of analyzers (diagnostics and code fixes) + using the .NET Compiler Platform. diff --git a/data/tools/neurolint-cli.yml b/data/tools/neurolint-cli.yml new file mode 100644 index 0000000000..ef4afc59bb --- /dev/null +++ b/data/tools/neurolint-cli.yml @@ -0,0 +1,22 @@ +--- +name: Neurolint-CLI +categories: + - linter +tags: + - javascript + - typescript +license: "Apache-2.0" +types: + - cli +homepage: https://neurolint.dev +source: https://github.com/Alcatecablee/Neurolint-CLI +description: | + Deterministic code transformation tool using AST parsing and rule-based transformations. + Automatically fixes 50+ issues including accessibility violations, hydration errors, + React 19/Next.js 16 migrations, and configuration updates. Features 5-step fail-safe + orchestration to ensure zero breaking changes. Specialized for React, Next.js, and TypeScript projects. +resources: + - title: CLI Documentation + url: https://neurolint.dev + - title: GitHub Marketplace Action + url: https://github.com/marketplace/actions/neurolint-deterministic-code-fixer diff --git a/data/tools/nimfmt.yml b/data/tools/nimfmt.yml new file mode 100644 index 0000000000..af2dbf5864 --- /dev/null +++ b/data/tools/nimfmt.yml @@ -0,0 +1,11 @@ +name: nimfmt +categories: + - linter +tags: + - nim +license: GPL-3.0 License +types: + - cli +source: 'https://github.com/FedericoCeratto/nimfmt' +homepage: 'https://github.com/FedericoCeratto/nimfmt' +description: 'Nim code formatter / linter / style checker' diff --git a/data/tools/njsscan.yml b/data/tools/njsscan.yml new file mode 100644 index 0000000000..839048af0a --- /dev/null +++ b/data/tools/njsscan.yml @@ -0,0 +1,14 @@ +name: njsscan +categories: + - linter +tags: + - security + - nodejs +license: LGPL-2.1 License +types: + - cli +source: 'https://github.com/ajinabraham/njsscan' +homepage: 'https://opensecurity.in' +description: >- + A static application testing (SAST) tool that can find insecure code patterns in your node.js applications + using simple pattern matcher from libsast and syntax-aware semantic code pattern search tool semgrep. diff --git a/data/tools/nodejsscan.yml b/data/tools/nodejsscan.yml new file mode 100644 index 0000000000..62e63ce228 --- /dev/null +++ b/data/tools/nodejsscan.yml @@ -0,0 +1,16 @@ +name: NodeJSScan +categories: + - linter +tags: + - javascript + - nodejs + - security +license: GNU General Public License v3.0 +types: + - cli + - service +source: 'https://github.com/ajinabraham/NodeJsScan' +homepage: 'https://opensecurity.in' +description: >- + A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. + It features a UI with various dashboards about an application's security status. \ No newline at end of file diff --git a/data/tools/noir.yml b/data/tools/noir.yml new file mode 100644 index 0000000000..32197022d1 --- /dev/null +++ b/data/tools/noir.yml @@ -0,0 +1,14 @@ +name: OWASP Noir +categories: + - linter +tags: + - security +license: MIT License +types: + - cli +source: "https://github.com/owasp-noir/noir" +homepage: "https://owasp-noir.github.io/noir/" +resources: + - title: OWASP Project Noir + url: https://owasp.org/www-project-noir/ +description: Attack surface detector that identifies endpoints by static analysis. diff --git a/data/tools/nu-html-checker.yml b/data/tools/nu-html-checker.yml new file mode 100644 index 0000000000..802ee81b13 --- /dev/null +++ b/data/tools/nu-html-checker.yml @@ -0,0 +1,13 @@ +name: Nu Html Checker +categories: + - linter +tags: + - css + - html +license: MIT License +types: + - cli +source: 'https://github.com/validator/validator' +homepage: 'https://validator.github.io/validator/' +description: >- + Helps you catch problems in your HTML/CSS/SVG diff --git a/data/tools/nullaway.yml b/data/tools/nullaway.yml new file mode 100644 index 0000000000..224e1cb0f6 --- /dev/null +++ b/data/tools/nullaway.yml @@ -0,0 +1,13 @@ +name: NullAway +categories: + - linter +tags: + - java +license: MIT License +types: + - cli +source: 'https://github.com/uber/NullAway' +homepage: 'https://github.com/uber/NullAway' +description: >- + Type-based null-pointer checker with low build-time overhead; an [Error + Prone](http://errorprone.info/) plugin. diff --git a/data/tools/o360.yml b/data/tools/o360.yml new file mode 100644 index 0000000000..0d2217e7f1 --- /dev/null +++ b/data/tools/o360.yml @@ -0,0 +1,27 @@ +name: Offensive 360 +categories: + - linter +tags: + - asp + - csharp + - html + - java + - javascript + - mobile + - nodejs + - phonegap + - php + - security + - vbasic + - vbnet + - vbscript + - container + - dotnet + - typescript + - xml + - jsx +license: proprietary +types: + - service +homepage: "https://offensive360.com/" +description: Commercial Static Code Analysis system doesn't require building the source code or pre-compilation. diff --git a/data/tools/oclint.yml b/data/tools/oclint.yml new file mode 100644 index 0000000000..879004217a --- /dev/null +++ b/data/tools/oclint.yml @@ -0,0 +1,15 @@ +name: oclint +categories: + - linter +tags: + - c + - cpp + - objectivec +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/oclint/oclint' +homepage: 'http://oclint.org' +description: >- + A static source code analysis tool to improve quality and reduce defects for + C, C++ and Objective-C. diff --git a/data/tools/oelint-adv.yml b/data/tools/oelint-adv.yml new file mode 100644 index 0000000000..ee36952ee7 --- /dev/null +++ b/data/tools/oelint-adv.yml @@ -0,0 +1,11 @@ +name: oelint-adv +categories: + - linter +tags: + - embedded +license: BSD 2-Clause "Simplified" License +types: + - cli +source: 'https://github.com/priv-kweihmann/oelint-adv' +homepage: 'https://github.com/priv-kweihmann/oelint-adv' +description: Linter for bitbake recipes used in open-embedded and YOCTO diff --git a/data/tools/open-static-analyzer.yml b/data/tools/open-static-analyzer.yml new file mode 100644 index 0000000000..fdfdf541b5 --- /dev/null +++ b/data/tools/open-static-analyzer.yml @@ -0,0 +1,19 @@ +name: OpenStaticAnalyzer +categories: + - linter +tags: + - c + - cpp + - java + - csharp + - python + - javascript +license: European Union Public Licence (EUPL) v1.2 +types: + - cli +homepage: https://github.com/sed-inf-u-szeged/OpenStaticAnalyzer +description: >- + OpenStaticAnalyzer is a source code analyzer tool, which can perform deep static analysis of the source code of complex systems. +plans: + free: true + oss: true diff --git a/data/tools/openrewrite.yml b/data/tools/openrewrite.yml new file mode 100644 index 0000000000..78201c8b93 --- /dev/null +++ b/data/tools/openrewrite.yml @@ -0,0 +1,22 @@ +name: OpenRewrite +categories: + - linter + - formatter +tags: + - git + - groovy + - java + - json + - kotlin + - python + - sql + - xml + - yaml +license: Apache-2.0 +types: + - cli +source: 'https://github.com/openrewrite/rewrite' +homepage: 'https://docs.openrewrite.org/' +description: >- + OpenRewrite [fixes common static analysis issues](https://docs.openrewrite.org/running-recipes/popular-recipe-guides/common-static-analysis-issue-remediation) + reported through Sonar and other tools using a Maven and Gradle plugin or the Moderne CLI. diff --git a/data/tools/openscap.yml b/data/tools/openscap.yml new file mode 100644 index 0000000000..3081c4a323 --- /dev/null +++ b/data/tools/openscap.yml @@ -0,0 +1,14 @@ +name: OpenSCAP +categories: + - linter +tags: + - container +license: LGPL-2.1 License +types: + - cli +source: 'https://github.com/OpenSCAP/openscap' +homepage: 'https://www.open-scap.org/' +description: >- + Suite of automated audit tools to examine the configuration and + known vulnerabilities following the NIST-certified Security + Content Automation Protocol (SCAP). diff --git a/data/tools/osv-scanner.yml b/data/tools/osv-scanner.yml new file mode 100644 index 0000000000..9c481d6755 --- /dev/null +++ b/data/tools/osv-scanner.yml @@ -0,0 +1,17 @@ +name: OSV-Scanner +categories: + - linter +tags: + - security + - go +license: Apache License 2.0 +types: + - cli +source: "https://github.com/google/osv-scanner" +homepage: "https://osv.dev/" +description: >- + Vulnerability scanner written in Go which uses the data provided by OSV.dev. + Developed by Google to scan dependencies across multiple languages and + package managers for known vulnerabilities. Supports container scanning, + license scanning, and guided remediation. Works with lockfiles, SBOMs, + and container images to identify security issues. \ No newline at end of file diff --git a/data/tools/oversecured.yml b/data/tools/oversecured.yml new file mode 100644 index 0000000000..85952825d7 --- /dev/null +++ b/data/tools/oversecured.yml @@ -0,0 +1,14 @@ +name: Oversecured +categories: +- linter +tags: +- mobile +- security +license: proprietary +types: +- cli +homepage: https://oversecured.com +description: >- + Enterprise vulnerability scanner for Android and iOS apps. It allows app owners + and developers to secure each new version of a mobile app by integrating Oversecured + into the development process. diff --git a/data/tools/owasp-dependency-check.yml b/data/tools/owasp-dependency-check.yml new file mode 100644 index 0000000000..188565aae9 --- /dev/null +++ b/data/tools/owasp-dependency-check.yml @@ -0,0 +1,11 @@ +name: OWASP Dependency Check +categories: + - linter +tags: + - java +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/jeremylong/DependencyCheck' +homepage: 'https://owasp.org/www-project-dependency-check' +description: 'Checks dependencies for known, publicly disclosed, vulnerabilities.' diff --git a/data/tools/oxc.yml b/data/tools/oxc.yml new file mode 100644 index 0000000000..5930e00b58 --- /dev/null +++ b/data/tools/oxc.yml @@ -0,0 +1,17 @@ +name: oxc +categories: + - linter + - formatter +tags: + - javascript + - typescript +license: MIT License +types: + - cli +source: "https://github.com/web-infra-dev/oxc" +homepage: "https://github.com/web-infra-dev/oxc" +description: >- + The Oxidation Compiler is creating a suite of high-performance tools for the + JavaScript / TypeScript language re-written in Rust. +demos: + - https://web-infra-dev.github.io/oxc/playground diff --git a/data/tools/pa11y.yml b/data/tools/pa11y.yml new file mode 100644 index 0000000000..e9e7c6e4f0 --- /dev/null +++ b/data/tools/pa11y.yml @@ -0,0 +1,14 @@ +name: Pa11y +categories: + - linter +tags: + - html +license: LGPL-3.0 +types: + - cli +source: 'https://github.com/pa11y/pa11y' +homepage: 'https://pa11y.org/' +description: >- + Automated accessibility testing tool that runs HTML CodeSniffer or axe-core + from the command line. Supports CI/CD integration, multiple reporters, and + testing against WCAG 2.1 AA standards. diff --git a/data/tools/packj.yml b/data/tools/packj.yml new file mode 100644 index 0000000000..83a2278a7c --- /dev/null +++ b/data/tools/packj.yml @@ -0,0 +1,14 @@ +name: packj +categories: + - linter +tags: + - archive +license: AGPL-3.0 +types: + - cli +source: "https://github.com/ossillate-inc/packj" +homepage: "https://github.com/ossillate-inc/packj" +description: >- + Packj (pronounced package) is a command line (CLI) tool to vet open-source software packages for "risky" attributes + that make them vulnerable to supply chain attacks. This is the tool behind our large-scale security analysis + platform Packj.dev that continuously vets packages and provides free reports. diff --git a/data/tools/paprika.yml b/data/tools/paprika.yml new file mode 100644 index 0000000000..f0074dd679 --- /dev/null +++ b/data/tools/paprika.yml @@ -0,0 +1,11 @@ +name: paprika +categories: + - linter +tags: + - mobile +license: GNU Affero General Public License v3.0 +types: + - cli +source: 'https://github.com/GeoffreyHecht/paprika' +homepage: 'https://github.com/GeoffreyHecht/paprika' +description: A toolkit to detect some code smells in analyzed Android applications. diff --git a/data/tools/parallel-lint.yml b/data/tools/parallel-lint.yml new file mode 100644 index 0000000000..1cd1954a48 --- /dev/null +++ b/data/tools/parallel-lint.yml @@ -0,0 +1,13 @@ +name: parallel-lint +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: 'https://github.com/php-parallel-lint/PHP-Parallel-Lint' +homepage: 'https://github.com/php-parallel-lint/PHP-Parallel-Lint' +description: >- + This tool checks syntax of PHP files faster than serial check with a fancier + output. diff --git a/data/tools/parasoft.yml b/data/tools/parasoft.yml new file mode 100644 index 0000000000..2db100283e --- /dev/null +++ b/data/tools/parasoft.yml @@ -0,0 +1,19 @@ +name: parasoft +categories: + - linter +tags: + - c + - cpp + - csharp + - javascript +license: proprietary +types: + - service +homepage: 'https://www.parasoft.com/' +pricing: https://www.parasoft.com/contact/ +plans: + free: false + oss: false +description: >- + Automated Software Testing Solutions for unit-, API-, and web UI testing. + Complies with MISRA, OWASP, and others. diff --git a/data/tools/parker.yml b/data/tools/parker.yml new file mode 100644 index 0000000000..b974b4339a --- /dev/null +++ b/data/tools/parker.yml @@ -0,0 +1,11 @@ +name: Parker +categories: + - linter +tags: + - css +license: Other +types: + - cli +source: 'https://github.com/katiefenn/parker' +homepage: 'https://github.com/katiefenn/parker' +description: Stylesheet analysis tool. diff --git a/data/tools/parse.yml b/data/tools/parse.yml new file mode 100644 index 0000000000..fb045a20f0 --- /dev/null +++ b/data/tools/parse.yml @@ -0,0 +1,11 @@ +name: Parse +categories: + - linter +tags: + - php +license: MIT +types: + - cli +source: 'https://github.com/psecio/parse' +homepage: 'https://github.com/psecio/parse' +description: A Static Security Scanner. diff --git a/data/tools/pascal-analyzer.yml b/data/tools/pascal-analyzer.yml new file mode 100644 index 0000000000..3ccdd11f4c --- /dev/null +++ b/data/tools/pascal-analyzer.yml @@ -0,0 +1,13 @@ +name: Pascal Analyzer +categories: +- linter +tags: +- delphi +license: proprietary +types: +- cli +homepage: https://peganza.com/products_pal.html +description: >- + A static code analysis tool with numerous reports. A free _Lite_ version is available + with limited reporting. +pricing: https://peganza.com/orders.html diff --git a/data/tools/pascal-expert.yml b/data/tools/pascal-expert.yml new file mode 100644 index 0000000000..849c63d5ed --- /dev/null +++ b/data/tools/pascal-expert.yml @@ -0,0 +1,12 @@ +name: Pascal Expert +categories: + - linter +tags: + - delphi +license: proprietary +types: + - cli +homepage: 'https://peganza.com/products_pex.html' +description: >- + IDE plugin for code analysis. Includes a subset of Pascal Analyzer reporting + capabilities and is available for Delphi versions 2007 and later. diff --git a/data/tools/pc-lint.yml b/data/tools/pc-lint.yml new file mode 100644 index 0000000000..1ffae5c6c9 --- /dev/null +++ b/data/tools/pc-lint.yml @@ -0,0 +1,14 @@ +name: PC-lint +categories: + - linter +tags: + - c + - cpp +license: proprietary +types: + - cli +homepage: https://pclintplus.com/ +description: >- + Static analysis for C/C++. Runs natively under Windows/Linux/MacOS. + Analyzes code for virtually any platform, supporting C11/C18 and C++17. +pricing: https://pclintplus.com/pricing/ diff --git a/data/tools/pdepend.yml b/data/tools/pdepend.yml new file mode 100644 index 0000000000..a93e556b55 --- /dev/null +++ b/data/tools/pdepend.yml @@ -0,0 +1,11 @@ +name: pdepend +categories: + - linter +tags: + - php +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/pdepend/pdepend' +homepage: 'https://pdepend.org' +description: Calculates software metrics like cyclomatic complexity for PHP code. diff --git a/data/tools/pelusa.yml b/data/tools/pelusa.yml new file mode 100644 index 0000000000..923fe9bad6 --- /dev/null +++ b/data/tools/pelusa.yml @@ -0,0 +1,11 @@ +name: pelusa +categories: + - linter +tags: + - ruby +license: MIT +types: + - cli +source: 'https://github.com/codegram/pelusa' +homepage: 'https://github.com/codegram/pelusa' +description: Static analysis Lint-type tool to improve your OO Ruby code. diff --git a/data/tools/perlanalyzer.yml b/data/tools/perlanalyzer.yml new file mode 100644 index 0000000000..87b091b44d --- /dev/null +++ b/data/tools/perlanalyzer.yml @@ -0,0 +1,17 @@ +name: Perl::Analyzer +categories: + - linter +tags: + - perl +license: Artistic License (2.0) +types: + - cli + - service + - ide-plugin +source: 'https://github.com/technix/Perl-Analyzer' +homepage: 'https://technix.github.io/Perl-Analyzer/' +description: >- + Perl-Analyzer is a set of programs and modules that allow users to analyze and visualize Perl + codebases by providing information about namespaces and their relations, dependencies, + inheritance, and methods implemented, inherited, and redefined in packages, + as well as calls to methods from parent packages via SUPER. diff --git a/data/tools/perlcritic.yml b/data/tools/perlcritic.yml new file mode 100644 index 0000000000..e0fd9fa169 --- /dev/null +++ b/data/tools/perlcritic.yml @@ -0,0 +1,11 @@ +name: 'Perl::Critic' +categories: + - linter +tags: + - perl +license: GPL v2 +types: + - cli +source: 'https://metacpan.org/release/Perl-Critic/source/lib/Perl/Critic.pm' +homepage: 'https://metacpan.org/pod/Perl::Critic' +description: Critique Perl source code for best-practices. diff --git a/data/tools/perltidy.yml b/data/tools/perltidy.yml new file mode 100644 index 0000000000..0790d14d4d --- /dev/null +++ b/data/tools/perltidy.yml @@ -0,0 +1,21 @@ +name: perltidy +tags: + - perl +categories: + - formatter +license: GPL-2.0 license +types: + - cli +source: "https://github.com/perltidy/perltidy" +homepage: "https://perltidy.sourceforge.net/" +description: >- + Perltidy is a Perl script which indents and reformats Perl scripts to make + them easier to read. + + The formatting can be controlled with command line parameters. The default + parameter settings approximately follow the suggestions in the Perl Style + Guide. + + Besides reformatting scripts, Perltidy can be a great help in tracking down + errors with missing or extra braces, parentheses, and square brackets because + it is very good at localizing errors. diff --git a/data/tools/pfff.yml b/data/tools/pfff.yml new file mode 100644 index 0000000000..4b60925794 --- /dev/null +++ b/data/tools/pfff.yml @@ -0,0 +1,25 @@ +name: pfff +categories: + - formatter +tags: + - c + - cpp + - csharp + - css + - erlang + - haskell + - html + - java + - javascript + - php + - python + - rust +deprecated: true +license: Other +types: + - cli +source: 'https://github.com/returntocorp/pfff' +homepage: 'https://github.com/facebookarchive/pfff/wiki/Main' +description: >- + Facebook's tools for code analysis, visualizations, or style-preserving source + transformation for many languages. diff --git a/data/tools/pgspot.yml b/data/tools/pgspot.yml new file mode 100644 index 0000000000..19479efcc7 --- /dev/null +++ b/data/tools/pgspot.yml @@ -0,0 +1,13 @@ +name: pgspot +categories: + - linter +tags: + - sql +license: PostgreSQL License +types: + - cli +source: 'https://github.com/timescale/pgspot' +homepage: 'https://github.com/timescale/pgspot' +description: >- + Spot vulnerabilities in postgres extension scripts. + Finds unsafe search_path usage and unsafe object creation in PostgreSQL extension scripts or any other PostgreSQL SQL code. diff --git a/data/tools/phan.yml b/data/tools/phan.yml new file mode 100644 index 0000000000..265e84c474 --- /dev/null +++ b/data/tools/phan.yml @@ -0,0 +1,11 @@ +name: phan +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: 'https://github.com/etsy/phan' +homepage: 'https://github.com/phan/phan/wiki' +description: A modern static analyzer from etsy. \ No newline at end of file diff --git a/data/tools/phasar.yml b/data/tools/phasar.yml new file mode 100644 index 0000000000..946a3c0eca --- /dev/null +++ b/data/tools/phasar.yml @@ -0,0 +1,14 @@ +name: Phasar +categories: + - linter +tags: + - c + - cpp +license: Other +types: + - cli +source: 'https://github.com/secure-software-engineering/phasar' +homepage: 'https://phasar.org' +description: >- + A LLVM-based static analysis framework which comes with a taint and type state + analysis. diff --git a/data/tools/php-architecture-tester.yml b/data/tools/php-architecture-tester.yml new file mode 100644 index 0000000000..c3cecba6d5 --- /dev/null +++ b/data/tools/php-architecture-tester.yml @@ -0,0 +1,11 @@ +name: PHP Architecture Tester +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/carlosas/phpat' +homepage: 'https://github.com/carlosas/phpat' +description: Easy to use architecture testing tool for PHP. diff --git a/data/tools/php-assumptions.yml b/data/tools/php-assumptions.yml new file mode 100644 index 0000000000..5743ec9183 --- /dev/null +++ b/data/tools/php-assumptions.yml @@ -0,0 +1,11 @@ +name: PHP Assumptions +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/rskuipers/php-assumptions' +homepage: 'https://github.com/rskuipers/php-assumptions' +description: Checks for weak assumptions. diff --git a/data/tools/php-coding-standards-fixer.yml b/data/tools/php-coding-standards-fixer.yml new file mode 100644 index 0000000000..1651338655 --- /dev/null +++ b/data/tools/php-coding-standards-fixer.yml @@ -0,0 +1,13 @@ +name: PHP Coding Standards Fixer +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/FriendsOfPHP/PHP-CS-Fixer' +homepage: 'https://cs.symfony.com' +description: >- + Fixes your code according to standards like PSR-1, PSR-2, and the Symfony + standard. diff --git a/data/tools/php-insights.yml b/data/tools/php-insights.yml new file mode 100644 index 0000000000..8056bb889b --- /dev/null +++ b/data/tools/php-insights.yml @@ -0,0 +1,13 @@ +name: PHP Insights +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: "https://github.com/nunomaduro/phpinsights" +homepage: "https://github.com/nunomaduro/phpinsights" +description: >- + Instant PHP quality checks from your console. Analysis of code quality and + coding style as well as overview of code architecture and its complexity. diff --git a/data/tools/php-inspections-ea-extended.yml b/data/tools/php-inspections-ea-extended.yml new file mode 100644 index 0000000000..afa9de9029 --- /dev/null +++ b/data/tools/php-inspections-ea-extended.yml @@ -0,0 +1,11 @@ +name: Php Inspections (EA Extended) +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: 'https://github.com/kalessil/phpinspectionsea' +homepage: 'https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-' +description: A Static Code Analyzer for PHP. diff --git a/data/tools/php-parser.yml b/data/tools/php-parser.yml new file mode 100644 index 0000000000..ab1eb61baf --- /dev/null +++ b/data/tools/php-parser.yml @@ -0,0 +1,11 @@ +name: PHP-Parser +categories: + - linter +tags: + - php +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/nikic/PHP-Parser' +homepage: 'https://github.com/nikic/PHP-Parser' +description: A PHP parser written in PHP. diff --git a/data/tools/php-refactoring-browser.yml b/data/tools/php-refactoring-browser.yml new file mode 100644 index 0000000000..33635bc437 --- /dev/null +++ b/data/tools/php-refactoring-browser.yml @@ -0,0 +1,11 @@ +name: PHP Refactoring Browser +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/QafooLabs/php-refactoring-browser' +homepage: 'https://qafoolabs.github.io/php-refactoring-browser' +description: Refactoring helper. diff --git a/data/tools/php-semantic-versioning-checker.yml b/data/tools/php-semantic-versioning-checker.yml new file mode 100644 index 0000000000..b87c92b94d --- /dev/null +++ b/data/tools/php-semantic-versioning-checker.yml @@ -0,0 +1,11 @@ +name: PHP Semantic Versioning Checker +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/tomzx/php-semver-checker' +homepage: 'https://github.com/tomzx/php-semver-checker' +description: Suggests a next version according to semantic versioning. diff --git a/data/tools/php-speller.yml b/data/tools/php-speller.yml new file mode 100644 index 0000000000..de6ae7dbc2 --- /dev/null +++ b/data/tools/php-speller.yml @@ -0,0 +1,11 @@ +name: php-speller +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/mekras/php-speller' +homepage: 'https://github.com/mekras/php-speller' +description: PHP spell check library. diff --git a/data/tools/php-token-reflection.yml b/data/tools/php-token-reflection.yml new file mode 100644 index 0000000000..d7f2b1dd82 --- /dev/null +++ b/data/tools/php-token-reflection.yml @@ -0,0 +1,11 @@ +name: PHP-Token-Reflection +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: 'https://github.com/Andrewsville/PHP-Token-Reflection' +homepage: 'https://github.com/Andrewsville/PHP-Token-Reflection' +description: Library emulating the PHP internal reflection. diff --git a/data/tools/php7cc.yml b/data/tools/php7cc.yml new file mode 100644 index 0000000000..a5d4b3b8ea --- /dev/null +++ b/data/tools/php7cc.yml @@ -0,0 +1,12 @@ +name: php7cc +categories: + - linter +tags: + - php +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/sstalle/php7cc' +homepage: 'https://github.com/sstalle/php7cc' +description: PHP 7 Compatibility Checker. diff --git a/data/tools/php7mar.yml b/data/tools/php7mar.yml new file mode 100644 index 0000000000..2659534110 --- /dev/null +++ b/data/tools/php7mar.yml @@ -0,0 +1,12 @@ +name: php7mar +categories: + - linter +tags: + - php +deprecated: true +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/Alexia/php7mar' +homepage: 'https://github.com/Alexia/php7mar' +description: Assist developers in porting their code quickly to PHP 7. diff --git a/data/tools/php_codesniffer.yml b/data/tools/php_codesniffer.yml new file mode 100644 index 0000000000..2f013d288b --- /dev/null +++ b/data/tools/php_codesniffer.yml @@ -0,0 +1,11 @@ +name: PHP_CodeSniffer +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: "https://github.com/squizlabs/PHP_CodeSniffer" +homepage: "https://pear.php.net/package/PHP_CodeSniffer" +description: Detects violations of a defined set of coding standards. diff --git a/data/tools/phpca.yml b/data/tools/phpca.yml new file mode 100644 index 0000000000..1bd0c006d8 --- /dev/null +++ b/data/tools/phpca.yml @@ -0,0 +1,11 @@ +name: phpca +categories: + - linter +tags: + - php +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/wapmorgan/PhpCodeAnalyzer' +homepage: 'https://github.com/wapmorgan/PhpCodeAnalyzer' +description: Finds usage of non-built-in extensions. diff --git a/data/tools/phpcpd.yml b/data/tools/phpcpd.yml new file mode 100644 index 0000000000..2329e183aa --- /dev/null +++ b/data/tools/phpcpd.yml @@ -0,0 +1,11 @@ +name: phpcpd +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: 'https://github.com/sebastianbergmann/phpcpd' +homepage: 'https://github.com/sebastianbergmann/phpcpd' +description: Copy/Paste Detector for PHP code. diff --git a/data/tools/phpdcd.yml b/data/tools/phpdcd.yml new file mode 100644 index 0000000000..4529a85bf0 --- /dev/null +++ b/data/tools/phpdcd.yml @@ -0,0 +1,12 @@ +name: phpdcd +categories: + - linter +tags: + - php +deprecated: true +license: Other +types: + - cli +source: 'https://github.com/sebastianbergmann/phpdcd' +homepage: 'https://github.com/sebastianbergmann/phpdcd' +description: Dead Code Detector (DCD) for PHP code. diff --git a/data/tools/phpdependencyanalysis.yml b/data/tools/phpdependencyanalysis.yml new file mode 100644 index 0000000000..be1bace0c2 --- /dev/null +++ b/data/tools/phpdependencyanalysis.yml @@ -0,0 +1,11 @@ +name: PhpDependencyAnalysis +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/mamuz/PhpDependencyAnalysis' +homepage: 'https://mamuz.github.io/PhpDependencyAnalysis' +description: Builds a dependency graph for a project. diff --git a/data/tools/phpdeprecationdetector.yml b/data/tools/phpdeprecationdetector.yml new file mode 100644 index 0000000000..40c73a6bd8 --- /dev/null +++ b/data/tools/phpdeprecationdetector.yml @@ -0,0 +1,14 @@ +name: PhpDeprecationDetector +categories: + - linter +tags: + - php +license: BSD-3-Clause +types: + - cli +source: 'https://github.com/wapmorgan/PhpDeprecationDetector' +homepage: 'https://github.com/wapmorgan/PhpDeprecationDetector' +description: >- + Analyzer of PHP code to search issues with deprecated functionality in newer interpreter versions. + It finds removed objects (functions, variables, constants and ini-directives), + deprecated functions functionality, and usage of forbidden names or tricks (e.g. reserved identifiers in newer versions). diff --git a/data/tools/phpdoc-to-typehint.yml b/data/tools/phpdoc-to-typehint.yml new file mode 100644 index 0000000000..f9254e9be0 --- /dev/null +++ b/data/tools/phpdoc-to-typehint.yml @@ -0,0 +1,13 @@ +name: phpdoc-to-typehint +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/dunglas/phpdoc-to-typehint' +homepage: 'https://github.com/dunglas/phpdoc-to-typehint' +description: >- + Add scalar type hints and return types to existing PHP projects using PHPDoc + annotations. diff --git a/data/tools/phpdocumentor.yml b/data/tools/phpdocumentor.yml new file mode 100644 index 0000000000..e408666a43 --- /dev/null +++ b/data/tools/phpdocumentor.yml @@ -0,0 +1,11 @@ +name: phpDocumentor +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/phpDocumentor/phpDocumentor' +homepage: 'https://www.phpdoc.org' +description: Analyzes PHP source code to generate documentation. diff --git a/data/tools/phploc.yml b/data/tools/phploc.yml new file mode 100644 index 0000000000..ab1ebc73d3 --- /dev/null +++ b/data/tools/phploc.yml @@ -0,0 +1,13 @@ +name: phploc +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: 'https://github.com/sebastianbergmann/phploc' +homepage: 'https://github.com/sebastianbergmann/phploc' +description: >- + A tool for quickly measuring the size and analyzing the structure of a PHP + project. diff --git a/data/tools/phpmd.yml b/data/tools/phpmd.yml new file mode 100644 index 0000000000..dbd39fd993 --- /dev/null +++ b/data/tools/phpmd.yml @@ -0,0 +1,11 @@ +name: PHPMD +categories: + - linter +tags: + - php +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/phpmd/phpmd' +homepage: 'https://phpmd.org' +description: Finds possible bugs in your code. diff --git a/data/tools/phpmetrics.yml b/data/tools/phpmetrics.yml new file mode 100644 index 0000000000..641f0300e5 --- /dev/null +++ b/data/tools/phpmetrics.yml @@ -0,0 +1,11 @@ +name: PhpMetrics +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/phpmetrics/PhpMetrics' +homepage: 'http://www.phpmetrics.org' +description: Calculates and visualizes various code quality metrics. diff --git a/data/tools/phpmnd.yml b/data/tools/phpmnd.yml new file mode 100644 index 0000000000..185bb4779b --- /dev/null +++ b/data/tools/phpmnd.yml @@ -0,0 +1,11 @@ +name: phpmnd +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/povils/phpmnd' +homepage: 'https://github.com/povils/phpmnd' +description: Helps to detect magic numbers. diff --git a/data/tools/phpqa-jakzal.yml b/data/tools/phpqa-jakzal.yml new file mode 100644 index 0000000000..03e362df3d --- /dev/null +++ b/data/tools/phpqa-jakzal.yml @@ -0,0 +1,11 @@ +name: phpqa - jakzal +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/jakzal/phpqa' +homepage: 'https://github.com/jakzal/phpqa' +description: Many tools for PHP static analysis in one container. diff --git a/data/tools/phpqa-jmolivas.yml b/data/tools/phpqa-jmolivas.yml new file mode 100644 index 0000000000..f435a95df9 --- /dev/null +++ b/data/tools/phpqa-jmolivas.yml @@ -0,0 +1,11 @@ +name: phpqa - jmolivas +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/jmolivas/phpqa' +homepage: 'https://github.com/jmolivas/phpqa' +description: PHPQA all-in-one Analyzer CLI tool. diff --git a/data/tools/phpqa.yml b/data/tools/phpqa.yml new file mode 100644 index 0000000000..0e12ced569 --- /dev/null +++ b/data/tools/phpqa.yml @@ -0,0 +1,13 @@ +name: PHPQA +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/EdgedesignCZ/phpqa' +homepage: 'https://edgedesigncz.github.io/phpqa' +description: >- + A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, + phpmetrics). diff --git a/data/tools/phpsa.yml b/data/tools/phpsa.yml new file mode 100644 index 0000000000..9cf95371f0 --- /dev/null +++ b/data/tools/phpsa.yml @@ -0,0 +1,11 @@ +name: phpsa +categories: + - linter +tags: + - php +license: Other +types: + - cli +source: 'https://github.com/ovr/phpsa' +homepage: 'https://github.com/ovr/phpsa' +description: Static analysis tool for PHP. diff --git a/data/tools/phpstan.yml b/data/tools/phpstan.yml new file mode 100644 index 0000000000..e9d3256597 --- /dev/null +++ b/data/tools/phpstan.yml @@ -0,0 +1,16 @@ +name: PHPStan +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/phpstan/phpstan' +homepage: 'https://phpstan.org' +resources: + - title: Measure PHP Code Quality With Static Analysis Using PHPStan + url: https://www.youtube.com/watch?v=OiS2xGVWEa0 +demos: + - https://phpstan.org/try +description: PHP Static Analysis Tool - discover bugs in your code without running it! diff --git a/data/tools/pip-audit.yml b/data/tools/pip-audit.yml new file mode 100644 index 0000000000..d0c7da0231 --- /dev/null +++ b/data/tools/pip-audit.yml @@ -0,0 +1,17 @@ +name: pip-audit +categories: + - linter +tags: + - python + - security +license: Apache License 2.0 +types: + - cli +source: "https://github.com/pypa/pip-audit" +homepage: "https://github.com/pypa/pip-audit" +description: >- + Tool for scanning Python packages for known vulnerabilities. Developed by + the Python Packaging Authority (PyPA) and supported by Trail of Bits and + Google. Scans Python environments and requirements files to identify + vulnerable packages and suggests remediation. Supports GitHub Actions, + pre-commit hooks, and multiple vulnerability service integrations. \ No newline at end of file diff --git a/data/tools/pixee.yml b/data/tools/pixee.yml new file mode 100644 index 0000000000..ac3d158ee1 --- /dev/null +++ b/data/tools/pixee.yml @@ -0,0 +1,15 @@ +name: Pixee +categories: +tags: + - java + - python +license: proprietary +types: + - service +homepage: 'https://pixee.ai' +description: >- + Pixeebot finds security and code quality issues in your code and creates merge-ready pull requests with recommended fixes. +pricing: 'https://www.pixee.ai/pricing' +plans: + free: true + oss: false diff --git a/data/tools/plato.yml b/data/tools/plato.yml new file mode 100644 index 0000000000..4b9771889c --- /dev/null +++ b/data/tools/plato.yml @@ -0,0 +1,12 @@ +name: plato +categories: + - linter +tags: + - javascript +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/es-analysis/plato' +homepage: 'https://github.com/es-analysis/plato' +description: Visualize JavaScript source complexity. diff --git a/data/tools/pmd.yml b/data/tools/pmd.yml new file mode 100644 index 0000000000..f6fcfdc550 --- /dev/null +++ b/data/tools/pmd.yml @@ -0,0 +1,17 @@ +name: PMD +categories: + - linter +tags: + - apex + - java + - javascript + - plsql + - scala + - xml + - visualforce +license: Other +types: + - cli +source: "https://github.com/pmd/pmd" +homepage: "https://pmd.github.io" +description: "A source code analyzer for Java, Salesforce Apex, Javascript, PLSQL, XML, XSL and others." diff --git a/data/tools/polymer-analyzer.yml b/data/tools/polymer-analyzer.yml new file mode 100644 index 0000000000..ca8d28e322 --- /dev/null +++ b/data/tools/polymer-analyzer.yml @@ -0,0 +1,12 @@ +name: Polymer-analyzer +categories: + - linter +tags: + - html + - javascript +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://github.com/Polymer/tools/tree/master/packages/analyzer' +homepage: 'https://github.com/Polymer/tools/tree/master/packages/analyzer' +description: A static analysis framework for Web Components. diff --git a/data/tools/polyspace-bug-finder.yml b/data/tools/polyspace-bug-finder.yml new file mode 100644 index 0000000000..9e972276a6 --- /dev/null +++ b/data/tools/polyspace-bug-finder.yml @@ -0,0 +1,14 @@ +name: Polyspace Bug Finder +categories: +- linter +tags: +- c +- cpp +license: proprietary +types: +- cli +homepage: https://www.mathworks.com/products/polyspace-bug-finder.html +description: >- + Identifies run-time errors, concurrency issues, security vulnerabilities, and other + defects in C and C++ embedded software. +pricing: https://www.mathworks.com/company/aboutus/contact_us/req_quote.html diff --git a/data/tools/polyspace-code-prover.yml b/data/tools/polyspace-code-prover.yml new file mode 100644 index 0000000000..22c677d70c --- /dev/null +++ b/data/tools/polyspace-code-prover.yml @@ -0,0 +1,14 @@ +name: Polyspace Code Prover +categories: + - linter +tags: + - c + - cpp +license: proprietary +types: + - cli +homepage: 'https://www.mathworks.com/products/polyspace-code-prover.html' +description: >- + Provide code verification that proves the absence of overflow, divide-by-zero, + out-of-bounds array access, and certain other run-time errors in C and C++ + source code. diff --git a/data/tools/polyspace-for-ada.yml b/data/tools/polyspace-for-ada.yml new file mode 100644 index 0000000000..ae3acea92c --- /dev/null +++ b/data/tools/polyspace-for-ada.yml @@ -0,0 +1,12 @@ +name: Polyspace for Ada +categories: + - linter +tags: + - ada +license: proprietary +types: + - cli +homepage: 'https://www.mathworks.com/products/polyspace-ada.html' +description: >- + Provide code verification that proves the absence of overflow, divide-by-zero, + out-of-bounds array access, and certain other run-time errors in source code. diff --git a/data/tools/portlint.yml b/data/tools/portlint.yml new file mode 100644 index 0000000000..9b27a39499 --- /dev/null +++ b/data/tools/portlint.yml @@ -0,0 +1,14 @@ +name: portlint +categories: + - linter +tags: + - buildtool + - make +license: BSD License +types: + - cli +source: >- + https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports +homepage: >- + https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports +description: A verifier for FreeBSD and DragonFlyBSD port directories. diff --git a/data/tools/postcss.yml b/data/tools/postcss.yml new file mode 100644 index 0000000000..81bee77f55 --- /dev/null +++ b/data/tools/postcss.yml @@ -0,0 +1,14 @@ +name: PostCSS +categories: + - linter +tags: + - css +license: MIT License +types: + - cli +source: 'https://github.com/postcss/postcss' +homepage: 'https://postcss.org' +description: >- + A tool for transforming styles with JS plugins. These plugins can lint your + CSS, support variables and mixins, transpile future CSS syntax, inline images, + and more. diff --git a/data/tools/prae.yml b/data/tools/prae.yml new file mode 100644 index 0000000000..ab19eaefc4 --- /dev/null +++ b/data/tools/prae.yml @@ -0,0 +1,14 @@ + +name: prae +categories: + - linter +tags: + - rust +license: MIT License +types: + - cli +source: 'https://github.com/teenjuna/prae' +homepage: 'https://github.com/teenjuna/prae' +description: >- + Provides a convenient macro that allows you to generate type wrappers + that promise to always uphold arbitrary invariants that you specified. diff --git a/data/tools/pre-commit.yml b/data/tools/pre-commit.yml new file mode 100644 index 0000000000..4873f919a7 --- /dev/null +++ b/data/tools/pre-commit.yml @@ -0,0 +1,14 @@ +name: pre-commit +categories: + - linter +tags: + - c + - cpp + - java + - php +license: MIT License +types: + - cli +source: 'https://github.com/pre-commit/pre-commit' +homepage: 'https://pre-commit.com' +description: A framework for managing and maintaining multi-language pre-commit hooks. diff --git a/data/tools/prealloc.yml b/data/tools/prealloc.yml new file mode 100644 index 0000000000..2e5af67fdc --- /dev/null +++ b/data/tools/prealloc.yml @@ -0,0 +1,11 @@ +name: prealloc +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/alexkohler/prealloc' +homepage: 'https://github.com/alexkohler/prealloc' +description: Finds slice declarations that could potentially be preallocated. diff --git a/data/tools/precaution.yml b/data/tools/precaution.yml new file mode 100644 index 0000000000..7884fd7cce --- /dev/null +++ b/data/tools/precaution.yml @@ -0,0 +1,27 @@ +name: Precaution +categories: + - linter +tags: + - ci + - go + - java + - python + - security +license: Business Source License 1.1 +types: + - cli + - service +source: 'https://github.com/securesauce/precli' +homepage: 'https://www.securesauce.dev/' +resources: + - title: Introducing Precaution + url: https://blog.securesauce.dev/introducing-precaution +plans: + oss: true + free: true +pricing: https://www.securesauce.dev/ +description: >- + Precaution is a static analysis security tool (SAST) designed + to find potentially critical vulnerabilities in source code prior + to production. It is available as a CLI, GitHub Action, and GitHub + App. diff --git a/data/tools/prettier.yml b/data/tools/prettier.yml new file mode 100644 index 0000000000..a6bb9f0afe --- /dev/null +++ b/data/tools/prettier.yml @@ -0,0 +1,24 @@ +name: Prettier +categories: + - formatter +tags: + - html + - javascript + - typescript +license: MIT License +types: + - cli +source: "https://github.com/prettier/prettier" +homepage: "https://prettier.io" +description: An opinionated code formatter. +resources: + - title: Code Formatting with Prettier in Visual Studio Code + url: https://www.youtube.com/watch?v=h3PJjP0nE98 + - title: VSCode ESLint, Prettier & Airbnb Style Guide Setup + url: https://www.youtube.com/watch?v=SydnKbGc7W8 +demos: + - https://prettier.io/playground +reviews: + - https://plugins.jetbrains.com/plugin/10456-prettier/reviews + - https://www.producthunt.com/products/prettier/reviews + - https://stackshare.io/prettier diff --git a/data/tools/primitive-erlang-security-tool-pest.yml b/data/tools/primitive-erlang-security-tool-pest.yml new file mode 100644 index 0000000000..0a15fc4c33 --- /dev/null +++ b/data/tools/primitive-erlang-security-tool-pest.yml @@ -0,0 +1,13 @@ +name: Primitive Erlang Security Tool (PEST) +categories: + - linter +tags: + - erlang +license: MIT License +types: + - cli +source: 'https://github.com/okeuday/pest' +homepage: 'https://github.com/okeuday/pest' +description: >- + A tool to do a basic scan of Erlang source code and report any function calls + that may cause Erlang source code to be insecure. diff --git a/data/tools/progpilot.yml b/data/tools/progpilot.yml new file mode 100644 index 0000000000..423c620e77 --- /dev/null +++ b/data/tools/progpilot.yml @@ -0,0 +1,11 @@ +name: Progpilot +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/designsecurity/progpilot' +homepage: 'https://github.com/designsecurity/progpilot' +description: A static analysis tool for security purposes. diff --git a/data/tools/project-wallace-css-analyzer.yml b/data/tools/project-wallace-css-analyzer.yml new file mode 100644 index 0000000000..c7f3ada361 --- /dev/null +++ b/data/tools/project-wallace-css-analyzer.yml @@ -0,0 +1,11 @@ +name: Project Wallace CSS Analyzer +categories: + - linter +tags: + - css +license: MIT License +types: + - cli +source: 'https://github.com/projectwallace/css-analyzer' +homepage: 'https://www.projectwallace.com' +description: 'Analytics for CSS, part of [Project Wallace](https://www.projectwallace.com).' diff --git a/data/tools/promformat.yml b/data/tools/promformat.yml new file mode 100644 index 0000000000..6efc67bfcd --- /dev/null +++ b/data/tools/promformat.yml @@ -0,0 +1,12 @@ +name: promformat +categories: + - formatter +tags: + - prometheus +license: GPL-3.0 +types: + - cli +source: "https://github.com/facetoe/promformat" +homepage: "https://github.com/facetoe/promformat" +description: >- + Promformat is a PromQL formatter written in Python. diff --git a/data/tools/promval.yml b/data/tools/promval.yml new file mode 100644 index 0000000000..6166a45f82 --- /dev/null +++ b/data/tools/promval.yml @@ -0,0 +1,13 @@ +name: promval +categories: + - linter +tags: + - prometheus +license: MIT +types: + - cli +source: "https://github.com/facetoe/promval" +homepage: "https://github.com/facetoe/promval" +description: >- + PromQL validator written in Python. + It can be used to validate that PromQL expressions are written as expected. diff --git a/data/tools/pronto.yml b/data/tools/pronto.yml new file mode 100644 index 0000000000..885731e832 --- /dev/null +++ b/data/tools/pronto.yml @@ -0,0 +1,20 @@ +name: Pronto +categories: + - linter +tags: + - c + - ci + - cpp + - elixir + - java + - javascript + - php + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/prontolabs/pronto' +homepage: 'https://github.com/prontolabs/pronto' +description: >- + Quick automated code review of your changes. Supports more than 40 runners for + various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more. diff --git a/data/tools/proselint.yml b/data/tools/proselint.yml new file mode 100644 index 0000000000..f23460065e --- /dev/null +++ b/data/tools/proselint.yml @@ -0,0 +1,11 @@ +name: proselint +categories: + - linter +tags: + - writing +license: BSD-3-Clause +types: + - cli +source: 'https://github.com/amperser/proselint' +homepage: 'https://github.com/amperser/proselint' +description: A linter for English prose with a focus on writing style instead of grammar. diff --git a/data/tools/prospector.yml b/data/tools/prospector.yml new file mode 100644 index 0000000000..30c8fd6388 --- /dev/null +++ b/data/tools/prospector.yml @@ -0,0 +1,12 @@ +name: prospector +categories: + - meta +tags: + - meta + - python +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/PyCQA/prospector' +homepage: 'https://github.com/PyCQA/prospector' +description: 'A wrapper around `pylint`, `pep8`, `mccabe` and others.' diff --git a/data/tools/protolint.yml b/data/tools/protolint.yml new file mode 100644 index 0000000000..553b480cc2 --- /dev/null +++ b/data/tools/protolint.yml @@ -0,0 +1,11 @@ +name: protolint +categories: + - linter +tags: + - protobuf +license: MIT License +types: + - cli +source: 'https://github.com/yoheimuta/protolint' +homepage: 'https://github.com/yoheimuta/protolint' +description: Pluggable linter and fixer to enforce Protocol Buffer style and conventions. diff --git a/data/tools/prusti.yml b/data/tools/prusti.yml new file mode 100644 index 0000000000..7312ce0b8e --- /dev/null +++ b/data/tools/prusti.yml @@ -0,0 +1,14 @@ +name: Prusti +categories: + - linter +tags: + - rust +license: Other +types: + - cli +source: 'https://github.com/viperproject/prusti-dev' +homepage: 'https://www.pm.inf.ethz.ch/research/prusti.html' +description: >- + A static verifier for Rust, based on the Viper verification infrastructure. By + default Prusti verifies absence of panics by proving that statements such as + unreachable!() and panic!() are unreachable. diff --git a/data/tools/psalm.yml b/data/tools/psalm.yml new file mode 100644 index 0000000000..8e68543ab6 --- /dev/null +++ b/data/tools/psalm.yml @@ -0,0 +1,16 @@ +name: Psalm +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/vimeo/psalm' +homepage: 'https://psalm.dev' +resources: + - title: Try it Tuesday - PHP Static Analysis Tool Psalm + url: https://www.youtube.com/watch?v=ZxXw5Fkp9R8 +demos: + - https://psalm.dev/r/dcb13e702f +description: Static analysis tool for finding type errors in PHP applications. diff --git a/data/tools/ptpm.yml b/data/tools/ptpm.yml new file mode 100644 index 0000000000..80d57c248c --- /dev/null +++ b/data/tools/ptpm.yml @@ -0,0 +1,20 @@ +name: PT.PM +categories: + - linter +tags: + - csharp + - java + - javascript + - php + - plsql + - tsql +deprecated: true +license: Other +types: + - cli +source: 'https://github.com/PositiveTechnologies/PT.PM' +homepage: 'https://github.com/PositiveTechnologies/PT.PM' +description: >- + An engine for searching patterns in the source code, based on Unified AST or + UST. At present time C#, Java, PHP, PL/SQL, T-SQL, and JavaScript are + supported. Patterns can be described within the code or using a DSL. diff --git a/data/tools/ptsecurity.yml b/data/tools/ptsecurity.yml new file mode 100644 index 0000000000..0af08fff39 --- /dev/null +++ b/data/tools/ptsecurity.yml @@ -0,0 +1,15 @@ +name: PT Application Inspector +categories: + - linter +tags: + - security +license: proprietary +types: + - service +homepage: 'https://www.ptsecurity.com' +description: >- + Identifies code flaws and detects vulnerabilities to prevent web attacks. + Demonstrates remote code execution by presenting possible exploits. +resources: + - title: Introduction video + url: https://www.youtube.com/watch?v=gtFH6tV2dlM diff --git a/data/tools/pullrequest.yml b/data/tools/pullrequest.yml new file mode 100644 index 0000000000..9dcebd39e0 --- /dev/null +++ b/data/tools/pullrequest.yml @@ -0,0 +1,13 @@ +name: PullRequest +categories: +- linter +tags: +- ci +license: proprietary +types: +- service +homepage: https://www.hackerone.com/product/code +description: >- + Code review as a service with built-in static analysis. Increase velocity and reduce + technical debt through quality code review by expert engineers backed by best-in-class + automation. diff --git a/data/tools/puma-scan.yml b/data/tools/puma-scan.yml new file mode 100644 index 0000000000..fc056c97a5 --- /dev/null +++ b/data/tools/puma-scan.yml @@ -0,0 +1,14 @@ +name: Puma Scan +categories: + - linter +tags: + - csharp +license: Mozilla Public License 2.0 +types: + - ide-plugin +source: 'https://github.com/pumasecurity/puma-scan' +homepage: 'https://pumasecurity.io' +description: >- + Puma Scan provides real time secure code analysis for common vulnerabilities + (XSS, SQLi, CSRF, LDAPi, crypto, deserialization, etc.) as development teams + write code in Visual Studio. diff --git a/data/tools/puppet-lint.yml b/data/tools/puppet-lint.yml new file mode 100644 index 0000000000..2e5ef5acd5 --- /dev/null +++ b/data/tools/puppet-lint.yml @@ -0,0 +1,11 @@ +name: Puppet Lint +categories: + - linter +tags: + - configmanagement +license: MIT License +types: + - cli +source: 'https://github.com/rodjek/puppet-lint' +homepage: 'https://github.com/rodjek/puppet-lint' +description: Check that your Puppet manifests conform to the style guide. diff --git a/data/tools/pure.yml b/data/tools/pure.yml new file mode 100644 index 0000000000..b15a49596b --- /dev/null +++ b/data/tools/pure.yml @@ -0,0 +1,15 @@ +name: pure +categories: + - linter +tags: + - archive +license: MIT License +types: + - cli +source: 'https://github.com/ronomon/pure' +homepage: 'https://github.com/ronomon/pure' +description: >- + Pure is a static analysis file format checker that checks ZIP files for dangerous compression ratios, spec deviations, + malicious archive signatures, mismatching local and central directory headers, ambiguous UTF-8 filenames, + directory and symlink traversals, invalid MS-DOS dates, overlapping headers, overflow, underflow, + sparseness, accidental buffer bleeds etc. diff --git a/data/tools/putout.yml b/data/tools/putout.yml new file mode 100644 index 0000000000..3620e04300 --- /dev/null +++ b/data/tools/putout.yml @@ -0,0 +1,17 @@ +name: Putout +categories: + - linter +tags: + - javascript + - typescript + - jsx + - css + - json + - markdown + - yaml +license: MIT License +types: + - cli +source: "https://github.com/coderaiser/putout" +homepage: "https://github.com/coderaiser/putout" +description: Pluggable and configurable code transformer with built-in eslint, babel plugins support for js, jsx typescript, flow, markdown, yaml and json. diff --git a/data/tools/pvs-studio.yml b/data/tools/pvs-studio.yml new file mode 100644 index 0000000000..e7b2af7338 --- /dev/null +++ b/data/tools/pvs-studio.yml @@ -0,0 +1,28 @@ +name: PVS-Studio +categories: +- linter +tags: +- c +- cpp +- csharp +- java +license: proprietary +types: +- service +homepage: https://pvs-studio.com +description: >- + A ([conditionally free](https://pvs-studio.com/en/order/open-source-license) for + FOSS and individual developers) static analysis of C, C++, C# and Java code. For + advertising purposes [you can propose a large FOSS project for analysis by PVS employees](https://github.com/viva64/pvs-studio-check-list). + Supports CWE mapping, OWASP ASVS, MISRA, AUTOSAR and SEI CERT coding standards. +resources: +- title: PVS-Studio is now in Compiler Explorer! + url: https://www.youtube.com/watch?v=hw5npZqB3b8 +- title: PVS-Studio in 2019 + url: https://www.youtube.com/watch?v=FkfMGqxIR-I +- title: Static Analysis in C++ (mostly about PVS-Studio) + url: https://www.youtube.com/watch?v=vYW6TOwFK2M +pricing: https://pvs-studio.com/en/order/license/ +reviews: + - https://www.gartner.com/reviews/market/application-security-testing/vendor/pvs-studio/product/pvs-studio + - https://www.g2.com/products/pvs-studio/reviews \ No newline at end of file diff --git a/data/tools/py-find-injection.yml b/data/tools/py-find-injection.yml new file mode 100644 index 0000000000..59f05b5579 --- /dev/null +++ b/data/tools/py-find-injection.yml @@ -0,0 +1,12 @@ +name: py-find-injection +categories: + - linter +tags: + - python +deprecated: true +license: Other +types: + - cli +source: 'https://github.com/uber/py-find-injection' +homepage: 'https://github.com/uber/py-find-injection' +description: Find SQL injection vulnerabilities in Python code. diff --git a/data/tools/pyanalyze.yml b/data/tools/pyanalyze.yml new file mode 100644 index 0000000000..4367746278 --- /dev/null +++ b/data/tools/pyanalyze.yml @@ -0,0 +1,13 @@ +name: pyanalyze +categories: + - linter +tags: + - python +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/quora/pyanalyze' +homepage: 'https://pyanalyze.readthedocs.io/en/latest/' +description: >- + A tool for programmatically detecting common mistakes in Python code, such as references to undefined variables and type errors. + It can be extended to add additional rules and perform checks specific to particular functions. diff --git a/data/tools/pycodestyle.yml b/data/tools/pycodestyle.yml new file mode 100644 index 0000000000..4ba016d1f9 --- /dev/null +++ b/data/tools/pycodestyle.yml @@ -0,0 +1,13 @@ +name: pycodestyle +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/PyCQA/pycodestyle' +homepage: 'https://pycodestyle.pycqa.org/en/latest' +description: >- + (Formerly `pep8`) Check Python code against some of the style conventions in + PEP 8. diff --git a/data/tools/pydocstyle.yml b/data/tools/pydocstyle.yml new file mode 100644 index 0000000000..557ced74c2 --- /dev/null +++ b/data/tools/pydocstyle.yml @@ -0,0 +1,11 @@ +name: pydocstyle +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/PyCQA/pydocstyle' +homepage: 'http://www.pydocstyle.org' +description: Check compliance with Python docstring conventions. diff --git a/data/tools/pyflakes.yml b/data/tools/pyflakes.yml new file mode 100644 index 0000000000..bc1611b8f3 --- /dev/null +++ b/data/tools/pyflakes.yml @@ -0,0 +1,11 @@ +name: pyflakes +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/pyflakes/pyflakes' +homepage: 'https://pypi.org/project/pyflakes' +description: Check Python source files for errors. diff --git a/data/tools/pylama.yml b/data/tools/pylama.yml new file mode 100644 index 0000000000..99f98910e8 --- /dev/null +++ b/data/tools/pylama.yml @@ -0,0 +1,13 @@ +name: pylama +categories: + - linter +tags: + - meta + - python + - javascript +license: LGPL-3.0 License +types: + - cli +source: 'https://github.com/klen/pylama' +homepage: 'https://klen.github.io/pylama/' +description: 'Code audit tool for Python and JavaScript. Wraps pycodestyle, pydocstyle, PyFlakes, Mccabe, Pylint, and more' diff --git a/data/tools/pylint.yml b/data/tools/pylint.yml new file mode 100644 index 0000000000..ddce9bef54 --- /dev/null +++ b/data/tools/pylint.yml @@ -0,0 +1,17 @@ +name: pylint +categories: + - linter +tags: + - python +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/PyCQA/pylint' +homepage: 'http://pylint.pycqa.org/en/latest' +description: >- + Looks for programming errors, helps enforcing a coding standard and sniffs for + some code smells. It additionally includes `pyreverse` (an UML diagram + generator) and `symilar` (a similarities checker). +resources: + - title: Pylint Tutorial – How to Write Clean Python + url: https://www.youtube.com/watch?v=fFY5103p5-c diff --git a/data/tools/pylyzer.yml b/data/tools/pylyzer.yml new file mode 100644 index 0000000000..2bd516baf8 --- /dev/null +++ b/data/tools/pylyzer.yml @@ -0,0 +1,15 @@ +name: pylyzers +categories: + - linter +tags: + - python +license: MIT +types: + - cli +source: 'https://github.com/mtshiba/pylyzer' +homepage: 'https://mtshiba.github.io/pylyzer/' +resources: ~ +demos: ~ +description: >- + A static code analyzer / language server for Python, written in Rust, focused + on type checking and readable output. diff --git a/data/tools/pyra.yml b/data/tools/pyra.yml new file mode 100644 index 0000000000..5f33708126 --- /dev/null +++ b/data/tools/pyra.yml @@ -0,0 +1,14 @@ +name: Pyra +categories: + - linter +tags: + - python +license: MPL-2.0 license +types: + - cli +source: 'https://github.com/spangea/Pyra' +homepage: 'https://github.com/spangea/Pyra' +description: Pyra is a high-level linter static analyzer for data science applications written in Python, that helps developers identify potential issues in their data science code written in Python, as an extension of [Lyra](https://github.com/caterinaurban/Lyra). +resources: +- title: Demo + url: https://www.youtube.com/watch?v=D-AsyuhsTyo diff --git a/data/tools/pyre-check.yml b/data/tools/pyre-check.yml new file mode 100644 index 0000000000..b458dfad38 --- /dev/null +++ b/data/tools/pyre-check.yml @@ -0,0 +1,14 @@ +name: pyre-check +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/facebook/pyre-check' +homepage: 'https://pyre-check.org' +description: >- + A fast, scalable type checker for large Python codebases. Pyre-check has + been superseded by Pyrefly, its next iteration. +deprecated: true diff --git a/data/tools/pyrefly.yml b/data/tools/pyrefly.yml new file mode 100644 index 0000000000..a103de5e8d --- /dev/null +++ b/data/tools/pyrefly.yml @@ -0,0 +1,11 @@ +name: pyrefly +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/facebook/pyrefly' +homepage: 'https://pyrefly.org/' +description: 'A fast, incremental type checker and language server for Python, providing IDE features like code navigation, semantic highlighting, and code completion.' diff --git a/data/tools/pyright.yml b/data/tools/pyright.yml new file mode 100644 index 0000000000..951cf6eefd --- /dev/null +++ b/data/tools/pyright.yml @@ -0,0 +1,13 @@ +name: pyright +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/Microsoft/pyright' +homepage: 'https://github.com/Microsoft/pyright' +description: >- + Static type checker for Python, created to address gaps in existing tools like + mypy. diff --git a/data/tools/pyroma.yml b/data/tools/pyroma.yml new file mode 100644 index 0000000000..e933a87d1b --- /dev/null +++ b/data/tools/pyroma.yml @@ -0,0 +1,13 @@ +name: pyroma +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/regebro/pyroma' +homepage: 'https://github.com/regebro/pyroma' +description: >- + Rate how well a Python project complies with the best practices of the Python + packaging ecosystem, and list issues that could be improved. diff --git a/data/tools/pysa.yml b/data/tools/pysa.yml new file mode 100644 index 0000000000..ba4be580ee --- /dev/null +++ b/data/tools/pysa.yml @@ -0,0 +1,16 @@ +name: Pysa +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: "https://github.com/facebook/pyre-check" +homepage: "https://pyre-check.org/docs/pysa-basics.html" +description: >- + A tool based on Facebook's pyre-check to identify potential security issues in + Python code identified with taint analysis. +resources: + - title: "Workshop: Graham Bleaney - Pysa to Identify Python Vulnerabilities - DEF CON 28SM AppSec Village" + url: https://www.youtube.com/watch?v=8I3zlvtpOww diff --git a/data/tools/pyt-python-taint.yml b/data/tools/pyt-python-taint.yml new file mode 100644 index 0000000000..f723170339 --- /dev/null +++ b/data/tools/pyt-python-taint.yml @@ -0,0 +1,14 @@ +name: PyT - Python Taint +categories: + - linter +tags: + - python +deprecated: true +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/python-security/pyt' +homepage: 'https://github.com/python-security/pyt' +description: >- + A static analysis tool for detecting security vulnerabilities in Python web + applications. diff --git a/data/tools/pytype.yml b/data/tools/pytype.yml new file mode 100644 index 0000000000..c97fc4daf2 --- /dev/null +++ b/data/tools/pytype.yml @@ -0,0 +1,11 @@ +name: pytype +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/google/pytype' +homepage: 'https://google.github.io/pytype' +description: A static type analyzer for Python code. diff --git a/data/tools/pyupgrade.yml b/data/tools/pyupgrade.yml new file mode 100644 index 0000000000..c06671f1b6 --- /dev/null +++ b/data/tools/pyupgrade.yml @@ -0,0 +1,14 @@ +name: pyupgrade +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: "https://github.com/asottile/pyupgrade" +homepage: "https://pypi.org/project/pyupgrade-docs/" +description: A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language. +resources: + - title: Python linter comparison 2022. + url: https://inventwithpython.com/blog/2022/11/19/python-linter-comparison-2022-pylint-vs-pyflakes-vs-flake8-vs-autopep8-vs-bandit-vs-prospector-vs-pylama-vs-pyroma-vs-black-vs-mypy-vs-radon-vs-mccabe/ diff --git a/data/tools/qafoo-quality-analyzer.yml b/data/tools/qafoo-quality-analyzer.yml new file mode 100644 index 0000000000..6e8956ff3d --- /dev/null +++ b/data/tools/qafoo-quality-analyzer.yml @@ -0,0 +1,11 @@ +name: Qafoo Quality Analyzer +categories: + - linter +tags: + - php +license: GNU Affero General Public License v3.0 +types: + - cli +source: 'https://github.com/Qafoo/QualityAnalyzer' +homepage: 'https://github.com/Qafoo/QualityAnalyzer' +description: Visualizes metrics and source code. diff --git a/data/tools/qark.yml b/data/tools/qark.yml new file mode 100644 index 0000000000..da019cd562 --- /dev/null +++ b/data/tools/qark.yml @@ -0,0 +1,11 @@ +name: qark +categories: + - linter +tags: + - mobile +license: Other +types: + - cli +source: 'https://github.com/linkedin/qark' +homepage: 'https://github.com/linkedin/qark' +description: Tool to look for several security related Android application vulnerabilities. diff --git a/data/tools/quality.yml b/data/tools/quality.yml new file mode 100644 index 0000000000..5b87b0a24e --- /dev/null +++ b/data/tools/quality.yml @@ -0,0 +1,14 @@ +name: quality +categories: + - linter +tags: + - ci + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/apiology/quality' +homepage: 'https://github.com/apiology/quality' +description: >- + Runs quality checks on your code using community tools, and makes sure your + numbers don't get any worse over time. diff --git a/data/tools/qualys-container-security.yml b/data/tools/qualys-container-security.yml new file mode 100644 index 0000000000..c29a9fa03d --- /dev/null +++ b/data/tools/qualys-container-security.yml @@ -0,0 +1,14 @@ +name: Qualys Container Security +categories: +- linter +tags: +- container +- security +license: proprietary +types: +- service +homepage: https://www.qualys.com/apps/container-security +description: >- + Container native application protection to provide visibility and control of containerized + applications. +pricing: https://www.qualys.com/free-trial/ diff --git a/data/tools/quantifiedcode.yml b/data/tools/quantifiedcode.yml new file mode 100644 index 0000000000..056575b72b --- /dev/null +++ b/data/tools/quantifiedcode.yml @@ -0,0 +1,17 @@ +name: QuantifiedCode +categories: + - linter +tags: + - ci + - security + - python +deprecated: true +license: BSD 3-Clause "New" or "Revised" License +types: + - service +source: "https://github.com/quantifiedcode/quantifiedcode" +homepage: "https://github.com/quantifiedcode/quantifiedcode" +description: >- + Automated code review & repair. + It helps you to keep track of issues and metrics in your software projects, + and can be easily extended to support new types of analyses. diff --git a/data/tools/querly.yml b/data/tools/querly.yml new file mode 100644 index 0000000000..049f31446a --- /dev/null +++ b/data/tools/querly.yml @@ -0,0 +1,11 @@ +name: Querly +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/soutaro/querly' +homepage: 'https://github.com/soutaro/querly' +description: Pattern Based Checking Tool for Ruby. diff --git a/data/tools/qulice.yml b/data/tools/qulice.yml new file mode 100644 index 0000000000..d99de487a4 --- /dev/null +++ b/data/tools/qulice.yml @@ -0,0 +1,13 @@ +name: qulice +categories: + - linter +tags: + - java +license: Other +types: + - cli +source: 'https://github.com/teamed/qulice' +homepage: 'https://www.qulice.com' +description: >- + Combines a few (pre-configured) static analysis tools (checkstyle, PMD, + Findbugs, ...). diff --git a/data/tools/qwiet.yml b/data/tools/qwiet.yml new file mode 100644 index 0000000000..143c56bd3e --- /dev/null +++ b/data/tools/qwiet.yml @@ -0,0 +1,28 @@ +name: Qwiet AI +categories: +- linter +tags: +- java +- javascript +- jsp +- csharp +- python +- scala +- go +- configmanagement +- security +license: proprietary +types: +- service +homepage: https://qwiet.ai/ +description: >- + Identify vulnerabilities that are unique to your code base before they reach + production. Leverages the Code Property Graph (CPG) to run its analyses + concurrently in a single graph of graphs. Automatically finds business logic + flaws in dev like hardcoded secrets and logic bombs +resources: +- title: Securing Every Pull Request with ShiftLeft + url: https://vimeo.com/383381584 +- title: ShiftLeft Intro + url: https://vimeo.com/233423863 +pricing: https://www.shiftleft.io/pricing diff --git a/data/tools/r-language-server.yml b/data/tools/r-language-server.yml new file mode 100644 index 0000000000..3bf778b381 --- /dev/null +++ b/data/tools/r-language-server.yml @@ -0,0 +1,12 @@ +name: R Language Server +categories: + - linter +tags: + - r +license: MIT + file LICENSE +types: + - ide-plugin +source: 'https://github.com/REditorSupport/languageserver/' +homepage: 'https://github.com/REditorSupport/languageserver/' +description: >- + Provides code completion, refactoring, folding, diagnostics (with lintr), and more for R. diff --git a/data/tools/radon.yml b/data/tools/radon.yml new file mode 100644 index 0000000000..0cdef45e1b --- /dev/null +++ b/data/tools/radon.yml @@ -0,0 +1,11 @@ +name: radon +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/rubik/radon' +homepage: 'https://radon.readthedocs.io/en/latest' +description: A Python tool that computes various metrics from the source code. diff --git a/data/tools/railroader.yml b/data/tools/railroader.yml new file mode 100644 index 0000000000..d1cbafcd31 --- /dev/null +++ b/data/tools/railroader.yml @@ -0,0 +1,13 @@ +name: Railroader +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/david-a-wheeler/railroader' +homepage: 'https://railroader.org' +description: >- + An open source static analysis security vulnerability scanner for Ruby on + Rails applications. diff --git a/data/tools/rails_best_practices.yml b/data/tools/rails_best_practices.yml new file mode 100644 index 0000000000..c221abc7a6 --- /dev/null +++ b/data/tools/rails_best_practices.yml @@ -0,0 +1,11 @@ +name: rails_best_practices +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/flyerhzm/rails_best_practices' +homepage: 'https://rails-bestpractices.com' +description: 'A code metric tool for Rails projects' diff --git a/data/tools/rco.yml b/data/tools/rco.yml new file mode 100644 index 0000000000..636f3ae8cc --- /dev/null +++ b/data/tools/rco.yml @@ -0,0 +1,11 @@ +name: rco +categories: + - performance +tags: + - r +license: GPL-3 +types: + - cli +source: "https://github.com/jcrodriguez1989/rco" +homepage: "https://jcrodriguez1989.github.io/rco/" +description: Performance optimizer for R code (with GUI). diff --git a/data/tools/rector.yml b/data/tools/rector.yml new file mode 100644 index 0000000000..a9f8e38715 --- /dev/null +++ b/data/tools/rector.yml @@ -0,0 +1,22 @@ +name: rector +categories: + - linter +tags: + - php +license: MIT +types: + - cli +source: 'https://github.com/rectorphp/rector' +homepage: 'https://getrector.org' +resources: + - title: "Rector: Install & Setup " + url: https://www.youtube.com/watch?v=_Uk95vG3ezQ +demos: + - https://getrector.com/demo +description: >- + Instant Upgrades and Automated Refactoring of any PHP 5.3+ code. + It upgrades your code for PHP 7.4, 8.0 and beyond. + Rector promises a low false-positive rate because it looks for narrowly + defined AST (abstract syntax tree) patterns. + The main use-case are tackling technical debt in your legacy code and removing dead code. + Rector provides a set of special rules for Symfony, Doctrine, PHPUnit, and many more. diff --git a/data/tools/redex.yml b/data/tools/redex.yml new file mode 100644 index 0000000000..3aff6e2116 --- /dev/null +++ b/data/tools/redex.yml @@ -0,0 +1,20 @@ +name: redex +categories: + - linter +tags: + - mobile +license: MIT License +types: + - cli +source: "https://github.com/facebook/redex" +homepage: "https://fbredex.com" +description: >- + Redex provides a framework for reading, writing, and analyzing .dex files, and a set of optimization passes + that use this framework to improve the bytecode. An APK optimized by Redex should be smaller and faster. +resources: + - title: droidcon SF 2017 - Redex, Your Build, And You + url: https://www.youtube.com/watch?v=vtxJvJj6gSE + - title: Optimizing Android bytecode with ReDex + url: https://engineering.fb.com/android/optimizing-android-bytecode-with-redex/ + - title: + url: https://www.youtube.com/watch?v=h_Gkl5eAdc4 diff --git a/data/tools/reek.yml b/data/tools/reek.yml new file mode 100644 index 0000000000..c90997b563 --- /dev/null +++ b/data/tools/reek.yml @@ -0,0 +1,11 @@ +name: reek +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/troessner/reek' +homepage: 'https://github.com/troessner/reek' +description: Code smell detector for Ruby. diff --git a/data/tools/refactorfirst.yml b/data/tools/refactorfirst.yml new file mode 100644 index 0000000000..0e613815b9 --- /dev/null +++ b/data/tools/refactorfirst.yml @@ -0,0 +1,14 @@ +name: RefactorFirst +categories: + - linter +tags: + - ci + - java + - support +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/jimbethancourt/RefactorFirst' +homepage: 'https://github.com/jimbethancourt/RefactorFirst' +description: >- + Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first. diff --git a/data/tools/refactoring-essentials.yml b/data/tools/refactoring-essentials.yml new file mode 100644 index 0000000000..5b9a1b75dd --- /dev/null +++ b/data/tools/refactoring-essentials.yml @@ -0,0 +1,15 @@ +name: Refactoring Essentials +categories: + - linter +tags: + - csharp + - vbnet +license: MIT License +types: + - cli +source: 'https://github.com/icsharpcode/RefactoringEssentials' +homepage: >- + https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.RefactoringEssentialsforVisualStudio +description: >- + The free Visual Studio 2015 extension for C# and VB.NET refactorings, + including code best practice analyzers. diff --git a/data/tools/reflection.yml b/data/tools/reflection.yml new file mode 100644 index 0000000000..f76dd1c809 --- /dev/null +++ b/data/tools/reflection.yml @@ -0,0 +1,12 @@ +name: Reflection +categories: + - linter +tags: + - php +license: MIT +types: + - cli +source: "https://github.com/phpDocumentor/Reflection" +homepage: "https://github.com/phpDocumentor/Reflection" +description: >- + Reflection library to do Static Analysis for PHP Projects diff --git a/data/tools/refurb.yml b/data/tools/refurb.yml new file mode 100644 index 0000000000..27c753bf98 --- /dev/null +++ b/data/tools/refurb.yml @@ -0,0 +1,13 @@ +name: refurb +categories: + - linter +tags: + - python +license: GPL-3.0 +types: + - cli +source: 'https://github.com/dosisod/refurb' +homepage: 'https://github.com/dosisod/refurb' +description: >- + A tool for refurbishing and modernizing Python codebases. + Refurb is heavily inspired by clippy, the built-in linter for Rust. diff --git a/data/tools/regal.yml b/data/tools/regal.yml new file mode 100644 index 0000000000..bdb6471f00 --- /dev/null +++ b/data/tools/regal.yml @@ -0,0 +1,19 @@ +name: Regal +categories: + - linter +tags: + - rego +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/styrainc/regal' +homepage: 'https://github.com/styrainc/regal' +description: >- + Regal is a linter for the policy language Rego. Regal aims to catch bugs and mistakes + in policy code, while at the same time helping people learn the language, best practices + and idiomatic constructs. +resources: + - title: 'Guarding the Guardrails — Introducing Regal, the Rego Linter' + url: 'https://www.styra.com/blog/guarding-the-guardrails-introducing-regal-the-rego-linter' + - title: 'Regal the Rego Linter, CNCF London meetup, June 2023 (video)' + url: 'https://www.youtube.com/watch?v=Xx8npd2TQJ0&t=2567s' diff --git a/data/tools/relint.yml b/data/tools/relint.yml new file mode 100644 index 0000000000..fdb3f9cf09 --- /dev/null +++ b/data/tools/relint.yml @@ -0,0 +1,19 @@ +name: relint +categories: + - linter +tags: + - c + - cpp + - dotnet + - java + - javascript + - jsx + - python +license: MIT License +types: + - cli +source: 'https://github.com/codingjoe/relint' +homepage: 'https://github.com/codingjoe/relint' +description: >- + A static file linter that allows you to write custom rules using regular + expressions (RegEx). diff --git a/data/tools/remark-lint.yml b/data/tools/remark-lint.yml new file mode 100644 index 0000000000..5b595c593d --- /dev/null +++ b/data/tools/remark-lint.yml @@ -0,0 +1,11 @@ +name: remark-lint +categories: + - linter +tags: + - markdown +license: MIT License +types: + - cli +source: 'https://github.com/remarkjs/remark-lint' +homepage: 'https://remark.js.org' +description: Pluggable Markdown code style linter written in JavaScript. diff --git a/data/tools/resharper.yml b/data/tools/resharper.yml new file mode 100644 index 0000000000..715bac2954 --- /dev/null +++ b/data/tools/resharper.yml @@ -0,0 +1,17 @@ +name: ReSharper +categories: +- linter +tags: +- asp +- csharp +- javascript +- typescript +- vbnet +license: proprietary +types: +- cli +homepage: https://www.jetbrains.com/resharper +description: >- + Extends Visual Studio with on-the-fly code inspections for C#, VB.NET, ASP.NET, + JavaScript, TypeScript and other technologies. +pricing: https://www.jetbrains.com/buy diff --git a/data/tools/retirejs.yml b/data/tools/retirejs.yml new file mode 100644 index 0000000000..7163d73522 --- /dev/null +++ b/data/tools/retirejs.yml @@ -0,0 +1,11 @@ +name: retire.js +categories: + - linter +tags: + - javascript +license: Other +types: + - cli +source: 'https://github.com/RetireJS/retire.js' +homepage: 'https://retirejs.github.io/retire.js' +description: Scanner detecting the use of JavaScript libraries with known vulnerabilities. diff --git a/data/tools/rev-dep.yml b/data/tools/rev-dep.yml new file mode 100644 index 0000000000..60f9867378 --- /dev/null +++ b/data/tools/rev-dep.yml @@ -0,0 +1,17 @@ +name: Rev-dep +categories: + - linter +tags: + - typescript + - javascript + - jsx + - ci +license: MIT License +types: + - cli +source: "https://github.com/jayu/rev-dep" +homepage: "https://github.com/jayu/rev-dep" +description: Dependency analysis and optimization toolkit for modern JavaScript and TypeScript projects. Trace imports, identify circular dependencies, find unused code, clean node modules. +resources: + - title: Install via NPM + url: "https://www.npmjs.com/package/rev-dep" diff --git a/data/tools/reviewdog.yml b/data/tools/reviewdog.yml new file mode 100644 index 0000000000..5c502f8aa1 --- /dev/null +++ b/data/tools/reviewdog.yml @@ -0,0 +1,14 @@ +name: Reviewdog +categories: + - linter +tags: + - ci + - go +license: MIT License +types: + - cli +source: 'https://github.com/haya14busa/reviewdog' +homepage: 'https://github.com/haya14busa/reviewdog' +description: >- + A tool for posting review comments from any linter in any code hosting + service. diff --git a/data/tools/revive.yml b/data/tools/revive.yml new file mode 100644 index 0000000000..bac0eac1d7 --- /dev/null +++ b/data/tools/revive.yml @@ -0,0 +1,13 @@ +name: revive +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/mgechev/revive' +homepage: 'https://revive.run' +description: >- + Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in + replacement of golint. diff --git a/data/tools/rhabdomancer.yml b/data/tools/rhabdomancer.yml new file mode 100644 index 0000000000..b18ecc3abc --- /dev/null +++ b/data/tools/rhabdomancer.yml @@ -0,0 +1,16 @@ +name: rhabdomancer +categories: + - linter +tags: + - binary +license: MIT License +types: + - cli +source: "https://github.com/0xdea/rhabdomancer" +homepage: "https://crates.io/crates/rhabdomancer" +resources: + - title: Streamlining Vulnerability Research with the idalib Rust Bindings for IDA 9.2 + url: https://hex-rays.com/blog/streamlining-vulnerability-research-idalib-rust-bindings + - title: Streamlining vulnerability research with IDA Pro and Rust + url: https://hnsecurity.it/blog/streamlining-vulnerability-research-with-ida-pro-and-rust +description: IDA Pro headless plugin that locates calls to potentially insecure API functions in a binary file. diff --git a/data/tools/rips.yml b/data/tools/rips.yml new file mode 100644 index 0000000000..f8b981da3f --- /dev/null +++ b/data/tools/rips.yml @@ -0,0 +1,13 @@ +name: RIPS +categories: + - linter +tags: + - java + - nodejs + - php +license: proprietary +types: + - cli +homepage: https://www.ripstech.com +description: A static source code analyser for vulnerabilities in PHP scripts. +pricing: https://sonarsource.com/plans-and-pricing/ diff --git a/data/tools/roodi.yml b/data/tools/roodi.yml new file mode 100644 index 0000000000..5ac5845cb2 --- /dev/null +++ b/data/tools/roodi.yml @@ -0,0 +1,13 @@ +name: Roodi +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: "https://github.com/roodi/roodi" +homepage: "https://github.com/roodi/roodi" +description: >- + Roodi stands for Ruby Object Oriented Design Inferometer. + It parses your Ruby code and warns you about design issues you have based on the checks that it has configured. diff --git a/data/tools/roslyn-analyzers.yml b/data/tools/roslyn-analyzers.yml new file mode 100644 index 0000000000..181635ebc5 --- /dev/null +++ b/data/tools/roslyn-analyzers.yml @@ -0,0 +1,12 @@ +name: Roslyn Analyzers +categories: + - linter +tags: + - csharp + - dotnet +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/dotnet/roslyn-analyzers' +homepage: 'https://github.com/dotnet/roslyn-analyzers' +description: Roslyn-based implementation of FxCop analyzers. diff --git a/data/tools/roslyn-security-guard.yml b/data/tools/roslyn-security-guard.yml new file mode 100644 index 0000000000..c6301cedc5 --- /dev/null +++ b/data/tools/roslyn-security-guard.yml @@ -0,0 +1,15 @@ +name: Roslyn Security Guard +categories: + - linter +tags: + - csharp + - vbnet +license: GNU Lesser General Public License v3.0 +types: + - cli +source: 'https://github.com/security-code-scan/security-code-scan' +homepage: 'https://security-code-scan.github.io' +description: >- + Project that focuses on the identification of potential vulnerabilities such + as SQL injection, cross-site scripting (XSS), CSRF, cryptography weaknesses, + hardcoded passwords and many more. diff --git a/data/tools/roslynator.yml b/data/tools/roslynator.yml new file mode 100644 index 0000000000..39921e223a --- /dev/null +++ b/data/tools/roslynator.yml @@ -0,0 +1,13 @@ +name: Roslynator +categories: + - linter +tags: + - csharp +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/JosefPihrt/Roslynator' +homepage: 'https://github.com/JosefPihrt/Roslynator' +description: >- + A collection of 190+ analyzers and 190+ refactorings for C#, powered by + Roslyn. diff --git a/data/tools/rpmlint.yml b/data/tools/rpmlint.yml new file mode 100644 index 0000000000..f14f96fef7 --- /dev/null +++ b/data/tools/rpmlint.yml @@ -0,0 +1,11 @@ +name: rpmlint +categories: + - linter +tags: + - package +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/rpm-software-management/rpmlint' +homepage: 'https://github.com/rpm-software-management/rpmlint' +description: Tool for checking common errors in rpm packages. diff --git a/data/tools/rslint.yml b/data/tools/rslint.yml new file mode 100644 index 0000000000..fce53e7b4c --- /dev/null +++ b/data/tools/rslint.yml @@ -0,0 +1,13 @@ +name: RSLint +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/RDambrosio016/RSLint' +homepage: 'http://rslint.org/' +description: >- + A (WIP) JavaScript linter written in Rust designed to be as fast as possible, + customizable, and easy to use. diff --git a/data/tools/rubocop.yml b/data/tools/rubocop.yml new file mode 100644 index 0000000000..75682fd73d --- /dev/null +++ b/data/tools/rubocop.yml @@ -0,0 +1,16 @@ +name: RuboCop +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/rubocop-hq/rubocop' +homepage: 'https://docs.rubocop.org/rubocop' +resources: + - title: Ruby Code Linting with RuboCop + url: https://www.youtube.com/watch?v=sfOGjcMVQ9U +description: 'A Ruby static code analyzer, based on the community Ruby style guide.' +reviews: + - https://stackshare.io/rubocop \ No newline at end of file diff --git a/data/tools/rubrowser.yml b/data/tools/rubrowser.yml new file mode 100644 index 0000000000..34c45f1ed2 --- /dev/null +++ b/data/tools/rubrowser.yml @@ -0,0 +1,11 @@ +name: Rubrowser +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/blazeeboy/rubrowser' +homepage: 'https://github.com/blazeeboy/rubrowser' +description: Ruby classes interactive dependency graph generator. diff --git a/data/tools/ruby-lint.yml b/data/tools/ruby-lint.yml new file mode 100644 index 0000000000..a82935f889 --- /dev/null +++ b/data/tools/ruby-lint.yml @@ -0,0 +1,12 @@ +name: ruby-lint +categories: + - linter +tags: + - ruby +deprecated: true +license: "Mozilla Public License, version 2.0" +types: + - cli +source: "https://gitlab.com/yorickpeterse/ruby-lint" +homepage: "https://gitlab.com/yorickpeterse/ruby-lint" +description: Static code analysis for Ruby. diff --git a/data/tools/rubycritic.yml b/data/tools/rubycritic.yml new file mode 100644 index 0000000000..a28df3aeba --- /dev/null +++ b/data/tools/rubycritic.yml @@ -0,0 +1,11 @@ +name: rubycritic +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/whitesmith/rubycritic' +homepage: 'https://github.com/whitesmith/rubycritic' +description: A Ruby code quality reporter. diff --git a/data/tools/rudra.yml b/data/tools/rudra.yml new file mode 100644 index 0000000000..c3e83f78e2 --- /dev/null +++ b/data/tools/rudra.yml @@ -0,0 +1,13 @@ +name: Rudra +categories: + - linter +tags: + - rust +license: Apache +types: + - cli +source: https://github.com/sslab-gatech/Rudra +homepage: https://github.com/sslab-gatech/Rudra +description: >- + Rust Memory Safety & Undefined Behavior Detection. It is capable of analyzing single + Rust packages as well as all the packages on crates.io. diff --git a/data/tools/ruff.yml b/data/tools/ruff.yml new file mode 100644 index 0000000000..887a4e4ff7 --- /dev/null +++ b/data/tools/ruff.yml @@ -0,0 +1,16 @@ +name: ruff +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/charliermarsh/ruff' +homepage: 'https://astral.sh/ruff' +resources: + - title: Python tooling could be much, much faster (announcement) + url: https://notes.crmarsh.com/python-tooling-could-be-much-much-faster +description: >- + Fast Python linter, written in Rust. 10-100x faster than existing linters. + Compatible with Python 3.10. Supports file watcher. diff --git a/data/tools/rufo.yml b/data/tools/rufo.yml new file mode 100644 index 0000000000..78ddf40388 --- /dev/null +++ b/data/tools/rufo.yml @@ -0,0 +1,11 @@ +name: rufo +categories: + - formatter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/ruby-formatter/rufo' +homepage: 'https://github.com/ruby-formatter/rufo' +description: 'An opinionated ruby formatter, intended to be used via the command line as a text-editor plugin, to autoformat files on save or on demand.' diff --git a/data/tools/rust-analyzer.yml b/data/tools/rust-analyzer.yml new file mode 100644 index 0000000000..4f6bcf2915 --- /dev/null +++ b/data/tools/rust-analyzer.yml @@ -0,0 +1,14 @@ +name: rust-analyzer +categories: + - formatter +tags: + - rust +license: Other +types: + - ide-plugin +source: "https://github.com/rust-analyzer/rust-analyzer" +homepage: "https://rust-analyzer.github.io" +description: >- + Supports functionality such as 'goto definition', type inference, symbol + search, reformatting, and code completion, and enables renaming and + refactorings. diff --git a/data/tools/rust-audit.yml b/data/tools/rust-audit.yml new file mode 100644 index 0000000000..cf77abe3a6 --- /dev/null +++ b/data/tools/rust-audit.yml @@ -0,0 +1,15 @@ +name: rust-audit +categories: + - linter +tags: + - rust + - binary +license: Other +types: + - cli +source: 'https://github.com/Shnatsel/rust-audit' +homepage: 'https://github.com/Shnatsel/rust-audit' +description: >- + Audit Rust binaries for known bugs or security vulnerabilities. This works by + embedding data about the dependency tree (Cargo.lock) in JSON format into a + dedicated linker section of the compiled executable. diff --git a/data/tools/rust-language-server.yml b/data/tools/rust-language-server.yml new file mode 100644 index 0000000000..eb9dcadb93 --- /dev/null +++ b/data/tools/rust-language-server.yml @@ -0,0 +1,13 @@ +name: Rust Language Server +categories: + - formatter +tags: + - rust +license: Other +types: + - ide-plugin +source: "https://github.com/rust-lang-nursery/rls" +homepage: "https://github.com/rust-lang-nursery/rls" +description: >- + Supports functionality such as 'goto definition', symbol search, reformatting, + and code completion, and enables renaming and refactorings. diff --git a/data/tools/rustfix.yml b/data/tools/rustfix.yml new file mode 100644 index 0000000000..09e9ad1c63 --- /dev/null +++ b/data/tools/rustfix.yml @@ -0,0 +1,13 @@ +name: rustfix +categories: + - linter +tags: + - rust +license: Other +types: + - cli +source: 'https://github.com/rust-lang/rustfix' +homepage: 'https://github.com/rust-lang/rustfix' +description: >- + Read and apply the suggestions made by rustc (and third-party lints, like + those offered by clippy). diff --git a/data/tools/rustfmt.yml b/data/tools/rustfmt.yml new file mode 100644 index 0000000000..06d6e20c5e --- /dev/null +++ b/data/tools/rustfmt.yml @@ -0,0 +1,11 @@ +name: rustfmt +categories: + - formatter +tags: + - rust +license: Apache License +types: + - cli +source: 'https://github.com/rust-lang/rustfmt' +homepage: 'https://github.com/rust-lang/rustfmt' +description: 'A tool for formatting Rust code according to style guidelines.' diff --git a/data/tools/rustviz.yml b/data/tools/rustviz.yml new file mode 100644 index 0000000000..bb9d04d97a --- /dev/null +++ b/data/tools/rustviz.yml @@ -0,0 +1,16 @@ +name: RustViz +categories: + - linter +tags: + - rust +license: MIT License +types: + - cli +source: 'https://github.com/rustviz/rustviz' +homepage: 'https://github.com/rustviz/rustviz' +description: >- + RustViz is a tool that generates visualizations + from simple Rust programs to assist users in better + understanding the Rust Lifetime and Borrowing mechanism. + It generates SVG files with graphical indicators that integrate + with mdbook to render visualizations of data-flow in Rust programs. diff --git a/data/tools/safeql.yml b/data/tools/safeql.yml new file mode 100644 index 0000000000..b39349a97f --- /dev/null +++ b/data/tools/safeql.yml @@ -0,0 +1,16 @@ +name: SafeQL +categories: + - linter +tags: + - javascript + - typescript + - sql +license: MIT +types: + - cli +source: 'https://github.com/ts-safeql/safeql' +homepage: 'https://safeql.dev' +description: >- + Validate and auto-generate TypeScript types from raw SQL queries in + PostgreSQL. + SafeQL is an ESLint plugin for writing SQL queries in a type-safe way. \ No newline at end of file diff --git a/data/tools/safesql.yml b/data/tools/safesql.yml new file mode 100644 index 0000000000..748f51b2a3 --- /dev/null +++ b/data/tools/safesql.yml @@ -0,0 +1,11 @@ +name: safesql +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/stripe/safesql' +homepage: 'https://github.com/stripe/safesql' +description: Static analysis tool for Golang that protects against SQL injections. diff --git a/data/tools/safety.yml b/data/tools/safety.yml new file mode 100644 index 0000000000..aa3a307e73 --- /dev/null +++ b/data/tools/safety.yml @@ -0,0 +1,17 @@ +name: Safety +categories: + - linter +tags: + - python + - security +license: MIT License +types: + - cli +source: "https://github.com/pyupio/safety" +homepage: "https://safetycli.com/" +description: >- + Python dependency vulnerability scanner designed to enhance software supply + chain security by detecting packages with known vulnerabilities. Checks + Python dependencies against a database of known security vulnerabilities + and provides detailed reports. Supports CI/CD integration and multiple + output formats. \ No newline at end of file diff --git a/data/tools/saikuro.yml b/data/tools/saikuro.yml new file mode 100644 index 0000000000..691c54aa06 --- /dev/null +++ b/data/tools/saikuro.yml @@ -0,0 +1,11 @@ +name: Saikuro +categories: + - linter +tags: + - ruby +license: BSD License +types: + - cli +source: 'https://github.com/metricfu/Saikuro' +homepage: 'https://metricfu.github.io/Saikuro' +description: 'A Ruby cyclomatic complexity analyzer.' diff --git a/data/tools/sandimeter.yml b/data/tools/sandimeter.yml new file mode 100644 index 0000000000..801595a05d --- /dev/null +++ b/data/tools/sandimeter.yml @@ -0,0 +1,12 @@ +name: SandiMeter +categories: + - linter +tags: + - ruby +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/makaroni4/sandi_meter' +homepage: 'https://rubygems.org/gems/sandi_meter' +description: Static analysis tool for checking Ruby code for Sandi Metz' rules. diff --git a/data/tools/sass-lint.yml b/data/tools/sass-lint.yml new file mode 100644 index 0000000000..4f35ef4b06 --- /dev/null +++ b/data/tools/sass-lint.yml @@ -0,0 +1,12 @@ +name: sass-lint +categories: + - linter +tags: + - css +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/sasstools/sass-lint' +homepage: 'https://github.com/sasstools/sass-lint' +description: A Node-only Sass linter for both sass and scss syntax. diff --git a/data/tools/sast-online.yml b/data/tools/sast-online.yml new file mode 100644 index 0000000000..7550f73e2a --- /dev/null +++ b/data/tools/sast-online.yml @@ -0,0 +1,20 @@ +name: SAST Online +categories: + - linter +tags: + - dart + - java + - kotlin + - mobile + - security +license: proprietary +types: + - service +pricing: https://sast.online/pricing +plans: + free: true +source: "https://sast.online/" +homepage: "https://sast.online/" +description: >- + Check the Android Source code thoroughly to uncover and address potential security concerns and vulnerabilities. + Static application security testing (Static Code Analysis) tool Online diff --git a/data/tools/scalastyle.yml b/data/tools/scalastyle.yml new file mode 100644 index 0000000000..d264f7377b --- /dev/null +++ b/data/tools/scalastyle.yml @@ -0,0 +1,11 @@ +name: Scalastyle +categories: + - linter +tags: + - scala +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/scalastyle/scalastyle' +homepage: 'http://www.scalastyle.org' +description: Scalastyle examines your Scala code and indicates potential problems with it. diff --git a/data/tools/scan-build.yml b/data/tools/scan-build.yml new file mode 100644 index 0000000000..a8564e166c --- /dev/null +++ b/data/tools/scan-build.yml @@ -0,0 +1,12 @@ +name: scan-build +categories: + - linter +tags: + - c + - cpp +license: Apache License v2.0 with LLVM Exceptions +types: + - cli +source: 'https://clang-analyzer.llvm.org/scan-build.html' +homepage: 'https://clang-analyzer.llvm.org/scan-build.html' +description: Frontend to drive the Clang Static Analyzer built into Clang via a regular build. diff --git a/data/tools/scapegoat.yml b/data/tools/scapegoat.yml new file mode 100644 index 0000000000..bfad3e55b1 --- /dev/null +++ b/data/tools/scapegoat.yml @@ -0,0 +1,11 @@ +name: scapegoat +categories: + - linter +tags: + - scala +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/sksamuel/scapegoat' +homepage: 'https://github.com/sksamuel/scapegoat' +description: Scala compiler plugin for static code analysis. diff --git a/data/tools/scorecard.yml b/data/tools/scorecard.yml new file mode 100644 index 0000000000..86562c324e --- /dev/null +++ b/data/tools/scorecard.yml @@ -0,0 +1,12 @@ +name: scorecard +categories: + - linter +tags: + - security +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/ossf/scorecard' +homepage: 'https://github.com/ossf/scorecard' +description: >- + Security Scorecards - Security health metrics for Open Source diff --git a/data/tools/scrutinizer.yml b/data/tools/scrutinizer.yml new file mode 100644 index 0000000000..1ef30cfe5c --- /dev/null +++ b/data/tools/scrutinizer.yml @@ -0,0 +1,23 @@ +name: Scrutinizer +categories: + - linter +tags: + - ci + - php + - python + - ruby + - java + - javascript + - go + - typescript +license: proprietary +types: + - service +deprecated: true +homepage: https://scrutinizer-ci.com +description: >- + A proprietary code quality checker that can be integrated with GitHub. +pricing: https://scrutinizer-ci.com/pricing +plans: + free: false + oss: true diff --git a/data/tools/scsslint.yml b/data/tools/scsslint.yml new file mode 100644 index 0000000000..4eb5eafeb1 --- /dev/null +++ b/data/tools/scsslint.yml @@ -0,0 +1,12 @@ +name: scsslint +categories: + - linter +tags: + - css +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/brigade/scss-lint' +homepage: 'https://github.com/brigade/scss-lint' +description: Linter for SCSS files. diff --git a/data/tools/security-code-scan.yml b/data/tools/security-code-scan.yml new file mode 100644 index 0000000000..565e9612c0 --- /dev/null +++ b/data/tools/security-code-scan.yml @@ -0,0 +1,20 @@ +name: Security Code Scan +categories: + - linter +tags: + - c + - cpp + - csharp + - java + - php + - vbnet +license: GNU Lesser General Public License v3.0 +types: + - ide-plugin +source: 'https://github.com/security-code-scan/security-code-scan' +homepage: 'https://security-code-scan.github.io' +description: >- + Security code analyzer for C# and VB.NET. Detects various security + vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates + into Visual Studio 2015 and newer. Detects various security vulnerability + patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. diff --git a/data/tools/semgrep-supply-chain.yml b/data/tools/semgrep-supply-chain.yml new file mode 100644 index 0000000000..3e84277ef2 --- /dev/null +++ b/data/tools/semgrep-supply-chain.yml @@ -0,0 +1,23 @@ +name: Semgrep Supply Chain +categories: + - linter +tags: + - go + - java + - javascript + - python + - ruby + - typescript + - security +license: proprietary +types: + - service +homepage: 'https://semgrep.dev/products/semgrep-supply-chain' +resources: + - title: Reachability analysis in Semgrep Supply Chain + url: https://www.youtube.com/watch?v=dzmiQXhVMAw + - title: "It's time to ignore 98% of dependency alerts" + url: https://r2c.dev/blog/2022/introducing-semgrep-supply-chain/ +description: >- + Quickly find and remediate high-priority security issues. + Semgrep Supply Chain prioritizes the 2% of vulnerabilities that are reachable from your code. diff --git a/data/tools/semgrep.yml b/data/tools/semgrep.yml new file mode 100644 index 0000000000..76433498a9 --- /dev/null +++ b/data/tools/semgrep.yml @@ -0,0 +1,47 @@ +name: Semgrep +categories: + - linter +tags: + - c + - ci + - configmanagement + - csharp + - dockerfile + - go + - java + - javascript + - json + - jsx + - kubernetes + - nodejs + - ocaml + - php + - python + - rails + - ruby + - security + - terraform + - typescript + - yaml +license: GNU Lesser General Public License v2.1 +types: + - cli + - service +source: 'https://github.com/returntocorp/semgrep' +homepage: 'https://semgrep.dev' +resources: + - title: Semgrep Quick Start Tutorial + url: https://www.youtube.com/watch?v=8jyp8DkhmYo + - title: Semgrep presentation by r2c at Bay Area OWASP Meetup + url: https://www.youtube.com/watch?v=pul1bRIOYc8 +description: >- + A fast, open-source, static analysis tool + for finding bugs and enforcing code standards + at editor, commit, and CI time. + Its rules look like the code you already write; + no abstract syntax trees or regex wrestling. + Supports 17+ languages. +reviews: + - https://stackshare.io/semgrep +demos: + - https://semgrep.dev/playground \ No newline at end of file diff --git a/data/tools/seqra.yml b/data/tools/seqra.yml new file mode 100644 index 0000000000..d87e9a9263 --- /dev/null +++ b/data/tools/seqra.yml @@ -0,0 +1,23 @@ +name: Seqra +categories: + - linter +tags: + - security + - java + - spring + - kotlin + - ci + - yaml +license: MIT +types: + - cli +source: 'https://github.com/seqra/seqra' +homepage: 'https://seqra.dev' +resources: + - title: 'Static Analysis Showdown: How Semgrep, CodeQL, and Seqra Handle XSS Detection' + url: https://seqra.dev/blog/semgrep-vs-codeql-vs-seqra +description: >- + Security-focused static analyzer for Java and Kotlin web applications. + Analyzes bytecode with Semgrep-style YAML rules and CodeQL-grade dataflow + (with first-class Spring support) to find vulnerabilities + that source-only scanners miss. diff --git a/data/tools/sh.yml b/data/tools/sh.yml new file mode 100644 index 0000000000..2422cf2eac --- /dev/null +++ b/data/tools/sh.yml @@ -0,0 +1,11 @@ +name: sh +categories: + - linter +tags: + - shell +license: BSD-3-Clause License +types: + - cli +source: 'https://github.com/mvdan/sh' +homepage: 'https://pkg.go.dev/mvdan.cc/sh/v3' +description: 'A shell parser, formatter, and interpreter with bash support; includes shfmt' diff --git a/data/tools/shellcheck.yml b/data/tools/shellcheck.yml new file mode 100644 index 0000000000..1d223c5770 --- /dev/null +++ b/data/tools/shellcheck.yml @@ -0,0 +1,13 @@ +name: shellcheck +categories: + - linter +tags: + - shell +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/koalaman/shellcheck' +homepage: 'https://www.shellcheck.net' +description: >- + ShellCheck, a static analysis tool that gives warnings and suggestions for + bash/sh shell scripts. diff --git a/data/tools/shellharden.yml b/data/tools/shellharden.yml new file mode 100644 index 0000000000..e79b188a15 --- /dev/null +++ b/data/tools/shellharden.yml @@ -0,0 +1,11 @@ +name: shellharden +categories: + - linter +tags: + - shell +license: MPL-2.0 License +types: + - cli +source: 'https://github.com/anordal/shellharden' +homepage: 'https://github.com/anordal/shellharden' +description: 'A syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting.' diff --git a/data/tools/shiftleft-scan.yml b/data/tools/shiftleft-scan.yml new file mode 100644 index 0000000000..6145a98d9b --- /dev/null +++ b/data/tools/shiftleft-scan.yml @@ -0,0 +1,36 @@ +name: ShiftLeft Scan +categories: + - linter +tags: + - apex + - configmanagement + - container + - go + - groovy + - java + - json + - jsp + - kotlin + - nodejs + - php + - plsql + - python + - ruby + - rust + - scala + - shell + - vbasic + - yaml +license: Other +deprecated: true +types: + - cli + - service +source: "https://github.com/ShiftLeftSecurity/sast-scan" +homepage: "https://github.com/ShiftLeftSecurity/sast-scan" +description: >- + Scan is a free open-source DevSecOps platform for detecting security issues in + source code and dependencies. It supports a broad range of languages and CI/CD + pipelines. + Note: ShiftLeft rebranded to Qwiet AI in 2023, which was subsequently acquired + by Harness in September 2025. This open-source project is no longer maintained. diff --git a/data/tools/shipshape.yml b/data/tools/shipshape.yml new file mode 100644 index 0000000000..b0b7578a2f --- /dev/null +++ b/data/tools/shipshape.yml @@ -0,0 +1,17 @@ +name: shipshape +categories: + - linter +tags: + - c + - cpp + - java + - php +deprecated: true +license: Apache License 2.0 +types: + - cli +source: "https://github.com/google/shipshape" +homepage: "https://github.com/google/shipshape" +description: >- + Static program analysis platform that allows custom analyzers to plug in + through a common interface. diff --git a/data/tools/shisho.yml b/data/tools/shisho.yml new file mode 100644 index 0000000000..ead2ce2f8c --- /dev/null +++ b/data/tools/shisho.yml @@ -0,0 +1,16 @@ +name: shisho +categories: + - linter +tags: + - go + - terraform +license: AGPL-3.0 +types: + - cli + - service +source: 'https://github.com/flatt-security/shisho' +homepage: 'https://github.com/flatt-security/shisho' +description: >- + A lightweight static code analyzer designed for developers and security teams. + It allows you to analyze and transform source code with an intuitive DSL similar + to sed, but for code. diff --git a/data/tools/sigrid.yml b/data/tools/sigrid.yml new file mode 100644 index 0000000000..c3eb941169 --- /dev/null +++ b/data/tools/sigrid.yml @@ -0,0 +1,51 @@ +name: Sigrid +categories: + - linter +tags: + - c + - cpp + - csharp + - delphi + - go + - groovy + - java + - javascript + - kotlin + - lua + - nodejs + - objectivec + - perl + - php + - plsql + - powershell + - python + - r + - ruby + - rust + - scala + - shell + - sql + - swift + - typescript + - vbnet + - vue +license: proprietary +types: + - cli + - service +homepage: https://www.softwareimprovementgroup.com/solutions/sigrid-software-assurance-platform/ +description: >- + Sigrid helps you to improve your software by measuring your system's code quality, + and then compares the results against a benchmark of thousands of industry systems + to give you concrete advice on areas where you can improve. +resources: + - title: "Sigrid Security | Security without headache" + url: https://www.youtube.com/watch?v=mpQxzdv4oc8 + - title: Sigrid Open Source Health module + url: https://www.youtube.com/watch?v=UvhV9dyXWIU +pricing: https://www.softwareimprovementgroup.com/contact/ +plans: + free: false + oss: false +reviews: + - https://www.capterra.com/p/219140/Sigrid/ diff --git a/data/tools/similarity-tester.yml b/data/tools/similarity-tester.yml new file mode 100644 index 0000000000..23f4dcc749 --- /dev/null +++ b/data/tools/similarity-tester.yml @@ -0,0 +1,15 @@ +name: Similarity Tester +tags: + - asm + - c + - cpp + - java + - pascal + - lisp +categories: + - linter +license: BSD 3-Clause Revised License +types: + - service +homepage: 'https://dickgrune.com/Programs/similarity_tester/' +description: A tool that finds similarities between or within files to support you encountering DRY principle violations. diff --git a/data/tools/skunk.yml b/data/tools/skunk.yml new file mode 100644 index 0000000000..66ab5552bc --- /dev/null +++ b/data/tools/skunk.yml @@ -0,0 +1,13 @@ +name: Skunk +categories: + - linter +tags: + - ruby + - rails +license: MIT License +types: + - cli +source: "https://github.com/fastruby/skunk" +homepage: "https://github.com/fastruby/skunk" +description: >- + A SkunkScore Calculator for Ruby Code -- Find the most complicated code without test coverage! diff --git a/data/tools/skylos.yml b/data/tools/skylos.yml new file mode 100644 index 0000000000..77f697ac2a --- /dev/null +++ b/data/tools/skylos.yml @@ -0,0 +1,14 @@ +name: Skylos +categories: + - linter +tags: + - python + - typescript + - go + - security +types: + - cli +homepage: https://github.com/duriantaco/skylos +source: https://github.com/duriantaco/skylos +license: Apache 2.0 +description: 'Dead code detection, security scanning, secrets detection, and code quality analysis for Python, TypeScript, and Go. Framework-aware analysis with 98% recall. Includes CI/CD GitHub Action, VS Code extension, and MCP server for AI agent integration.' diff --git a/data/tools/sleek.yml b/data/tools/sleek.yml new file mode 100644 index 0000000000..93709ea7f2 --- /dev/null +++ b/data/tools/sleek.yml @@ -0,0 +1,14 @@ +name: sleek +categories: + - formatter +tags: + - sql +license: MIT +types: + - cli +source: "https://github.com/nrempel/sleek" +homepage: "https://github.com/nrempel/sleek" +description: >- + Sleek is a CLI tool for formatting SQL. + It helps you maintain a consistent style across your SQL code, enhancing readability and productivity. + The heavy lifting is done by the sqlformat crate. diff --git a/data/tools/slim-lint.yml b/data/tools/slim-lint.yml new file mode 100644 index 0000000000..88185458d3 --- /dev/null +++ b/data/tools/slim-lint.yml @@ -0,0 +1,11 @@ +name: slim-lint +categories: + - linter +tags: + - template +license: Other +types: + - cli +source: 'https://github.com/sds/slim-lint' +homepage: 'https://github.com/sds/slim-lint' +description: Configurable tool for analyzing Slim templates. diff --git a/data/tools/slither.yml b/data/tools/slither.yml new file mode 100644 index 0000000000..4b813e176e --- /dev/null +++ b/data/tools/slither.yml @@ -0,0 +1,14 @@ +name: slither +categories: + - formatter +tags: + - smart-contracts +license: GNU Affero General Public License v3.0 +types: + - cli +source: 'https://github.com/trailofbits/slither' +homepage: 'https://github.com/trailofbits/slither' +description: >- + Static analysis framework that runs a suite of vulnerability detectors, prints + visual information about contract details, and provides an API to easily write + custom analyses. diff --git a/data/tools/snyk.yml b/data/tools/snyk.yml new file mode 100644 index 0000000000..8314f9ce36 --- /dev/null +++ b/data/tools/snyk.yml @@ -0,0 +1,34 @@ +name: Snyk Code +categories: + - linter +tags: + - ci + - container + - go + - java + - javascript + - php + - python + - ruby + - security + - typescript + - csharp +license: proprietary +types: + - service +homepage: 'https://snyk.io' +pricing: https://snyk.io/plans/ +plans: + free: true + oss: true +description: >- + Snyk Code finds security vulnerabilities based on AI. Its speed of analysis allow us to + analyse your code in real time and deliver results when you hit the save button in your IDE. + Supported languages are Java, JavaScript, Python, PHP, C#, Go and TypeScript. Integrations with + GitHub, BitBucket and Gitlab. It is free to try and part of the Snyk platform also covering SCA, + containers and IaC. +resources: + - title: Product homepage + url: https://snyk.io/product/snyk-code/ + - title: Intro to Snyk Code Video + url: https://www.youtube.com/watch?v=fNYf0fgWOFQ diff --git a/data/tools/sobelow.yml b/data/tools/sobelow.yml new file mode 100644 index 0000000000..fe7dede7f6 --- /dev/null +++ b/data/tools/sobelow.yml @@ -0,0 +1,11 @@ +name: sobelow +categories: + - linter +tags: + - elixir +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/nccgroup/sobelow' +homepage: 'https://github.com/nccgroup/sobelow' +description: Security-focused static analysis for the Phoenix Framework. diff --git a/data/tools/solhint.yml b/data/tools/solhint.yml new file mode 100644 index 0000000000..799d27bcfa --- /dev/null +++ b/data/tools/solhint.yml @@ -0,0 +1,13 @@ +name: solhint +categories: + - linter +tags: + - smart-contracts +license: MIT License +types: + - cli +source: 'https://github.com/protofire/solhint' +homepage: 'https://protofire.github.io/solhint' +description: >- + Solhint is an open source project created by https://protofire.io. Its goal is + to provide a linting utility for Solidity code. diff --git a/data/tools/solium.yml b/data/tools/solium.yml new file mode 100644 index 0000000000..8fa228bac7 --- /dev/null +++ b/data/tools/solium.yml @@ -0,0 +1,13 @@ +name: solium +categories: + - linter +tags: + - smart-contracts +license: MIT License +types: + - cli +source: 'https://github.com/duaraghav8/Solium' +homepage: 'https://ethlint.readthedocs.io/en/latest' +description: >- + Solium is a linter to identify and fix style and security issues in Solidity + smart contracts. diff --git a/data/tools/sonar-delphi.yml b/data/tools/sonar-delphi.yml new file mode 100644 index 0000000000..c0974a257c --- /dev/null +++ b/data/tools/sonar-delphi.yml @@ -0,0 +1,11 @@ +name: SonarDelphi +categories: + - linter +tags: + - delphi +license: LGPL-3.0-only license +types: + - cli +source: 'https://github.com/integrated-application-development/sonar-delphi' +homepage: 'https://github.com/integrated-application-development/sonar-delphi' +description: Delphi static analyzer for the SonarQube code quality platform. diff --git a/data/tools/sonarqube-cloud.yml b/data/tools/sonarqube-cloud.yml new file mode 100644 index 0000000000..6a2009e678 --- /dev/null +++ b/data/tools/sonarqube-cloud.yml @@ -0,0 +1,50 @@ +name: SonarQube Cloud +categories: + - linter +tags: + - abap + - apex + - arm + - c + - cpp + - cloudformation + - cobol + - csharp + - css + - dockerfile + - go + - html + - java + - javascript + - kotlin + - kubernetes + - objectivec + - php + - plsql + - python + - ruby + - scala + - swift + - terraform + - typescript + - tsql + - vbnet + - xml + - ci + - security +license: proprietary +types: + - service +homepage: https://sonarcloud.io +description: >- + SonarQube Cloud enables your team to deliver clean code consistently and efficiently with a code review + tool that easily integrates into the cloud DevOps platforms and extend your CI/CD workflow. + SonarQube Cloud provides a free plan. +pricing: https://sonarcloud.io/pricing +plans: + free: false + oss: true +reviews: + - https://www.gartner.com/reviews/market/application-security-testing/vendor/sonarsource/product/sonarcloud + - https://www.peerspot.com/products/sonarcloud-reviews + - https://www.g2.com/products/sonarcloud/reviews diff --git a/data/tools/sonarqube-for-ide.yml b/data/tools/sonarqube-for-ide.yml new file mode 100644 index 0000000000..df66e25e0b --- /dev/null +++ b/data/tools/sonarqube-for-ide.yml @@ -0,0 +1,39 @@ +name: SonarQube for IDE +categories: + - linter +tags: + - c + - cpp + - cloudformation + - cobol + - csharp + - css + - dockerfile + - go + - html + - java + - javascript + - kotlin + - kubernetes + - php + - plsql + - python + - ruby + - scala + - swift + - terraform + - typescript + - tsql + - vbnet + - xml + - security +license: GNU Lesser General Public License v3.0 +types: + - cli +source: 'https://github.com/SonarSource/sonarlint-intellij' +homepage: 'https://sonarlint.org' +description: >- + SonarQube for IDE (formerly SonarLint) is a free IDE extension available for IntelliJ, VS Code, Visual Studio, and Eclipse, + to find and fix coding issues in real-time, flagging issues as you code, just like a spell-checker. + More than a linter, it also delivers rich contextual guidance to help developers understand + why there is an issue, assess the risk, and educate them on how to fix it. diff --git a/data/tools/sonarqube-server.yml b/data/tools/sonarqube-server.yml new file mode 100644 index 0000000000..43eeede5cc --- /dev/null +++ b/data/tools/sonarqube-server.yml @@ -0,0 +1,55 @@ +name: SonarQube Server +categories: + - linter +tags: + - abap + - apex + - arm + - c + - cpp + - cloudformation + - cobol + - csharp + - css + - dockerfile + - go + - html + - java + - javascript + - kotlin + - kubernetes + - objectivec + - php + - plsql + - python + - ruby + - scala + - swift + - terraform + - typescript + - tsql + - vbnet + - xml + - ci + - security +license: GNU Lesser General Public License v3.0 +types: + - service +source: "https://github.com/SonarSource/sonarqube" +homepage: "https://sonarqube.org" +description: SonarQube empowers development teams with a code quality and security solution + that deeply integrates into your enterprise environment; + enabling you to deploy clean code consistently and reliably. + SonarQube provides a free and open source Community Build. +pricing: "https://www.sonarsource.com/plans-and-pricing/" +resources: + - title: Write Cleaner, Safer, Modern C++ Code with SonarQube + url: https://www.youtube.com/watch?v=WPHVPbxCAwE + - title: Write cleaner, safer Python code with SonarQube + url: https://www.youtube.com/watch?v=ow-yuIlCuHk +demos: + - https://next.sonarqube.com/sonarqube/projects +reviews: + - https://www.gartner.com/reviews/market/application-security-testing/vendor/sonarsource/product/sonarqube + - https://www.capterra.com/p/210481/SonarQube/ + - https://www.peerspot.com/products/sonarqube-reviews diff --git a/data/tools/sonatype.yml b/data/tools/sonatype.yml new file mode 100644 index 0000000000..cced0436ae --- /dev/null +++ b/data/tools/sonatype.yml @@ -0,0 +1,35 @@ +name: Sonatype +categories: + - linter +tags: + - ci + - security + - java + - kotlin + - go + - scala + - clojure + - groovy + - javascript + - coffeescript + - csharp + - vbasic + - fsharp + - python + - ruby + - swift + - php + - objectivec + - c + - cpp + - rust + - r +license: proprietary +types: + - service +source: https://www.sonatype.com +homepage: https://www.sonatype.com +description: >- + Reports known vulnerabilities in common dependencies and recommends updated packages + to minimize breaking changes +pricing: https://www.sonatype.com/products/pricing diff --git a/data/tools/soot.yml b/data/tools/soot.yml new file mode 100644 index 0000000000..8fbd7170c5 --- /dev/null +++ b/data/tools/soot.yml @@ -0,0 +1,11 @@ +name: Soot +categories: + - linter +tags: + - java +license: GNU Lesser General Public License v2.1 +types: + - cli +source: 'https://github.com/soot-oss/soot' +homepage: 'https://soot-oss.github.io/soot' +description: A framework for analyzing and transforming Java and Android applications. diff --git a/data/tools/sorbet.yml b/data/tools/sorbet.yml new file mode 100644 index 0000000000..799cd4198a --- /dev/null +++ b/data/tools/sorbet.yml @@ -0,0 +1,11 @@ +name: Sorbet +categories: + - linter +tags: + - ruby +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/sorbet/sorbet' +homepage: 'https://sorbet.org' +description: 'A fast, powerful type checker designed for Ruby.' diff --git a/data/tools/soto.yml b/data/tools/soto.yml new file mode 100644 index 0000000000..5d0a2348b2 --- /dev/null +++ b/data/tools/soto.yml @@ -0,0 +1,22 @@ +name: Soto Platform +categories: + - linter +tags: + - abap + - c + - cpp + - csharp + - php + - typescript + - java +license: proprietary +types: + - cli +homepage: "https://www.hello2morrow.com/products/sotograph" +description: >- + Suite of static analysis tools consisting of the three components + Sotoarc (Architecture Analysis), Sotograph (Quality Analysis), and Sotoreport (Quality report). + Helps find differences between architecture and implementation, interface violations (e.g. external access of private + parts of subsystems, detection of all classes, files, packages and subsystems which are strongly coupled by cyclical relationships + and more. + The Sotograph product family runs on Windows and Linux. diff --git a/data/tools/sourcemeter.yml b/data/tools/sourcemeter.yml new file mode 100644 index 0000000000..73f87839ff --- /dev/null +++ b/data/tools/sourcemeter.yml @@ -0,0 +1,20 @@ +name: SourceMeter +categories: + - linter +tags: + - c + - cpp + - java + - csharp + - python +license: proprietary +types: + - cli +homepage: https://www.sourcemeter.com/ +description: >- + Static Code Analysis for C/C++, Java, C#, Python, and RPG III and RPG IV versions + (including free-form). +pricing: https://www.sourcemeter.com/download +plans: + free: true + oss: false diff --git a/data/tools/spark.yml b/data/tools/spark.yml new file mode 100644 index 0000000000..e8d1314b51 --- /dev/null +++ b/data/tools/spark.yml @@ -0,0 +1,11 @@ +name: SPARK +categories: +- linter +tags: +- ada +license: proprietary +types: +- cli +homepage: https://www.adacore.com/about-spark +description: Static analysis and formal verification toolset for Ada. +pricing: https://www.adacore.com/pricing diff --git a/data/tools/specificity-graph.yml b/data/tools/specificity-graph.yml new file mode 100644 index 0000000000..32167cffae --- /dev/null +++ b/data/tools/specificity-graph.yml @@ -0,0 +1,11 @@ +name: Specificity Graph +categories: + - linter +tags: + - css +license: MIT License +types: + - cli +source: "https://github.com/pocketjoso/specificity-graph" +homepage: "https://github.com/pocketjoso/specificity-graph" +description: CSS Specificity Graph Generator. diff --git a/data/tools/spectral.yml b/data/tools/spectral.yml new file mode 100644 index 0000000000..1b40da4939 --- /dev/null +++ b/data/tools/spectral.yml @@ -0,0 +1,14 @@ +name: Spectral +categories: + - linter +tags: + - json + - yaml +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/stoplightio/spectral' +homepage: 'https://stoplight.io/open-source/spectral' +description: >- + A flexible JSON/YAML linter, with out-of-the-box support for OpenAPI v2/v3 and + AsyncAPI v2. diff --git a/data/tools/splint.yml b/data/tools/splint.yml new file mode 100644 index 0000000000..4b4b1942ce --- /dev/null +++ b/data/tools/splint.yml @@ -0,0 +1,12 @@ +name: splint +categories: + - linter +tags: + - c + - cpp +license: Other +types: + - cli +source: 'https://github.com/ravenexp/splint' +homepage: 'http://splint.org' +description: Annotation-assisted static program checker. diff --git a/data/tools/spoon.yml b/data/tools/spoon.yml new file mode 100644 index 0000000000..dfa4b4b085 --- /dev/null +++ b/data/tools/spoon.yml @@ -0,0 +1,15 @@ +name: Spoon +categories: + - formatter +tags: + - java +license: Other +types: + - cli +source: 'https://github.com/INRIA/spoon' +homepage: 'https://spoon.gforge.inria.fr' +description: >- + Spoon is a metaprogramming library to analyze and transform Java source code + (incl Java 9, 10, 11, 12, 13, 14). It parses source files to build a + well-designed AST with powerful analysis and transformation API. Can be + integrated in Maven and Gradle. diff --git a/data/tools/spotbugs.yml b/data/tools/spotbugs.yml new file mode 100644 index 0000000000..4324746bcd --- /dev/null +++ b/data/tools/spotbugs.yml @@ -0,0 +1,13 @@ +name: SpotBugs +categories: + - linter +tags: + - java +license: GNU Lesser General Public License v2.1 +types: + - cli +source: 'https://github.com/spotbugs/spotbugs' +homepage: 'https://spotbugs.github.io' +description: >- + SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs + in Java code. diff --git a/data/tools/sqlcheck.yml b/data/tools/sqlcheck.yml new file mode 100644 index 0000000000..0d75066b3e --- /dev/null +++ b/data/tools/sqlcheck.yml @@ -0,0 +1,14 @@ +name: sqlcheck +categories: + - linter +tags: + - sql +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/jarulraj/sqlcheck' +homepage: 'https://github.com/jarulraj/sqlcheck' +resources: + - title: "SQLCheck: Automated Detection and Diagnosis of SQL Anti-Patterns" + url: https://www.youtube.com/watch?v=5vHhuuPy3FI +description: Automatically identify anti-patterns in SQL queries. diff --git a/data/tools/sqlfluff.yml b/data/tools/sqlfluff.yml new file mode 100644 index 0000000000..30f8fbb610 --- /dev/null +++ b/data/tools/sqlfluff.yml @@ -0,0 +1,15 @@ +name: SQLFluff +categories: + - linter + - formatter +tags: + - sql +license: MIT License +types: + - cli +source: 'https://github.com/sqlfluff/sqlfluff' +homepage: 'https://www.sqlfluff.com/' +description: Multiple dialect SQL linter and formatter. +resources: + - title: Official SQLFluff documentation + url: https://docs.sqlfluff.com/en/stable/ diff --git a/data/tools/sqlint.yml b/data/tools/sqlint.yml new file mode 100644 index 0000000000..5bc4556eee --- /dev/null +++ b/data/tools/sqlint.yml @@ -0,0 +1,11 @@ +name: sqlint +categories: + - linter +tags: + - sql +license: MIT License +types: + - cli +source: 'https://github.com/purcell/sqlint' +homepage: 'https://github.com/purcell/sqlint' +description: Simple SQL linter. diff --git a/data/tools/sqlvet.yml b/data/tools/sqlvet.yml new file mode 100644 index 0000000000..86ac2a0e0f --- /dev/null +++ b/data/tools/sqlvet.yml @@ -0,0 +1,15 @@ +name: sqlvet +categories: + - linter +tags: + - go + - sql +license: MIT License +types: + - cli +source: 'https://github.com/houqp/sqlvet' +homepage: 'https://github.com/houqp/sqlvet' +description: >- + Performs static analysis on raw SQL queries in your Go code base to surface potential runtime errors. + It checks for SQL syntax error, identifies unsafe queries that could potentially lead to SQL injections + makes sure column count matches value count in INSERT statements and validates table- and column names. diff --git a/data/tools/squawk.yml b/data/tools/squawk.yml new file mode 100644 index 0000000000..98a3a604cd --- /dev/null +++ b/data/tools/squawk.yml @@ -0,0 +1,13 @@ +name: squawk +categories: + - linter +tags: + - sql +license: GPL-3.0 License +types: + - cli +source: 'https://github.com/sbdchd/squawk' +homepage: 'https://squawkhq.com' +description: >- + Linter for PostgreSQL, focused on migrations. + Prevents unexpected downtime caused by database migrations and encourages best practices around Postgres schemas and SQL. diff --git a/data/tools/stan.yml b/data/tools/stan.yml new file mode 100644 index 0000000000..5540aee328 --- /dev/null +++ b/data/tools/stan.yml @@ -0,0 +1,14 @@ +name: Stan +categories: + - linter +tags: + - haskell +license: Mozilla Public License 2.0 +types: + - cli +source: 'https://github.com/kowainik/stan' +homepage: 'https://kowainik.github.io/projects/stan' +description: >- + Stan is a command-line tool for analysing Haskell projects and outputting + discovered vulnerabilities in a helpful way with possible solutions for + detected problems. diff --git a/data/tools/standard-ruby.yml b/data/tools/standard-ruby.yml new file mode 100644 index 0000000000..73738fa17b --- /dev/null +++ b/data/tools/standard-ruby.yml @@ -0,0 +1,12 @@ +name: Standard Ruby +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/testdouble/standard' +homepage: 'https://github.com/testdouble/standard' +description: >- + Ruby Style Guide, with linter & automatic code fixer diff --git a/data/tools/standard.yml b/data/tools/standard.yml new file mode 100644 index 0000000000..5ad348594a --- /dev/null +++ b/data/tools/standard.yml @@ -0,0 +1,12 @@ +name: standard +categories: + - linter +tags: + - javascript + - nodejs +license: MIT License +types: + - cli +source: 'https://github.com/standard/standard' +homepage: 'http://standardjs.com' +description: An npm module that checks for Javascript Styleguide issues. diff --git a/data/tools/staticcheck.yml b/data/tools/staticcheck.yml new file mode 100644 index 0000000000..18f01a4350 --- /dev/null +++ b/data/tools/staticcheck.yml @@ -0,0 +1,16 @@ +name: staticcheck +categories: + - linter +tags: + - go +license: Other +types: + - cli +source: 'https://github.com/dominikh/go-tools' +homepage: 'https://staticcheck.io' +resources: + - title: "GopherCon 2019: Denis Isaev - Go Linters: Myths and Best Practices" + url: https://www.youtube.com/watch?v=1U-Gzz4TYP0 +description: >- + Go static analysis that specialises in finding bugs, simplifying code and + improving performance. diff --git a/data/tools/staticlint.yml b/data/tools/staticlint.yml new file mode 100644 index 0000000000..9a3421e908 --- /dev/null +++ b/data/tools/staticlint.yml @@ -0,0 +1,11 @@ +name: StaticLint +categories: + - linter +tags: + - julia +license: Other +types: + - cli +source: 'https://github.com/julia-vscode/StaticLint.jl' +homepage: 'https://github.com/julia-vscode/StaticLint.jl' +description: Static Code Analysis for Julia diff --git a/data/tools/staticreviewer.yml b/data/tools/staticreviewer.yml new file mode 100644 index 0000000000..d14de83d95 --- /dev/null +++ b/data/tools/staticreviewer.yml @@ -0,0 +1,47 @@ +name: StaticReviewer +categories: + - linter +tags: + - csharp + - vbnet + - asp + - aspnet + - java + - javascript + - jsp + - json + - typescript + - apex + - python + - r + - go + - kotlin + - clojure + - groovy + - actionscript + - powershell + - rust + - lua + - xml + - c + - cpp + - php + - scala + - objectivec + - swift + - shell + - cobol + - plsql + - vba + - abap + - sql + - tsql +license: proprietary +types: + - cli +homepage: >- + https://securityreviewer.atlassian.net/wiki/spaces/KC/pages/196633/Static+Reviewer +description: >- + Static Reviewer executes code checks according to the most relevant Secure Coding Standards, OWASP, CWE, CVE, CVSS, MISRA, CERT, + for 40+ programming languages, using 1000+ built-in validation rules for Security, Deadcode & Best Practices + Available a module for Software Composition Analysis (SCA) to find vulnerabilities in open source and third party libraries. diff --git a/data/tools/statix.yml b/data/tools/statix.yml new file mode 100644 index 0000000000..29cc5d6496 --- /dev/null +++ b/data/tools/statix.yml @@ -0,0 +1,13 @@ +name: statix +categories: + - linter +tags: + - nix +license: MIT +types: + - cli +source: "https://github.com/nerdypepper/statix" +homepage: "https://github.com/nerdypepper/statix" +description: >- + Lints and suggestions for the Nix programming language. + "statix check" highlights antipatterns in Nix code. "statix fix" can fix several such occurrences. diff --git a/data/tools/stc.yml b/data/tools/stc.yml new file mode 100644 index 0000000000..820231b97d --- /dev/null +++ b/data/tools/stc.yml @@ -0,0 +1,12 @@ +name: stc +categories: + - linter +tags: + - typescript +license: Apache-2.0 +types: + - cli +source: 'https://github.com/dudykr/stc' +homepage: 'https://stc.dudy.dev' +description: >- + Speedy TypeScript type checker written in Rust \ No newline at end of file diff --git a/data/tools/steady.yml b/data/tools/steady.yml new file mode 100644 index 0000000000..7c4efcb10b --- /dev/null +++ b/data/tools/steady.yml @@ -0,0 +1,15 @@ +name: steady +categories: + - linter +tags: + - java +license: Apache-2.0 +types: + - cli +deprecated: true +source: "https://github.com/eclipse/steady" +homepage: "https://eclipse.github.io/steady/" +description: >- + Analyses your Java applications for open-source dependencies with known + vulnerabilities, using both static analysis and testing to determine code + context and usage for greater accuracy. diff --git a/data/tools/steampunk-spotter.yml b/data/tools/steampunk-spotter.yml new file mode 100644 index 0000000000..db7f5c1cc5 --- /dev/null +++ b/data/tools/steampunk-spotter.yml @@ -0,0 +1,26 @@ +name: Steampunk Spotter +categories: + - linter + - formatter +tags: + - ansible + - configmanagement + - security +license: proprietary +types: + - cli + - gui + - service + - ide-plugin +source: 'https://gitlab.com/xlab-steampunk/steampunk-spotter-client/spotter-cli' +homepage: 'https://steampunk.si/spotter/' +pricing: 'https://steampunk.si/spotter/pricing' +plans: + free: true + oss: false +resources: + - title: 'Steampunk Spotter: Simplify and Speed up Ansible Upgrades' + url: https://www.youtube.com/watch?v=JIzph_gqf08 + - title: 'Steampunk Spotter: Demo' + url: https://www.youtube.com/watch?v=yeggNPmtv04 +description: 'Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks.' diff --git a/data/tools/steep.yml b/data/tools/steep.yml new file mode 100644 index 0000000000..7e442b3d5c --- /dev/null +++ b/data/tools/steep.yml @@ -0,0 +1,11 @@ +name: Steep +categories: + - linter +tags: + - ruby +license: MIT License +types: + - cli +source: 'https://github.com/soutaro/steep' +homepage: 'https://github.com/soutaro/steep' +description: 'Gradual Typing for Ruby.' diff --git a/data/tools/stoke.yml b/data/tools/stoke.yml new file mode 100644 index 0000000000..4804aca81f --- /dev/null +++ b/data/tools/stoke.yml @@ -0,0 +1,14 @@ +name: STOKE +categories: + - formatter +tags: + - asm +license: Other +types: + - cli +source: 'https://github.com/StanfordPL/stoke' +homepage: 'https://github.com/StanfordPL/stoke' +description: >- + A programming-language agnostic stochastic optimizer for the x86_64 + instruction set. It uses random search to explore the extremely + high-dimensional space of all possible program transformations. diff --git a/data/tools/structcheck.yml b/data/tools/structcheck.yml new file mode 100644 index 0000000000..6eb9b0117a --- /dev/null +++ b/data/tools/structcheck.yml @@ -0,0 +1,11 @@ +name: structcheck +categories: + - linter +tags: + - go +license: GPL-3.0-only (original text) +types: + - cli +source: 'https://gitlab.com/opennota/check' +homepage: 'https://gitlab.com/opennota/check' +description: Find unused struct fields. diff --git a/data/tools/structslop.yml b/data/tools/structslop.yml new file mode 100644 index 0000000000..4ffa29f8a7 --- /dev/null +++ b/data/tools/structslop.yml @@ -0,0 +1,12 @@ +name: structslop +categories: + - linter + - formatter +tags: + - go +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/orijtech/structslop' +homepage: 'https://github.com/orijtech/structslop' +description: Static analyzer for Go that recommends struct field rearrangements to provide for maximum space/allocation efficiency diff --git a/data/tools/stylelint.yml b/data/tools/stylelint.yml new file mode 100644 index 0000000000..bfb698f352 --- /dev/null +++ b/data/tools/stylelint.yml @@ -0,0 +1,11 @@ +name: Stylelint +categories: + - linter +tags: + - css +license: MIT License +types: + - cli +source: 'https://github.com/stylelint/stylelint' +homepage: 'http://stylelint.io' +description: Linter for SCSS/CSS files. diff --git a/data/tools/styler.yml b/data/tools/styler.yml new file mode 100644 index 0000000000..3f4710aba3 --- /dev/null +++ b/data/tools/styler.yml @@ -0,0 +1,11 @@ +name: styler +categories: + - formatter +tags: + - r +license: GPL-3 +types: + - cli +source: 'https://github.com/r-lib/styler' +homepage: 'https://styler.r-lib.org' +description: Formatting of R source code files and pretty-printing of R code. diff --git a/data/tools/super-linter.yml b/data/tools/super-linter.yml new file mode 100644 index 0000000000..afb526176c --- /dev/null +++ b/data/tools/super-linter.yml @@ -0,0 +1,27 @@ +name: Super-Linter +categories: + - linter +tags: + - coffeescript + - configmanagement + - container + - go + - javascript + - json + - markdown + - perl + - python + - ruby + - shell + - typescript + - xml + - yaml +license: MIT License +types: + - cli +source: 'https://github.com/github/super-linter' +homepage: 'https://github.com/github/super-linter' +resources: + - title: "The Easiest Way to Lint Your Code: GitHub Super Linter Deep Dive" + url: https://www.youtube.com/watch?v=BCrtoZ04L1Y +description: Combination of multiple linters to install as a GitHub Action. diff --git a/data/tools/svace.yml b/data/tools/svace.yml new file mode 100644 index 0000000000..ebdede877e --- /dev/null +++ b/data/tools/svace.yml @@ -0,0 +1,16 @@ +name: Svace +categories: + - linter +tags: + - c + - cpp + - csharp + - java + - go + - security +license: proprietary +types: + - cli +homepage: https://www.ispras.ru/en/technologies/svace/ +description: >- + Static code analysis tool for Java,C,C++,C#,Go. diff --git a/data/tools/svf.yml b/data/tools/svf.yml new file mode 100644 index 0000000000..54f3d15da9 --- /dev/null +++ b/data/tools/svf.yml @@ -0,0 +1,14 @@ +name: SVF +categories: + - linter +tags: + - c + - cpp +license: Other +types: + - cli +source: 'https://github.com/SVF-tools/SVF' +homepage: 'https://svf-tools.github.io/SVF' +description: >- + A static tool that enables scalable and precise interprocedural dependence + analysis for C and C++ programs. diff --git a/data/tools/svls.yml b/data/tools/svls.yml new file mode 100644 index 0000000000..6219a2db64 --- /dev/null +++ b/data/tools/svls.yml @@ -0,0 +1,13 @@ +name: svls +categories: + - linter +tags: + - verilog +license: MIT License +types: + - cli +source: 'https://github.com/dalance/svls' +homepage: 'https://github.com/dalance/svls' +description: >- + A Language Server Protocol implementation for Verilog and + SystemVerilog, including lint capabilities. diff --git a/data/tools/swiftformat.yml b/data/tools/swiftformat.yml new file mode 100644 index 0000000000..5632de8006 --- /dev/null +++ b/data/tools/swiftformat.yml @@ -0,0 +1,11 @@ +name: SwiftFormat +categories: + - formatter +tags: + - swift +license: MIT License +types: + - cli +source: 'https://github.com/nicklockwood/SwiftFormat' +homepage: 'https://github.com/nicklockwood/SwiftFormat' +description: A library and command-line formatting tool for reformatting Swift code. diff --git a/data/tools/swiftlint.yml b/data/tools/swiftlint.yml new file mode 100644 index 0000000000..eed9e8f24e --- /dev/null +++ b/data/tools/swiftlint.yml @@ -0,0 +1,19 @@ +name: SwiftLint +categories: + - linter +tags: + - swift +license: MIT License +types: + - cli + - ide-plugin +source: "https://github.com/realm/SwiftLint" +homepage: "https://realm.github.io/SwiftLint" +description: A tool to enforce Swift style and conventions. +resources: + - title: "Mastering SwiftLint for Code Readability" + url: "https://www.youtube.com/watch?v=4YQ6DJ-xovY" + - title: "The Road to Cleaner Code w/ SwiftLint" + url: https://academy.realm.io/posts/slug-jp-simard-swiftlint/ +reviews: + - https://plugins.jetbrains.com/plugin/9175-swiftlint diff --git a/data/tools/symfony-insight.yml b/data/tools/symfony-insight.yml new file mode 100644 index 0000000000..9855c88480 --- /dev/null +++ b/data/tools/symfony-insight.yml @@ -0,0 +1,14 @@ +name: Symfony Insight +categories: +- linter +tags: +- php +- ci +- security +license: proprietary +types: +- service +homepage: https://insight.symfony.com/ +description: >- + Detect security risks, find bugs and provide actionable metrics for PHP projects. +pricing: https://insight.symfony.com/pricing diff --git a/data/tools/synopsys.yml b/data/tools/synopsys.yml new file mode 100644 index 0000000000..48d5814867 --- /dev/null +++ b/data/tools/synopsys.yml @@ -0,0 +1,30 @@ +name: Synopsys +categories: + - linter +tags: + - c + - ci + - cpp + - csharp + - fortran + - java + - javascript + - mobile + - nodejs + - php + - python + - ruby + - swift +license: proprietary +types: + - cli +homepage: >- + https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html +pricing: https://www.blackduck.com/static-analysis-tools-sast/coverity/get-pricing.html +plans: + free: false + oss: true +description: >- + A commercial static analysis platform that allows for scanning of multiple + languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, + and Swift). diff --git a/data/tools/sys.yml b/data/tools/sys.yml new file mode 100644 index 0000000000..e88a4ed5fe --- /dev/null +++ b/data/tools/sys.yml @@ -0,0 +1,13 @@ +name: Sys +categories: + - linter +tags: + - ocaml +license: GPL-2.0 License +types: + - cli +source: 'https://github.com/PLSysSec/sys' +homepage: 'https://github.com/PLSysSec/sys' +description: >- + A static/symbolic Tool for finding bugs in (browser) code. + It uses the LLVM AST to find bugs like uninitialized memory access. diff --git a/data/tools/sysdig.yml b/data/tools/sysdig.yml new file mode 100644 index 0000000000..c1dd40b03b --- /dev/null +++ b/data/tools/sysdig.yml @@ -0,0 +1,16 @@ +name: sysdig +categories: + - linter +tags: + - container +types: + - service +license: proprietary +homepage: 'https://sysdig.com/' +description: >- + A secure DevOps platform for cloud and container forensics. + Built on an open source stack, Sysdig provides Docker image scanning and + created Falco, the open standard for runtime threat detection for containers, Kubernetes and cloud. +resources: + - title: "Run confidently with secure DevOps" + url: "https://www.youtube.com/watch?v=KXfZWprVr0w" diff --git a/data/tools/tailor.yml b/data/tools/tailor.yml new file mode 100644 index 0000000000..2effb60af4 --- /dev/null +++ b/data/tools/tailor.yml @@ -0,0 +1,14 @@ +name: Tailor +categories: + - linter +tags: + - swift +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/sleekbyte/tailor' +homepage: 'https://sleekbyte.github.io/tailor' +description: >- + A static analysis and lint tool for source code written in Apple's Swift + programming language. diff --git a/data/tools/tangleguard.yml b/data/tools/tangleguard.yml new file mode 100644 index 0000000000..5bf812171d --- /dev/null +++ b/data/tools/tangleguard.yml @@ -0,0 +1,30 @@ +name: TangleGuard +categories: + - linter + - meta +tags: + - rust + - ci +license: proprietary +plans: + free: false + oss: true +types: + - cli + - service +wrapper: false +source: "https://github.com/TangleGuard" +homepage: "https://tangleguard.com/" +resources: + - title: TangleGuard Cloud + url: https://app.tangleguard.com/ + - title: TangleGuard Preview + url: https://youtu.be/whzbP1Hnsqs + - title: TangleGuard Documentation + url: https://docs.tangleguard.com/ +demo: + - https://app.tangleguard.com/project/github.com/TangleGuard/TangleGuard +description: >- + Helps you understand and maintain a scalable software architecture. + To do so, it generates a interactive, nested dependency graph out of the source code. + You can choose the level of details and get the portion of your codebase that matters to you. diff --git a/data/tools/tca.yml b/data/tools/tca.yml new file mode 100644 index 0000000000..bd8e69c132 --- /dev/null +++ b/data/tools/tca.yml @@ -0,0 +1,28 @@ +name: TencentCodeAnalysis +categories: + - linter +tags: + - ci + - csharp + - css + - go + - html + - java + - javascript + - kotlin + - php + - python + - scala + - typescript + - xml + - c + - cpp +license: MIT License +types: + - service + - cli +source: 'https://github.com/Tencent/CodeAnalysis' +deprecated: true +homepage: 'https://tca.tencent.com/' +description: >- + Tencent Cloud Code Analysis (TCA for short, code-named CodeDog inside the company early) is a comprehensive platform for code analysis and issue tracking. TCA consist of three components, server, web and client. It integrates of a number of self-developed tools, and also supports dynamic integration of code analysis tools in various programming languages. diff --git a/data/tools/tclchecker.yml b/data/tools/tclchecker.yml new file mode 100644 index 0000000000..d6e9a26ec8 --- /dev/null +++ b/data/tools/tclchecker.yml @@ -0,0 +1,13 @@ +name: tclchecker +categories: + - linter +tags: + - tcl +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt' +homepage: 'https://github.com/ActiveState/tdk/blob/master/docs/3.0/TDK_3.0_Checker.txt' +description: >- + A static syntax analysis module (as part of + [TDK](https://github.com/ActiveState/tdk)). diff --git a/data/tools/teamscale.yml b/data/tools/teamscale.yml new file mode 100644 index 0000000000..aa1237fe2d --- /dev/null +++ b/data/tools/teamscale.yml @@ -0,0 +1,28 @@ +name: Teamscale +categories: + - linter +tags: + - abap + - c + - ci + - cpp + - csharp + - java +license: proprietary +types: + - service + - ide-plugin +homepage: https://teamscale.com +description: >- + Static and dynamic analysis tool supporting more than 25 languages and direct IDE + integration. Free hosting for Open Source projects available on request. Free academic + licenses available. +resources: + - title: "CQSE Webinar: Architekturanalyse mit Teamscale (German)" + url: https://www.youtube.com/watch?v=fJVjv0153-U + - title: Teamscale Integration for Visual Studio + url: https://marketplace.visualstudio.com/items?itemName=CQSEGmbH.Teamscale +pricing: https://teamscale.com/pricing +plans: + free: false + oss: false diff --git a/data/tools/tern.yml b/data/tools/tern.yml new file mode 100644 index 0000000000..0b333b8138 --- /dev/null +++ b/data/tools/tern.yml @@ -0,0 +1,11 @@ +name: tern +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/ternjs/tern' +homepage: 'https://ternjs.net' +description: 'A JavaScript code analyzer for deep, cross-editor language support.' diff --git a/data/tools/terraform-compliance.yml b/data/tools/terraform-compliance.yml new file mode 100644 index 0000000000..87eaac83bc --- /dev/null +++ b/data/tools/terraform-compliance.yml @@ -0,0 +1,13 @@ +name: terraform-compliance +categories: + - linter +tags: + - configmanagement +license: MIT License +types: + - cli +source: 'https://github.com/eerkunt/terraform-compliance' +homepage: 'https://terraform-compliance.com' +description: >- + A lightweight, compliance- and security focused, BDD test framework against + Terraform. diff --git a/data/tools/terrascan.yml b/data/tools/terrascan.yml new file mode 100644 index 0000000000..907791ffa1 --- /dev/null +++ b/data/tools/terrascan.yml @@ -0,0 +1,13 @@ +name: terrascan +categories: + - linter +tags: + - configmanagement +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/cesar-rodriguez/terrascan' +homepage: 'https://github.com/cesar-rodriguez/terrascan' +description: >- + Collection of security and best practice tests for static code analysis of + Terraform templates. diff --git a/data/tools/test.yml b/data/tools/test.yml new file mode 100644 index 0000000000..2148ef5794 --- /dev/null +++ b/data/tools/test.yml @@ -0,0 +1,11 @@ +name: test +categories: + - linter +tags: + - go +license: BSD-3-Clause (original text) +types: + - cli +source: 'https://pkg.go.dev/testing' +homepage: 'https://pkg.go.dev/testing' +description: Show location of test failures from the stdlib testing module. diff --git a/data/tools/texlab.yml b/data/tools/texlab.yml new file mode 100644 index 0000000000..daff1fec42 --- /dev/null +++ b/data/tools/texlab.yml @@ -0,0 +1,13 @@ +name: TeXLab +categories: + - linter +tags: + - latex +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/latex-lsp/texlab' +homepage: 'https://texlab.netlify.app' +description: >- + A Language Server Protocol implementation for TeX/LaTeX, including lint + capabilities. diff --git a/data/tools/textlint.yml b/data/tools/textlint.yml new file mode 100644 index 0000000000..441ff0978b --- /dev/null +++ b/data/tools/textlint.yml @@ -0,0 +1,11 @@ +name: textlint +categories: + - linter +tags: + - markdown +license: MIT Licence +types: + - cli +source: "https://github.com/textlint/textlint" +homepage: "https://textlint.github.io/" +description: textlint is an open source text linting utility written in JavaScript. diff --git a/data/tools/tflint.yml b/data/tools/tflint.yml new file mode 100644 index 0000000000..c17a38c615 --- /dev/null +++ b/data/tools/tflint.yml @@ -0,0 +1,13 @@ +name: tflint +categories: + - linter +tags: + - configmanagement +license: Mozilla Public License 2.0 +types: + - cli +source: 'https://github.com/wata727/tflint' +homepage: 'https://github.com/wata727/tflint' +description: >- + A Terraform linter for detecting errors that can not be detected by `terraform + plan`. diff --git a/data/tools/tfsec.yml b/data/tools/tfsec.yml new file mode 100644 index 0000000000..e354644398 --- /dev/null +++ b/data/tools/tfsec.yml @@ -0,0 +1,15 @@ +name: tfsec +categories: + - linter +tags: + - configmanagement + - security +license: MIT License +types: + - cli +source: 'https://github.com/tfsec/tfsec' +homepage: 'https://github.com/tfsec/tfsec' +description: >- + Terraform static analysis tool that prevents potential security issues + by checking cloud misconfigurations at build time and directly integrates with the HCL parser for better results. + Checks for violations of AWS, Azure and GCP security best practice recommendations. diff --git a/data/tools/threatmapper.yml b/data/tools/threatmapper.yml new file mode 100644 index 0000000000..6097234089 --- /dev/null +++ b/data/tools/threatmapper.yml @@ -0,0 +1,25 @@ +name: ThreatMapper +categories: + - linter +tags: + - container + - ci + - security + - java + - go + - php + - nodejs + - javascript + - ruby + - dotnet + - rust + - python +license: Apache-2.0 License +types: + - service +source: "https://github.com/deepfence/ThreatMapper" +homepage: "https://github.com/deepfence/ThreatMapper" +description: >- + Vulnerability Scanner and Risk Evaluation for containers, serverless and hosts at runtime. ThreatMapper generates runtime BOMs from + dependencies and operating system packages, matches against multiple threat feeds, scans for unprotected secrets, and scores issues + based on severity and risk-of-exploit. diff --git a/data/tools/todocheck.yml b/data/tools/todocheck.yml new file mode 100644 index 0000000000..ce13f6aeec --- /dev/null +++ b/data/tools/todocheck.yml @@ -0,0 +1,25 @@ +name: todocheck +categories: + - linter +tags: + - javascript + - typescript + - python + - c + - cpp + - scala + - java + - rust + - swift + - go + - groovy + - csharp + - shell + - php + - r +license: MIT +types: + - cli +source: 'https://github.com/preslavmihaylov/todocheck' +homepage: 'https://github.com/preslavmihaylov/todocheck' +description: Linter for integrating annotated TODOs with your issue trackers diff --git a/data/tools/traceroute.yml b/data/tools/traceroute.yml new file mode 100644 index 0000000000..5370885315 --- /dev/null +++ b/data/tools/traceroute.yml @@ -0,0 +1,13 @@ +name: Traceroute +categories: + - linter +tags: + - ruby + - rails +license: MIT License +types: + - cli +source: "https://github.com/amatsuda/traceroute" +homepage: "https://github.com/amatsuda/traceroute" +description: >- + A Rake task gem that helps you find the unused routes and controller actions for your Rails 3+ app. diff --git a/data/tools/trivy.yml b/data/tools/trivy.yml new file mode 100644 index 0000000000..549a1ae875 --- /dev/null +++ b/data/tools/trivy.yml @@ -0,0 +1,19 @@ +name: trivy +categories: + - linter +tags: + - container + - ruby + - php + - nodejs + - javascript + - rust +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/aquasecurity/trivy' +homepage: 'https://github.com/aquasecurity/trivy' +description: > + A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. + Trivy detects vulnerabilities of OS packages (Alpine, RHEL, CentOS, etc.) and application dependencies (Bundler, Composer, npm, yarn, etc.). + Checks containers and filesystems. diff --git a/data/tools/trufflehog.yml b/data/tools/trufflehog.yml new file mode 100644 index 0000000000..9e2d0fb591 --- /dev/null +++ b/data/tools/trufflehog.yml @@ -0,0 +1,14 @@ +name: trufflehog +categories: + - linter +tags: + - security +license: AGPL-3.0 +types: + - cli +source: 'https://github.com/trufflesecurity/trufflehog' +homepage: 'https://trufflesecurity.com' +description: >- + Find credentials all over the place + + TruffleHog is an open source secret-scanning engine that resolves exposed secrets across your company’s entire tech stack. diff --git a/data/tools/trunk.yml b/data/tools/trunk.yml new file mode 100644 index 0000000000..a30cc1d614 --- /dev/null +++ b/data/tools/trunk.yml @@ -0,0 +1,39 @@ +name: trunk +categories: + - linter + - formatter +tags: + - javascript + - typescript + - ansible + - c + - cpp + - cloudformation + - dockerfile + - go + - java + - markdown + - protobuf + - python + - ruby + - rust + - terraform +license: proprietary +types: + - cli +source: https://github.com/trunk-io/ +homepage: https://trunk.io +description: >- + Modern repositories include many technologies, each with its own set of linters. + With 30+ linters and counting, Trunk makes it dead-simple to identify, install, + configure, and run the right linters, static analyzers, and formatters for all your + repos. +resources: + - title: Trunk GitHub Action + url: https://github.com/trunk-io/trunk-action + - title: Community Slack Channel + url: https://slack.trunk.io +pricing: https://trunk.io/pricing +plans: + free: true + oss: true diff --git a/data/tools/trustinsoft.yml b/data/tools/trustinsoft.yml new file mode 100644 index 0000000000..31d9381340 --- /dev/null +++ b/data/tools/trustinsoft.yml @@ -0,0 +1,29 @@ +name: TrustInSoft Analyzer +categories: + - linter +tags: + - c + - cpp +license: proprietary +types: + - cli +homepage: 'https://trust-in-soft.com' +description: >- + Exhaustive detection of coding errors and their associated security vulnerabilities. + This encompasses a sound undefined behavior detection (buffer overflows, + out-of-bounds array accesses, null-pointer dereferences, use-after-free, divide-by-zeros, + uninitialized memory accesses, signed overflows, invalid pointer arithmetic, etc.), + data flow and control flow verification as well as full functional verification of formal + specifications. All versions of C up to C18 and C++ up to C++20 are supported. + TrustInSoft Analyzer will acquire ISO 26262 qualification in Q2'2023 (TCL3). + A MISRA C checker is also bundled. +resources: + - title: TrustInSoft blog + url: https://trust-in-soft.com/resources/news/ + - title: TrustInSoft white papers + url: https://trust-in-soft.com/resources/news/?_types=white-papers +demos: + - https://github.com/TrustInSoft/demos + - https://github.com/TrustInSoft/jenkins-demos +reviews: + - https://www.gartner.com/reviews/market/application-security-testing/vendor/trustinsoft/reviews \ No newline at end of file diff --git a/data/tools/tscancode.yml b/data/tools/tscancode.yml new file mode 100644 index 0000000000..f699cd9eaa --- /dev/null +++ b/data/tools/tscancode.yml @@ -0,0 +1,16 @@ +name: TscanCode +categories: + - linter +tags: + - c + - cpp + - csharp + - lua +license: Other +types: + - cli +source: 'https://github.com/Tencent/TscanCode' +homepage: 'https://github.com/Tencent/TscanCode' +description: >- + A fast and accurate static analysis solution for C/C++, C#, Lua codes provided + by Tencent. Using GPLv3 license. diff --git a/data/tools/tslint-clean-code.yml b/data/tools/tslint-clean-code.yml new file mode 100644 index 0000000000..e262f242ba --- /dev/null +++ b/data/tools/tslint-clean-code.yml @@ -0,0 +1,11 @@ +name: tslint-clean-code +categories: + - linter +tags: + - typescript +license: Other +types: + - cli +source: 'https://github.com/Glavin001/tslint-clean-code' +homepage: 'https://www.npmjs.com/package/tslint-clean-code' +description: A set of TSLint rules inspired by the Clean Code handbook. diff --git a/data/tools/tslint-microsoft-contrib.yml b/data/tools/tslint-microsoft-contrib.yml new file mode 100644 index 0000000000..e98849d0df --- /dev/null +++ b/data/tools/tslint-microsoft-contrib.yml @@ -0,0 +1,14 @@ +name: tslint-microsoft-contrib +categories: + - linter +tags: + - typescript +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/Microsoft/tslint-microsoft-contrib' +homepage: 'https://github.com/Microsoft/tslint-microsoft-contrib' +description: >- + A set of tslint rules for static code analysis of TypeScript projects + maintained by Microsoft. diff --git a/data/tools/tslint.yml b/data/tools/tslint.yml new file mode 100644 index 0000000000..4982537453 --- /dev/null +++ b/data/tools/tslint.yml @@ -0,0 +1,21 @@ +name: tslint +categories: + - linter +tags: + - typescript +license: Apache-2.0 license +deprecated: true +types: + - cli +source: 'https://github.com/palantir/tslint' +homepage: 'https://palantir.github.io/tslint/' +resources: + - title: "Nextjs: tslint to eslint" + url: https://www.youtube.com/watch?v=qXzIW4CfpxA +description: >- + TSLint has been deprecated as of 2019. Please see [this issue](https://github.com/palantir/tslint/issues/4534) + for more details. `typescript-eslint` is now your best option for linting TypeScript. + + TSLint is an extensible static analysis tool that checks TypeScript code for readability, maintainability, + and functionality errors. It is widely supported across modern editors & build systems and can be customized + with your own lint rules, configurations, and formatters. diff --git a/data/tools/tsqllint.yml b/data/tools/tsqllint.yml new file mode 100644 index 0000000000..16b8c3a594 --- /dev/null +++ b/data/tools/tsqllint.yml @@ -0,0 +1,11 @@ +name: tsqllint +categories: + - linter +tags: + - sql +license: MIT License +types: + - cli +source: 'https://github.com/tsqllint/tsqllint' +homepage: 'https://github.com/tsqllint/tsqllint' +description: T-SQL-specific linter. diff --git a/data/tools/tsqlrules.yml b/data/tools/tsqlrules.yml new file mode 100644 index 0000000000..3071d30f84 --- /dev/null +++ b/data/tools/tsqlrules.yml @@ -0,0 +1,11 @@ +name: TSqlRules +categories: + - linter +tags: + - sql +license: MIT License +types: + - cli +source: 'https://github.com/ashleyglee/TSqlRules' +homepage: 'https://github.com/ashleyglee/TSqlRules' +description: TSQL Static Code Analysis Rules for SQL Server. diff --git a/data/tools/tsunami.yml b/data/tools/tsunami.yml new file mode 100644 index 0000000000..8917c436cb --- /dev/null +++ b/data/tools/tsunami.yml @@ -0,0 +1,17 @@ +name: Tsunami Security Scanner +categories: + - linter +tags: + - security +license: Apache-2.0 License +types: + - cli +source: 'https://github.com/google/tsunami-security-scanner' +homepage: 'https://github.com/google/tsunami-security-scanner' +description: >- + A general purpose network security scanner with an extensible plugin system for + detecting high severity RCE-like vulnerabilities with high confidence. + Custom detectors for finding vulnerabilities (e.g. open APIs) can be added. +resources: + - title: "Tsunami Security Scanner from Google: Identify Critical vulnerabilities with high confidence - LAB" + url: https://www.youtube.com/watch?v=SMlWes1XnWw diff --git a/data/tools/tuli.yml b/data/tools/tuli.yml new file mode 100644 index 0000000000..527b231247 --- /dev/null +++ b/data/tools/tuli.yml @@ -0,0 +1,11 @@ +name: Tuli +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/ircmaxell/Tuli' +homepage: 'https://github.com/ircmaxell/Tuli' +description: A static analysis engine. diff --git a/data/tools/twig-lint.yml b/data/tools/twig-lint.yml new file mode 100644 index 0000000000..753c165e20 --- /dev/null +++ b/data/tools/twig-lint.yml @@ -0,0 +1,11 @@ +name: twig-lint +categories: + - linter +tags: + - php +license: MIT License +types: + - cli +source: 'https://github.com/asm89/twig-lint' +homepage: 'https://github.com/asm89/twig-lint' +description: twig-lint is a lint tool for your twig files. diff --git a/data/tools/twiggy.yml b/data/tools/twiggy.yml new file mode 100644 index 0000000000..32cb5f015f --- /dev/null +++ b/data/tools/twiggy.yml @@ -0,0 +1,14 @@ +name: Twiggy +categories: + - linter +tags: + - binary + - wasm +license: Other +types: + - cli +source: "https://github.com/rustwasm/twiggy" +homepage: "https://github.com/rustwasm/twiggy" +description: >- + Analyzes a binary's call graph to profile code size. The goal is to slim down + wasm binary size. diff --git a/data/tools/ty.yml b/data/tools/ty.yml new file mode 100644 index 0000000000..21c340927a --- /dev/null +++ b/data/tools/ty.yml @@ -0,0 +1,12 @@ +name: ty +categories: + - linter +tags: + - python +license: Other +types: + - cli +source: 'https://github.com/astral-sh/ty' +homepage: 'https://docs.astral.sh/ty/' +description: >- + An extremely fast Python type checker written in Rust. diff --git a/data/tools/typescript-call-graph.yml b/data/tools/typescript-call-graph.yml new file mode 100644 index 0000000000..5b4cab9282 --- /dev/null +++ b/data/tools/typescript-call-graph.yml @@ -0,0 +1,13 @@ +name: TypeScript Call Graph +categories: + - linter +tags: + - typescript +license: MIT License +types: + - cli +source: 'https://github.com/whyboris/TypeScript-Call-Graph' +homepage: 'https://github.com/whyboris/TypeScript-Call-Graph' +description: >- + CLI to generate an interactive graph of functions and calls from your + TypeScript files diff --git a/data/tools/typescript-eslint.yml b/data/tools/typescript-eslint.yml new file mode 100644 index 0000000000..247619d9b4 --- /dev/null +++ b/data/tools/typescript-eslint.yml @@ -0,0 +1,14 @@ +name: TypeScript ESLint +categories: + - linter +tags: + - typescript +license: Other +types: + - cli +source: "https://github.com/typescript-eslint/typescript-eslint" +homepage: "https://github.com/typescript-eslint/typescript-eslint" +description: TypeScript language extension for eslint. +resources: + - title: VSCode ESLint, Prettier & Airbnb Style Guide Setup + url: https://www.youtube.com/watch?v=SydnKbGc7W8 diff --git a/data/tools/typl.yml b/data/tools/typl.yml new file mode 100644 index 0000000000..c0bf570d45 --- /dev/null +++ b/data/tools/typl.yml @@ -0,0 +1,13 @@ +name: TypL +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/getify/TypL' +homepage: 'https://typl.dev' +description: >- + With TypL, you just write completely standard JS, and the tool figures + out your types via powerful inferencing. diff --git a/data/tools/typos b/data/tools/typos new file mode 100644 index 0000000000..6bce526db1 --- /dev/null +++ b/data/tools/typos @@ -0,0 +1,13 @@ +name: typos +categories: + - linter +tags: + - writing +license: Apache License +types: + - cli +source: 'https://github.com/crate-ci/typos' +homepage: 'https://github.com/crate-ci/typos' +description: >- + Finds and corrects spelling mistakes in source code. + Fast enough to run on monorepos and low false positives so you can run on PRs. diff --git a/data/tools/unconvert.yml b/data/tools/unconvert.yml new file mode 100644 index 0000000000..8a7d306356 --- /dev/null +++ b/data/tools/unconvert.yml @@ -0,0 +1,11 @@ +name: unconvert +categories: + - linter +tags: + - go +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/mdempsky/unconvert' +homepage: 'https://github.com/mdempsky/unconvert' +description: Detect redundant type conversions. diff --git a/data/tools/undebt.yml b/data/tools/undebt.yml new file mode 100644 index 0000000000..cb85808acd --- /dev/null +++ b/data/tools/undebt.yml @@ -0,0 +1,16 @@ +name: Undebt +categories: + - linter +tags: + - c + - cpp + - java + - php +license: Other +types: + - cli +source: 'https://github.com/Yelp/undebt' +homepage: 'https://github.com/Yelp/undebt' +description: >- + Language-independent tool for massive, automatic, programmable refactoring + based on simple pattern definitions. diff --git a/data/tools/understand.yml b/data/tools/understand.yml new file mode 100644 index 0000000000..d7d3958447 --- /dev/null +++ b/data/tools/understand.yml @@ -0,0 +1,35 @@ +name: Understand +categories: +- linter +tags: +- ada +- asm +- c +- cpp +- csharp +- cobol +- css +- fortran +- html +- java +- javascript +- delphi +- php +- python +- vbnet +- xml +license: proprietary +types: +- cli +homepage: https://www.scitools.com +resources: + - title: What is Understand? + url: https://www.youtube.com/watch?v=QXxciTA1R4k + - title: Basic Navigation in Understand + url: https://www.youtube.com/watch?v=YDd9J2Fs5Ug + - title: Tell a story about your code in just one image using Graphs + url: https://www.youtube.com/watch?v=mZRWN6ukUig +description: >- + Code visualization tool that provides code analysis, standards testing, metrics, + graphing, dependency analysis and more for Ada, VHDL, and others. +pricing: https://www.scitools.com/pricing diff --git a/data/tools/unibeautify.yml b/data/tools/unibeautify.yml new file mode 100644 index 0000000000..5cf46cac39 --- /dev/null +++ b/data/tools/unibeautify.yml @@ -0,0 +1,28 @@ +name: Unibeautify +categories: + - formatter +tags: + - c + - cpp + - css + - go + - html + - java + - javascript + - jsx + - markdown + - objectivec + - php + - python + - typescript + - vue +license: MIT License +types: + - cli + - service +source: "https://github.com/unibeautify/unibeautify" +homepage: "https://unibeautify.com" +description: >- + Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, + TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, + Markdown, and more. diff --git a/data/tools/unimport.yml b/data/tools/unimport.yml new file mode 100644 index 0000000000..73a70113f8 --- /dev/null +++ b/data/tools/unimport.yml @@ -0,0 +1,12 @@ +name: unimport +categories: + - formatter + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/hakancelikdev/unimport' +homepage: 'https://unimport.hakancelik.dev' +description: 'A linter, formatter for finding and removing unused import statements.' diff --git a/data/tools/unparam.yml b/data/tools/unparam.yml new file mode 100644 index 0000000000..b7f9f03d95 --- /dev/null +++ b/data/tools/unparam.yml @@ -0,0 +1,11 @@ +name: unparam +categories: + - linter +tags: + - go +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/mvdan/unparam' +homepage: 'https://github.com/mvdan/unparam' +description: Find unused function parameters. diff --git a/data/tools/upsource.yml b/data/tools/upsource.yml new file mode 100644 index 0000000000..073f87e0b4 --- /dev/null +++ b/data/tools/upsource.yml @@ -0,0 +1,20 @@ +name: Upsource +categories: +- linter +tags: +- ci +- java +- javascript +- kotlin +- php +license: proprietary +types: +- service +homepage: https://www.jetbrains.com/upsource +description: >- + Code review tool with static code analysis and code-aware navigation for Java, PHP, + JavaScript and Kotlin. +resources: +- title: Upsource - Code Review Best Practices + url: https://www.youtube.com/watch?v=EjwD7Pi7J_0 +pricing: https://www.jetbrains.com/buy diff --git a/data/tools/vale.yml b/data/tools/vale.yml new file mode 100644 index 0000000000..0f286266ff --- /dev/null +++ b/data/tools/vale.yml @@ -0,0 +1,11 @@ +name: vale +categories: + - linter +tags: + - writing +license: MIT License +types: + - cli +source: 'https://github.com/errata-ai/vale' +homepage: 'https://vale.sh' +description: 'A syntax-aware linter for prose built with speed and extensibility in mind.' diff --git a/data/tools/varcheck.yml b/data/tools/varcheck.yml new file mode 100644 index 0000000000..4348b2cb8d --- /dev/null +++ b/data/tools/varcheck.yml @@ -0,0 +1,11 @@ +name: varcheck +categories: + - linter +tags: + - go +license: GPL-3.0-only (original text) +types: + - cli +source: 'https://gitlab.com/opennota/check' +homepage: 'https://gitlab.com/opennota/check' +description: Find unused global variables and constants. diff --git a/data/tools/vera.yml b/data/tools/vera.yml new file mode 100644 index 0000000000..8c4fc3fc3c --- /dev/null +++ b/data/tools/vera.yml @@ -0,0 +1,15 @@ +name: vera++ +categories: + - formatter +tags: + - c + - cpp +deprecated: true +license: BSL-1.0 (original text) +types: + - cli +source: 'https://bitbucket.org/verateam/vera/src/master' +homepage: 'https://bitbucket.org/verateam/vera/wiki/Introduction' +description: >- + Vera++ is a programmable tool for verification, analysis and transformation of + C++ source code. diff --git a/data/tools/veracode.yml b/data/tools/veracode.yml new file mode 100644 index 0000000000..a9935b9586 --- /dev/null +++ b/data/tools/veracode.yml @@ -0,0 +1,32 @@ +name: Veracode +categories: + - linter +tags: + - c + - cpp + - dotnet + - java + - javascript + - objectivec + - php + - security + - swift +license: proprietary +types: + - cli +homepage: "https://www.veracode.com/security/static-code-analysis" +pricing: https://info.veracode.com/request-quote.html +plans: + free: false + oss: false +description: >- + Find flaws in binaries and bytecode without requiring source. Support all + major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, + C++ and more. +resources: + - title: Veracode Overview + url: https://www.youtube.com/watch?v=6Fq_UMgwX4I + - title: Veracode SCA Scan for VS Code Plugin + url: https://www.youtube.com/watch?v=hCl2H8Heqnw +reviews: + - https://www.peerspot.com/products/veracode-reviews diff --git a/data/tools/verible-linter-action.yml b/data/tools/verible-linter-action.yml new file mode 100644 index 0000000000..3ff5ea6b4c --- /dev/null +++ b/data/tools/verible-linter-action.yml @@ -0,0 +1,14 @@ +name: verible-linter-action +categories: + - linter +tags: + - verilog +license: Apache-2.0 License +types: + - service +source: 'https://github.com/chipsalliance/verible-linter-action' +homepage: 'https://github.com/chipsalliance/verible-linter-action' +description: >- + Automatic SystemVerilog linting in github actions with the help of Verible + Used to lint Verilog and SystemVerilog source files and comment erroneous lines + of code in Pull Requests automatically. diff --git a/data/tools/verifast.yml b/data/tools/verifast.yml new file mode 100644 index 0000000000..c06cb8e6aa --- /dev/null +++ b/data/tools/verifast.yml @@ -0,0 +1,15 @@ +name: VeriFast +categories: + - linter +tags: + - ocaml +license: MIT License +types: + - cli +source: 'https://github.com/verifast/verifast' +homepage: 'https://github.com/verifast/verifast' +description: >- + A tool for modular formal verification of correctness properties of single-threaded and multithreaded + C and Java programs annotated with preconditions and postconditions written in separation logic. + To express rich specifications, the programmer can define inductive datatypes, + primitive recursive pure functions over these datatypes, and abstract separation logic predicates. diff --git a/data/tools/verilator.yml b/data/tools/verilator.yml new file mode 100644 index 0000000000..65355ff888 --- /dev/null +++ b/data/tools/verilator.yml @@ -0,0 +1,13 @@ +name: Verilator +categories: + - linter +tags: + - verilog +license: GPL v3 or Perl Artistic License Version 2.0 +types: + - cli +source: 'https://github.com/verilator/verilator' +homepage: 'https://www.veripool.org/verilator' +description: >- + A tool which converts Verilog to a cycle-accurate behavioral model in + C++ or SystemC. Performs lint code-quality checks. diff --git a/data/tools/vetur.yml b/data/tools/vetur.yml new file mode 100644 index 0000000000..572c5f074e --- /dev/null +++ b/data/tools/vetur.yml @@ -0,0 +1,19 @@ +name: Vetur +categories: + - linter + - formatter +tags: + - vue +license: MIT License +types: + - cli + - ide-plugin +source: 'https://github.com/vuejs/vetur' +homepage: 'https://marketplace.visualstudio.com/items?itemName=octref.vetur' +description: >- + Vue tooling for VS Code, powered by vls (vue language server). + Vetur has support for formatting embedded HTML, CSS, SCSS, JS, TypeScript, and more. + Vetur only has a "whole document formatter" and cannot format arbitrary ranges. +resources: + - title: Pine Wu - var vetur = vscode + vue; | VueConf 2017 + url: https://www.youtube.com/watch?v=05tNXJ-Kric diff --git a/data/tools/vint.yml b/data/tools/vint.yml new file mode 100644 index 0000000000..0a4906bba3 --- /dev/null +++ b/data/tools/vint.yml @@ -0,0 +1,11 @@ +name: vint +categories: + - linter +tags: + - vim-script +license: MIT License +types: + - ide-plugin +source: 'https://github.com/Kuniwak/vint' +homepage: 'https://github.com/Kuniwak/vint' +description: Fast and Highly Extensible Vim script Language Lint implemented by Python. diff --git a/data/tools/violations-lib.yml b/data/tools/violations-lib.yml new file mode 100644 index 0000000000..d0aa7668eb --- /dev/null +++ b/data/tools/violations-lib.yml @@ -0,0 +1,15 @@ +name: Violations Lib +categories: + - linter +tags: + - ci + - java + - support +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/tomasbjerre/violations-lib' +homepage: 'https://github.com/tomasbjerre/violations-lib' +description: >- + Java library for parsing report files from static code analysis. Used by a + bunch of Jenkins, Maven and Gradle plugins. diff --git a/data/tools/visual-expert.yml b/data/tools/visual-expert.yml new file mode 100644 index 0000000000..5d146bc87b --- /dev/null +++ b/data/tools/visual-expert.yml @@ -0,0 +1,12 @@ +name: Visual Expert +categories: +- linter +tags: +- sql +license: proprietary +types: +- service +homepage: https://www.visual-expert.com +description: "Code analysis for PowerBuilder, Oracle, and SQL Server Explores, analyzes,\ + \ and documents Code " +pricing: https://www.visual-expert.com/EN/visual-expert-price.html diff --git a/data/tools/vscode-verilog-hdl-support.yml b/data/tools/vscode-verilog-hdl-support.yml new file mode 100644 index 0000000000..25a5a2cd7a --- /dev/null +++ b/data/tools/vscode-verilog-hdl-support.yml @@ -0,0 +1,14 @@ +name: vscode-verilog-hdl-support +categories: + - linter +tags: + - verilog +license: MIT License +types: + - ide-plugin +source: 'https://github.com/mshr-h/vscode-verilog-hdl-support' +homepage: 'https://github.com/mshr-h/vscode-verilog-hdl-support' +description: >- + Verilog HDL/SystemVerilog/Bluespec SystemVerilog support for VS Code. + Provides syntax highlighting and Linting support from + Icarus Verilog, Vivado Logical Simulation, Modelsim and Verilator diff --git a/data/tools/vsdiagnostics.yml b/data/tools/vsdiagnostics.yml new file mode 100644 index 0000000000..e1c59aefe9 --- /dev/null +++ b/data/tools/vsdiagnostics.yml @@ -0,0 +1,11 @@ +name: VSDiagnostics +categories: + - linter +tags: + - csharp +license: GNU General Public License v2.0 +types: + - cli +source: 'https://github.com/Vannevelj/VSDiagnostics' +homepage: 'https://github.com/Vannevelj/VSDiagnostics' +description: A collection of static analyzers based on Roslyn that integrates with VS. diff --git a/data/tools/vuls.yml b/data/tools/vuls.yml new file mode 100644 index 0000000000..e8b14928dd --- /dev/null +++ b/data/tools/vuls.yml @@ -0,0 +1,13 @@ +name: Vuls +categories: + - linter +tags: + - container +license: AGPL-3.0 License +types: + - cli +source: 'https://github.com/future-architect/vuls' +homepage: 'https://vuls.io/' +description: >- + Agent-less Linux vulnerability scanner based on information from NVD, OVAL, etc. + It has some container image support, although is not a container specific tool. diff --git a/data/tools/vulture.yml b/data/tools/vulture.yml new file mode 100644 index 0000000000..ebd1706815 --- /dev/null +++ b/data/tools/vulture.yml @@ -0,0 +1,11 @@ +name: vulture +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/jendrikseipp/vulture' +homepage: 'https://github.com/jendrikseipp/vulture' +description: 'Find unused classes, functions and variables in Python code.' diff --git a/data/tools/wala.yml b/data/tools/wala.yml new file mode 100644 index 0000000000..bad6bbf52b --- /dev/null +++ b/data/tools/wala.yml @@ -0,0 +1,17 @@ +name: WALA +categories: + - linter +tags: + - java + - javascript +license: Eclipse Public License 2.0 +types: + - cli +source: 'https://github.com/wala/WALA' +homepage: 'https://github.com/wala/WALA' +description: >- + Static analysis capabilities for Java bytecode and related languages and for + JavaScript. +resources: + - title: WALA Everywhere + url: https://www.youtube.com/watch?v=QtrJEopSSuw diff --git a/data/tools/wap.yml b/data/tools/wap.yml new file mode 100644 index 0000000000..321e94eae4 --- /dev/null +++ b/data/tools/wap.yml @@ -0,0 +1,14 @@ +name: WAP +categories: + - linter +tags: + - php +license: GNU GPL +types: + - cli +source: 'https://awap.sourceforge.io' +homepage: 'https://securityonline.info/owasp-wap-web-application-protection-project' +description: >- + Tool to detect and correct input validation vulnerabilities in PHP (4.0 or + higher) web applications and predicts false positives by combining static + analysis and data mining. diff --git a/data/tools/warnalyzer.yml b/data/tools/warnalyzer.yml new file mode 100644 index 0000000000..fae59ed81b --- /dev/null +++ b/data/tools/warnalyzer.yml @@ -0,0 +1,11 @@ +name: warnalyzer +categories: + - linter +tags: + - rust +license: MIT / Apache 2.0 +types: + - cli +source: 'https://github.com/est31/warnalyzer' +homepage: 'https://github.com/est31/warnalyzer' +description: 'Show unused code from multi-crate Rust projects' diff --git a/data/tools/wartremover.yml b/data/tools/wartremover.yml new file mode 100644 index 0000000000..2fde324982 --- /dev/null +++ b/data/tools/wartremover.yml @@ -0,0 +1,11 @@ +name: WartRemover +categories: + - linter +tags: + - scala +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/puffnfresh/wartremover' +homepage: 'https://www.wartremover.org' +description: A flexible Scala code linting tool. diff --git a/data/tools/wasm-language-tools.yml b/data/tools/wasm-language-tools.yml new file mode 100644 index 0000000000..bcce233e16 --- /dev/null +++ b/data/tools/wasm-language-tools.yml @@ -0,0 +1,14 @@ +name: wasm-language-tools +categories: + - formatter + - linter +tags: + - wasm +license: MIT License +types: + - ide-plugin +source: "https://github.com/g-plane/wasm-language-tools" +homepage: "https://github.com/g-plane/wasm-language-tools" +description: >- + WebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format. + It also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format. diff --git a/data/tools/weeder.yml b/data/tools/weeder.yml new file mode 100644 index 0000000000..dccc81f9c0 --- /dev/null +++ b/data/tools/weeder.yml @@ -0,0 +1,11 @@ +name: Weeder +categories: + - linter +tags: + - haskell +license: BSD 3-Clause "New" or "Revised" License +types: + - cli +source: 'https://github.com/ocharles/weeder' +homepage: 'https://github.com/ocharles/weeder' +description: A tool for detecting dead exports or package imports in Haskell code. diff --git a/data/tools/weggli.yml b/data/tools/weggli.yml new file mode 100644 index 0000000000..abea9c98a4 --- /dev/null +++ b/data/tools/weggli.yml @@ -0,0 +1,16 @@ +name: weggli +categories: + - linter +tags: + - security + - c + - cpp +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/googleprojectzero/weggli' +homepage: 'https://github.com/googleprojectzero/weggli' +description: >- + A fast and robust semantic search tool for C and C++ codebases. It is + designed to help security researchers identify interesting functionality in + large codebases. diff --git a/data/tools/wemake-python-styleguide.yml b/data/tools/wemake-python-styleguide.yml new file mode 100644 index 0000000000..76891fe737 --- /dev/null +++ b/data/tools/wemake-python-styleguide.yml @@ -0,0 +1,11 @@ +name: wemake-python-styleguide +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/wemake-services/wemake-python-styleguide' +homepage: 'https://wemake-python-styleguide.rtfd.io/' +description: The strictest and most opinionated python linter ever. diff --git a/data/tools/whitehat-application-security-platform.yml b/data/tools/whitehat-application-security-platform.yml new file mode 100644 index 0000000000..4365cd58dc --- /dev/null +++ b/data/tools/whitehat-application-security-platform.yml @@ -0,0 +1,21 @@ +name: WhiteHat Application Security Platform +categories: + - linter +tags: + - aspnet + - csharp + - html + - java + - javascript + - mobile + - nodejs + - objectivec + - php + - typescript +license: proprietary +types: + - cli +homepage: "https://source.whitehatsec.com/help/sentinel/sast-service-detail.html" +description: >- + WhiteHat Scout (for Developers) combined with WhiteHat Sentinel Source (for + Operations) supporting WhiteHat Top 40 and OWASP Top 10. diff --git a/data/tools/wily.yml b/data/tools/wily.yml new file mode 100644 index 0000000000..e444fc26d2 --- /dev/null +++ b/data/tools/wily.yml @@ -0,0 +1,13 @@ +name: wily +categories: + - linter +tags: + - python +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/tonybaloney/wily' +homepage: 'https://github.com/tonybaloney/wily' +description: >- + A command-line tool for archiving, exploring and graphing the complexity of + Python source code. diff --git a/data/tools/wintellectanalyzers.yml b/data/tools/wintellectanalyzers.yml new file mode 100644 index 0000000000..17a0da8bd9 --- /dev/null +++ b/data/tools/wintellectanalyzers.yml @@ -0,0 +1,11 @@ +name: Wintellect.Analyzers +categories: + - linter +tags: + - csharp +license: Other +types: + - cli +source: 'https://github.com/Wintellect/Wintellect.Analyzers' +homepage: 'https://github.com/Wintellect/Wintellect.Analyzers' +description: .NET Compiler Platform ("Roslyn") diagnostic analyzers and code fixes. diff --git a/data/tools/wotan.yml b/data/tools/wotan.yml new file mode 100644 index 0000000000..525435348b --- /dev/null +++ b/data/tools/wotan.yml @@ -0,0 +1,12 @@ +name: Wotan +categories: + - linter +tags: + - javascript + - typescript +license: Apache License 2.0 +types: + - cli +source: 'https://github.com/fimbullinter/wotan' +homepage: 'https://github.com/fimbullinter/wotan' +description: Pluggable TypeScript and JavaScript linter. diff --git a/data/tools/write-good.yml b/data/tools/write-good.yml new file mode 100644 index 0000000000..6147cddacc --- /dev/null +++ b/data/tools/write-good.yml @@ -0,0 +1,11 @@ +name: write-good +categories: + - linter +tags: + - writing +license: MIT License +types: + - cli +source: 'https://github.com/btford/write-good' +homepage: 'https://github.com/btford/write-good' +description: A linter with a focus on eliminating "weasel words". diff --git a/data/tools/wsl.yml b/data/tools/wsl.yml new file mode 100644 index 0000000000..ea55e6127a --- /dev/null +++ b/data/tools/wsl.yml @@ -0,0 +1,11 @@ +name: wsl +categories: + - linter +tags: + - go +license: MIT License +types: + - cli +source: 'https://github.com/bombsimon/wsl' +homepage: 'https://github.com/bombsimon/wsl' +description: Enforces empty lines at the right places. diff --git a/data/tools/xcode.yml b/data/tools/xcode.yml new file mode 100644 index 0000000000..85fa686947 --- /dev/null +++ b/data/tools/xcode.yml @@ -0,0 +1,15 @@ +name: XCode +categories: + - linter +tags: + - c + - cpp + - objectivec +license: proprietary +types: + - cli +homepage: 'https://developer.apple.com/xcode' +description: >- + XCode provides a pretty decent UI for + [Clang's](https://clang-analyzer.llvm.org/xcode.html) static code analyzer + (C/C++, Obj-C). diff --git a/data/tools/xenon.yml b/data/tools/xenon.yml new file mode 100644 index 0000000000..8cae0667df --- /dev/null +++ b/data/tools/xenon.yml @@ -0,0 +1,11 @@ +name: xenon +categories: + - linter +tags: + - python +license: MIT License +types: + - cli +source: 'https://github.com/rubik/xenon' +homepage: 'https://xenon.readthedocs.io' +description: 'Monitor code complexity using [`radon`](https://github.com/rubik/radon).' diff --git a/data/tools/xo.yml b/data/tools/xo.yml new file mode 100644 index 0000000000..250dd07d4b --- /dev/null +++ b/data/tools/xo.yml @@ -0,0 +1,13 @@ +name: xo +categories: + - linter +tags: + - javascript +license: MIT License +types: + - cli +source: 'https://github.com/xojs/xo' +homepage: 'https://github.com/xojs/xo' +description: >- + Opinionated but configurable ESLint wrapper with lots of goodies included. + Enforces strict and readable code. diff --git a/data/tools/xygeni.yml b/data/tools/xygeni.yml new file mode 100644 index 0000000000..1422167564 --- /dev/null +++ b/data/tools/xygeni.yml @@ -0,0 +1,21 @@ +name: Xygeni +categories: + - linter +description: >- + Xygeni is a comprehensive Software Supply Chain Security platform. It provides + Advanced SAST with AI-powered remediation, Software Composition Analysis (SCA) + with real-time malware detection, Infrastructure as Code (IaC) scanning, + and Secrets detection to ensure end-to-end code security. +homepage: https://xygeni.io/ +license: proprietary +tags: + - csharp + - dockerfile + - go + - java + - javascript + - kubernetes + - python + - terraform +types: + - service diff --git a/data/tools/yamllint.yml b/data/tools/yamllint.yml new file mode 100644 index 0000000000..6642475ca7 --- /dev/null +++ b/data/tools/yamllint.yml @@ -0,0 +1,14 @@ +name: yamllint +categories: + - linter +tags: + - template + - yaml +license: GNU General Public License v3.0 +types: + - cli +source: 'https://github.com/adrienverge/yamllint' +homepage: 'https://yamllint.readthedocs.io' +description: >- + Checks YAML files for syntax validity, key repetition and cosmetic problems + such as lines length, trailing spaces, and indentation. diff --git a/data/tools/yapf.yml b/data/tools/yapf.yml new file mode 100644 index 0000000000..0299aded8d --- /dev/null +++ b/data/tools/yapf.yml @@ -0,0 +1,21 @@ +name: yapf +categories: + - formatter +tags: + - python +license: Apache-2.0 +types: + - cli +source: "https://github.com/google/yapf" +homepage: "https://github.com/google/yapf" +description: >- + A formatter for Python files created by Google + + YAPF follows a distinctive methodology, originating from the 'clang-format' tool + created by Daniel Jasper. Essentially, the program reframes the code to the most + suitable formatting that abides by the style guide, even if the original code + already follows the style guide. This concept is similar to the Go programming + language's 'gofmt' tool, which aims to put an end to debates about formatting by + having the entire codebase of a project pass through YAPF whenever changes are + made, thereby maintaining a consistent style throughout the project and + eliminating the need to argue about style in every code review. diff --git a/data/tools/yardstick.yml b/data/tools/yardstick.yml new file mode 100644 index 0000000000..0a81ccbb3e --- /dev/null +++ b/data/tools/yardstick.yml @@ -0,0 +1,12 @@ +name: yardstick +categories: + - linter +tags: + - javascript +deprecated: true +license: MIT License +types: + - cli +source: 'https://github.com/calmh/yardstick' +homepage: 'https://github.com/calmh/yardstick' +description: Javascript code metrics. diff --git a/data/tools/zarn.yml b/data/tools/zarn.yml new file mode 100644 index 0000000000..a921d1e93f --- /dev/null +++ b/data/tools/zarn.yml @@ -0,0 +1,12 @@ +name: zarn +categories: + - linter +tags: + - perl +license: MIT License +types: + - cli +source: 'https://github.com/htrgouvea/zarn' +homepage: 'https://github.com/htrgouvea/zarn' +description: >- + A lightweight static security analysis tool for modern Perl Apps \ No newline at end of file diff --git a/data/tools/zod.yml b/data/tools/zod.yml new file mode 100644 index 0000000000..82e9605850 --- /dev/null +++ b/data/tools/zod.yml @@ -0,0 +1,15 @@ +name: zod +categories: + - linter +tags: + - typescript +license: MIT License +types: + - cli +source: 'https://github.com/colinhacks/zod' +homepage: 'https://zod.dev' +description: >- + TypeScript-first schema validation with static type inference. + The goal is to eliminate duplicative type declarations. + With Zod, you declare a validator once and Zod will automatically infer the static TypeScript type. + It is easy to compose simpler types into complex data structures. diff --git a/data/tools/zpa.yml b/data/tools/zpa.yml new file mode 100644 index 0000000000..d612850437 --- /dev/null +++ b/data/tools/zpa.yml @@ -0,0 +1,11 @@ +name: ZPA +categories: + - linter +tags: + - plsql +license: LGPL-3.0 License +types: + - cli +source: 'https://github.com/felipebz/zpa' +homepage: 'https://zpa.felipebz.com' +description: An open source parser and code analyzer for PL/SQL and Oracle SQL code. diff --git a/data/tools/zydis.yml b/data/tools/zydis.yml new file mode 100644 index 0000000000..35c2bbc227 --- /dev/null +++ b/data/tools/zydis.yml @@ -0,0 +1,11 @@ +name: zydis +categories: + - linter +tags: + - binary +license: MIT License +types: + - cli +source: 'https://github.com/zyantific/zydis' +homepage: 'https://zydis.re' +description: 'Fast and lightweight x86/x86-64 disassembler library'