Dolos vs JPlag
Dolos
dolos.ugent.beJPlag
github.comSide by side
| Figure | Dolos | JPlag |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | Yes |
| Web | Yes | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 2 | 2 |
| Spec score · Plagiarism Detection Software | 9.0 (#5) | 8.8 (#9) |
| CLI | The npm package provides a command-line interface for local analysis and browser-based report viewing. | JPlag provides a command-line interface with language selection, run/view modes, result-file output and configurable comparison limits. |
| Cluster analysis | The interface groups related submissions into clusters to help instructors identify larger collaboration groups. | A cluster view shows relationships and group dynamics among multiple programs. |
| Languages | Dolos uses Tree-sitter parsers and supports common languages including Bash, C, C++, C#, Elm, JavaScript, Java, PHP, Python, and TypeScript out of the box. | The README lists support for Java, C, C++, C#, Python, JavaScript, TypeScript, Go, Kotlin, R, Rust, Swift, Scala, LLVM IR, Scheme, EMF, SCXML, text, and multi-language submissions, with varying maturity levels. |
| Purpose | Dolos detects plagiarism by finding similarities between source code submissions. | JPlag finds pairwise similarities among programs to detect source-code plagiarism and collusion. |
| Support | General questions and support are handled through GitHub discussions, while bugs and feature requests use GitHub issues. | The project directs users to report bugs and issues on GitHub and provides a Q&A discussion section. |
| Supported languages | Built-in parsers cover Bash, C, C++, C#, Elm, JavaScript, Java, PHP, Python and TypeScript, with additional Tree-sitter languages possible. | The repository lists Java, C, C++, C#, Python, JavaScript, TypeScript, Go, Kotlin, R, Rust, Swift, Scala, LLVM IR, Scheme, EMF, SCXML, text and multi-language modes. |
| System requirement | CLI installation requires Node.js, and native-module builds may require Python plus a compiler or Visual Studio on Windows. | Java SE 25 is required to run or build the current release. |
| Use cases | Dolos is designed for programming tests, exams and exercises where instructors need to inspect copied or shared solutions. | The project describes use in programming education and says it can also identify duplicated or slightly modified software parts. |
| What it does | Dolos detects similarities and possible plagiarism among programming source-code submissions. | JPlag compares programs pairwise to identify likely source-code plagiarism and collusion. |
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.
JPlag
JPlag is free software for finding pairwise similarities among programs that may indicate source-code plagiarism or collusion. It examines programming-language syntax and program structure, helping identify overlap even when code has been partly obfuscated. Analysis runs locally on the user’s machine, and the project says no data is sent externally. Comparisons are between submitted programs rather than internet sources. Listed language support includes Java, C, C++, C#, Python, JavaScript, TypeScript, Go, Kotlin, R, Rust, Swift, Scala, LLVM IR, Scheme, EMF, SCXML, text, and multi-language submissions, with varying maturity. Users can run the command-line interface or Java API, launch a report viewer from the CLI, or add JPlag through Maven Central. Reports show at most 2,500 pairs by default, adjustable with the -n option. Lower minimum matching-token lengths increase sensitivity but can also increase false positives. Running or building requires Java SE 25.