A copy/paste detector for source code that supports over 150 programming languages and formats.
jscpd is a copy/paste detector for programming source code that identifies duplicated blocks across files. It helps developers reduce technical debt by finding code clones in over 150 programming languages and formats using the Rabin-Karp algorithm.
Developers, teams, and tool maintainers who need to enforce code quality, reduce duplication, and integrate duplication detection into CI/CD pipelines or code analysis services.
Developers choose jscpd for its extensive language support, multiple integration options (CLI, server, API), and modular architecture that allows deep customization of the detection process.
Copy/paste detector for programming source code.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Detects duplicates in over 150 programming languages and document formats, making it versatile for multi-language codebases as highlighted in the README.
Offers CLI, server API, and programming API, enabling seamless use in CI/CD pipelines and custom tools, with examples provided in the usage sections.
Built as separate packages like core, finder, and tokenizer, allowing deep customization for specific detection needs, as described in the packages table.
Implements the Rabin-Karp algorithm for efficient clone finding, balancing speed and accuracy in large codebases.
The README admits the LevelDB store, used for big repositories, is slower than the default in-memory store, which can impact scan performance.
jscpd only identifies duplicates without providing automated fixes or suggestions, requiring manual intervention for code improvements.
The modular architecture and multiple APIs, while powerful, can be complex to configure for custom integrations compared to all-in-one tools.