Scalafix vs Spoon
Scalafix
scalacenter.github.ioSpoon
spoon.gforge.inria.frSide by side
| Figure | Scalafix | Spoon |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 0 | 1 |
| Spec score · Code Refactoring Tools | 7.0 (#20) | 7.8 (#10) |
| Purpose | Scalafix is a refactoring and linting tool for Scala. | Spoon is an open-source library for analyzing, rewriting, transforming, and transpiling Java source code. |
| Refactoring | It can automate day-to-day code health tasks and one-time migration scripts. | The documentation describes local-variable and generic-variable refactoring helpers, as well as a helper for removing deprecated methods. |
Plans
In their own words
Scalafix
Scalafix is a refactoring and linting tool for Scala that automates routine code-health work and one-time migrations. It reports patterns that may lead to production bugs or conflict with coding style, and teams can run rules during code review. Its check option fails when linting or fixes are needed. Syntactic rules run directly on source code; semantic rules need compiled sources with the SemanticDB compiler plugin enabled. Built-in rules include OrganizeImports, RemoveUnused, DisableSyntax, ProcedureSyntax, and RedundantSyntax. Developers can also create custom lint and rewrite rules through its public API. The official build integration is for sbt. Documentation also lists externally maintained integrations for scala-cli, Mill, Gradle, Maven, and Mega-Linter, whose integration supports only built-in syntactic rules. Scalafix is tested on macOS, Linux, and Windows. Listed tested Scala versions are 2.12.21, 2.13.18, and 3.9.0 LTS. It is no longer published for Scala 2.11 or sbt 0.13.x. Community help is available through Discord and Scala Users. The tool is free.
Spoon
Spoon is a free, open-source library for analyzing, rewriting, transforming, and transpiling Java source code. It parses source files into an abstract syntax tree (AST), then exposes APIs for inspecting and changing that model. Processors can perform source-level static analysis on selected AST element types, while architectural rules can be expressed as AST checks and run as JUnit tests in continuous integration. Transformation facilities cover instrumentation and refactoring, including helpers for local and generic variables and removing deprecated methods. Spoon can also provide shared analysis of binary and source code through CtClass objects as an alternative to Java reflection. The project supports Java source up to Java 25, but runtime requirements vary: Spoon 11.x needs JDK 17 or later, 10.x needs JDK 11 or later, and 9.x needs Java 8. It is available through Java, the command line, Maven, and Gradle, with a dependency JAR on Maven Central. Command-line use requires manual classpath handling and source dependencies specified with --source-classpath. Spoon is an official Inria project and an OW2 consortium member.