copydetect vs Duplo
copydetect
github.comDuplo
github.comSide by side
| Figure | copydetect | Duplo |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 0 | 1 |
| Spec score · Code Clone Detection Tools | 7.8 (#6) | 7.9 (#5) |
| Filtering | Tokenization and filtering replace variable names with V, function names with F, object names with O, and strings with S. | For supported languages, Duplo can filter comments, compiler directives, and other syntax such as using statements from duplicate detection. |
| Language support | It uses Pygments for tokenization and supports the 500+ languages Pygments can detect and tokenize. | Built-in support includes C/C++, Java, C#, VB, GCC assembly, Ada, Erlang, TypeScript, and Swift. |
| License | Copydetect is released under the MIT License. | Duplo is free software under the GNU General Public License version 2 or, at the user's option, any later version, and is provided without warranty. |
| Purpose | Copydetect detects likely code plagiarism by comparing code directories and generating an HTML report that displays copied slices. | Duplo finds duplicated code blocks in large codebases. |
Plans
In their own words
copydetect
copydetect is a free tool for comparing code directories and producing an HTML report that highlights matching code slices. It uses Winnowing document fingerprinting, an approach also used by MOSS, and Pygments tokenization for the 500-plus languages Pygments can detect and tokenize. Users can compare test directories with reference directories such as previous submissions, and exclude boilerplate directories from matches. Noise, guarantee and display thresholds adjust what is detected and shown in reports. Install the package with pip; it requires Python 3.7 or later. The command-line tool recursively searches supplied directories, while its Python API supports comparisons and HTML report generation. Reports can be saved to a specified path, highlighted code can be truncated, and custom CSS can be linked. Configuration is available through command-line arguments or a JSON file. The package is MIT-licensed and classified for Education with Beta development status. Its documentation cautions that it may not catch plagiarism designed to evade detection and that a match does not establish that plagiarism occurred.
Duplo
Duplo is a free tool for locating duplicated source-code blocks in large codebases. It has built-in language support for C/C++, Java, C#, VB, GCC assembly, Ada, Erlang, TypeScript and Swift, and can also scan arbitrary text files, including for duplicates within one file. For supported languages, it can filter comments, preprocessor directives and other syntax before checking for repeated code. Files can be provided through standard input or a separate file list. Duplo produces text reports as well as JSON and XML output. The project describes XML reports as usable in continuous integration tools such as GitHub Actions and TeamCity, and links to a GitHub Actions extension that can fail a build when duplicates are found. That extension has settings for minimum duplicate lines, minimum line length and maximum files reported. Prebuilt binaries are available for Alpine Linux, macOS and Windows; it can also be built from source. Duplo is free under GNU GPL version 2 or later, and is provided without warranty.