# mypy vs PMD

**Leader by vioscaleAI score:** mypy

| Attribute | mypy | PMD |
|---|---|---|
| **vioscaleAI score** | 69.4 (66% (medium)) | 55.6 (49% (low)) |
| activity.commits_last_30d | 100 | 64 |
| adoption.dependent_repos | 52,771 | 356 |
| adoption.github_stars | 20,682 | 5,508 |
| adoption.package_downloads_weekly | 42,892,033 | - |
| content.faq | `[{"answer":"A type analysis tool for Python that enables code to transition from pure dynamic typing to statically-typed code through annotations, with error detection at check time. Code runs with negligible performance impact and developers can incrementally adopt static types in existing projects. It is indexed under Code Quality Tools.","source":"https://mypy-lang.org","question":"What is mypy?","confidence":0.6},{"answer":"mypy is open source, so it can be self-hosted and used at no licence cost. Pricing changes often, so verify at source before relying on it.","source":"https://mypy-lang.org","question":"Is mypy free to use?","confidence":0.6},{"answer":"mypy supports a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://mypy-lang.org","question":"What platforms does mypy support?","confidence":0.6}]` | `[{"answer":"PMD is a multilingual static code analyzer that detects common programming issues like unused variables and inefficient patterns. It includes over 400 built-in rules, supports 16+ languages with primary focus on Java, and supports custom rules via Java or XPath. It is indexed under Code Quality Tools.","source":"https://pmd.github.io/","question":"What is PMD?","confidence":0.6},{"answer":"PMD offers a free tier, so you can start without paying. Pricing changes often, so verify at source before relying on it.","source":"https://pmd.github.io/","question":"Is PMD free?","confidence":0.6},{"answer":"PMD supports Windows, macOS, Linux and a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://pmd.github.io/","question":"What platforms does PMD support?","confidence":0.6},{"answer":"Yes. PMD can be deployed self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://pmd.github.io/","question":"Can PMD be self-hosted?","confidence":0.6}]` |
| deployment.options | `{"self_hosted":true}` | `{"self_hosted":true}` |
| description.long | A static type checker that analyzes Python code to catch type errors before runtime. Supports gradual typing, allowing you to mix static and dynamic typing and incrementally add type hints to existing codebases. | PMD is a static analysis tool that scans source code to detect bugs, code smells, and quality issues across many programming languages. It includes copy-paste detection capabilities and supports custom rule creation. |
| features.capabilities | `{"autofix":false,"metrics":false,"function":"type_checker","ci_gating":true,"deployment":"cli_local","incremental":true,"open_source":"oss","custom_rules":false,"impl_language":"Python","pricing_model":"free","language_scope":"single_language","editor_integration":true}` | `{"metrics":true,"function":"static_analyzer","ci_gating":true,"deployment":"cli_local","open_source":"oss","config_model":"rule_packs","custom_rules":true,"impl_language":"Java","pricing_model":"free","language_scope":"multi_language","editor_integration":true}` |
| integrations.count | 1 | 4 |
| integrations.list | `[{"name":"VS Code","native":true}]` | `[{"name":"Eclipse"},{"name":"Gradle PMD Plugin","native":true},{"name":"eclipse-pmd","native":true},{"name":"pmd-eclipse-plugin","native":true},{"name":"PMD X","native":true},{"name":"PMD","native":true},{"name":"Apex PMD","native":true},{"name":"PMD for Java","native":true},{"name":"Gradle","native":true,"category":"build_system"},{"name":"IntelliJ","native":false,"category":"editor"},{"name":"VS Code","native":false,"category":"editor"}]` |
| language.primary | Python | Java |
| market.availability | - | `{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` |
| platform.support | `{"cli":true}` | `{"cli":true}` |
| pricing | `{"type":"open_source","sourceUrl":"https://mypy-lang.org","retrievedAt":"2026-08-14T13:45:01.127Z"}` | `{"type":"open_source","freeTier":true,"sourceUrl":"https://pmd.github.io/","retrievedAt":"2026-09-14T13:23:26.960Z"}` |
| pricing.free_tier | - | yes |
| pricing.model | open_source | open_source |
| pricing.price_level | free | free |
| pricing.transparent | - | yes |
| release.cadence_days | - | 28 |
| release.history | - | `[{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.29.0-SNAPSHOT","date":"2026-09-25T09:32:04Z","type":"prerelease","version":"pmd_releases/7.29.0-SNAPSHOT"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.28.0","date":"2026-09-25T09:00:39Z","type":"stable","version":"pmd_releases/7.28.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.27.0","date":"2026-08-28T12:41:56Z","type":"stable","version":"pmd_releases/7.27.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.26.0","date":"2026-06-29T09:27:48Z","type":"stable","version":"pmd_releases/7.26.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.25.0","date":"2026-05-29T07:31:55Z","type":"stable","version":"pmd_releases/7.25.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.24.0","date":"2026-04-24T10:32:31Z","type":"stable","version":"pmd_releases/7.24.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.23.0","date":"2026-03-27T11:16:41Z","type":"stable","version":"pmd_releases/7.23.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.22.0","date":"2026-02-27T12:03:19Z","type":"stable","version":"pmd_releases/7.22.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.21.0","date":"2026-01-30T09:52:21Z","type":"stable","version":"pmd_releases/7.21.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.20.0","date":"2025-12-30T15:44:30Z","type":"stable","version":"pmd_releases/7.20.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.19.0","date":"2025-11-28T11:36:32Z","type":"stable","version":"pmd_releases/7.19.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.18.0","date":"2025-10-31T08:59:05Z","type":"stable","version":"pmd_releases/7.18.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.17.0","date":"2025-09-12T08:10:30Z","type":"stable","version":"pmd_releases/7.17.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.16.0","date":"2025-07-25T07:00:32Z","type":"stable","version":"pmd_releases/7.16.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.15.0","date":"2025-06-27T12:45:08Z","type":"stable","version":"pmd_releases/7.15.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.14.0","date":"2025-05-30T18:45:09Z","type":"stable","version":"pmd_releases/7.14.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.13.0","date":"2025-04-25T08:32:19Z","type":"stable","version":"pmd_releases/7.13.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.12.0","date":"2025-03-28T08:27:08Z","type":"stable","version":"pmd_releases/7.12.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.11.0","date":"2025-02-28T11:24:10Z","type":"stable","version":"pmd_releases/7.11.0"},{"url":"https://github.com/pmd/pmd/releases/tag/pmd_releases/7.10.0","date":"2025-01-31T10:26:11Z","type":"stable","version":"pmd_releases/7.10.0"}]` |
| security.scorecard | 6.8 | 6.2 |
| security.vulnerabilities | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=mypy&per_page=100","last_12m":0,"max_severity":null}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=maven&package_name=net.sourceforge.pmd%3Apmd-java&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (Code Quality Tools)

| Capability | mypy | PMD |
|---|:--:|:--:|
| **Core** |  |  |
| Function | Type checker | Static analyzer |
| Language scope | Single-language | Multi-language |
| Implementation language | Python | Java |
| **Capability** |  |  |
| Autofix | ✗ | - |
| **Config** |  |  |
| Config model | - | Rule packs |
| **Extensibility** |  |  |
| Custom rules | ✗ | ✓ |
| **Deployment** |  |  |
| Deployment | CLI-local | CLI-local |
| **Delivery** |  |  |
| Editor integration | ✓ | ✓ |
| CI / VCS gating | ✓ | ✓ |
| **Insight** |  |  |
| Code metrics | ✗ | ✓ |
| **Performance** |  |  |
| Incremental / monorepo aware | ✓ | - |
| **Licensing** |  |  |
| Open-source | OSS | OSS |
| **Commercial** |  |  |
| Pricing model | Free | Free |

*Source: vioscaleAI. Generated 2026-10-16T21:40:50.908Z. "-" = undocumented, not absent.*
