CodART vs PolyglotPiranha
CodART
github.comPolyglotPiranha
github.comSide by side
| Figure | CodART | PolyglotPiranha |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | — |
| macOS | — | Yes |
| Linux | Yes | Yes |
| iOS | — | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 0 |
| Spec score · Code Refactoring Tools | 8.0 (#8) | 7.2 (#19) |
| License | The repository includes an MIT License that permits use, copying, modification, distribution, sublicensing, and sale subject to its stated conditions. | Piranha is licensed under Apache 2.0. |
| Purpose | CodART is a toolkit for automated refactoring and multi-objective optimization of Java source code. | Polyglot Piranha is a lightweight code transformation toolset for automating large scale changes and is used at Uber mostly to clean up stale feature flags. |
| Support | The repository invites questions by email at [email protected] and welcomes project contributions and discussion comments. | Users with questions or bug reports are directed to open a GitHub issue. |
Plans
In their own words
CodART
CodART is a toolkit for automated refactoring and multi-objective optimization of Java source code. It documents 47 refactoring operations, including Extract Class, Move Method, and Encapsulate Field, and supports project-level and batch work. Its optimization uses NSGA-II and NSGA-III across eight QMOOD quality metrics. The toolkit also includes PPO-based generation of refactoring sequences and models that predict testability from source code metrics. PMD integration with custom rulesets supports code smell detection, while SciTools Understand handles code parsing and metric computation. The documented interfaces are a React web interface and a FastAPI REST API, and Docker Compose instructions explain how to run the services locally. CodART is free under an MIT License, which permits use, copying, modification, distribution, sublicensing, and sale subject to its conditions. The setup requires a separate SciTools Understand professional license; academic licenses are available for research purposes. The quick-start calls for at least 8 GB RAM and 4 CPU cores, with 12 GB or more recommended for large projects. Java is its listed supported language.
PolyglotPiranha
PolyglotPiranha is a free, multilingual structural search-and-replace engine for code cleanup. It can refactor stale feature-flag code when given a flag name, expected behavior, and configured feature-flag API rules. Rules can form graphs, and built-in language-specific cleanups include simplifying boolean expressions and if-else statements, removing empty declarations and files, and inlining local variables. Queries and filters may use Tree-sitter queries, regular expressions, or Piranha’s concrete syntax. The project is available as a Python library and command-line tool, with the Python API wrapping the CLI. The CLI lists Java, Swift, Python, Kotlin, Go, TSX, and TypeScript as target languages. Dry runs prevent in-place rewriting and produce summaries of matches, rewrites, and resulting file content. API configuration requires code path, configuration path, target language, and substitutions, with optional rules.toml and edges.toml files. Python installation uses pip; the CLI can be built with Rust and Cargo or obtained from releases. Piranha is Apache 2.0, provided as is, and not an official Uber product.