Dolos vs phpcpd-next
Dolos
dolos.ugent.bephpcpd-next
github.comSide by side
| Figure | Dolos | phpcpd-next |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Web | Yes | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 2 | 1 |
| Spec score · Code Duplication Detection Tools | 8.7 (#1) | 7.4 (#9) |
| Integrations | Dolos provides a JSON API for automated integration with exercise platforms such as Dodona. | The project documents PHPUnit integration, an in-process headless API, framework presets, and SARIF upload to GitHub Code Scanning. |
| Purpose | Dolos detects plagiarism by finding similarities between source code submissions. | phpcpd-next is a token-based copy/paste detector for PHP 8.4+ and a successor to Sebastian Bergmann’s phpcpd. |
| Reports | Reports include similarity, total overlap, and the longest matching fragment for file pairs. | It provides console, PMD-CPD XML, JSON, and SARIF 2.1.0 output formats. |
| Support | General questions and support are handled through GitHub discussions, while bugs and feature requests use GitHub issues. | The opened project page describes contribution guidance and a Contributor License Agreement; it does not state a paid support plan. |
Plans
In their own words
Dolos
Dolos is a free, open-source tool for finding similarities between source-code submissions, particularly for teachers reviewing tests, exams, and exercises where collaboration may be allowed in small groups. Its analysis process tokenizes files, fingerprints token sequences, indexes matches, and produces reports. For each file pair, reports include similarity, total overlap, and the longest matching fragment. Dolos uses Tree-sitter parsers and supports languages including Bash, C, C++, C#, Elm, JavaScript, Java, PHP, Python, and TypeScript. The web app accepts ZIP files and detects languages from file extensions; in mixed-language archives, it analyzes only the dominant language unless a language is selected. Its public API accepts ZIP submissions up to 10 MB, with the CLI or library recommended for larger submissions. Analyses can also run locally, with results displayed in a browser, or on a self-hosted server. The free web app is hosted on Ghent University servers in Belgium. Dolos provides a JSON API for integrations such as Dodona and lists CSV as a report export format.
phpcpd-next
phpcpd-next is a free, MIT-licensed, token-based detector for copied PHP code in repositories. It targets PHP 8.4 and later and succeeds Sebastian Bergmann’s phpcpd. The default run combines Rabin-Karp exact matching with TokenBag detection for reordered code. An opt-in unified engine detects exact, renamed, gapped and reordered clones, while optional orphan mode identifies unreferenced classes, interfaces, traits, enums and functions. Results can be printed to the console or written as PMD-CPD XML, JSON and SARIF 2.1.0. Meaningful exit codes, result caching and a per-file incremental index support continuous integration; clone findings return status 1. Documented integrations include PHPUnit, an in-process headless API, framework presets and SARIF upload to GitHub Code Scanning. Installation is available through Composer as a development dependency or global package, or from source. Requirements are PHP 8.4+, ext-dom and ext-mbstring, with zero Composer runtime dependencies. Advanced engines are described as research-grade and may produce more false positives than the default set.