Sculpt is a compiler plugin for analyzing the dependency structure of Scala source code. It is now public for the first time. The source code is available under an Apache 2 license here:
The reports it generates are intended to be useful to Scala coders looking to alter the dependency structure of a codebase in order to reduce incremental compile times or split the codebase into separately buildable parts.
Sculpt uses code derived from Zinc to listen to the same dependency information coming out of the compiler that is used to guide incremental compilation.
- store the raw dependency data in memory as case class instances
- output the raw dependency data as JSON
- analyze at method level, or aggregate dependencies at class level
- generate report of dependency layers
- generate report of dependency cycles
See the README in the repository for more details.
There are no binary releases; the project is released as source code only.
The project is not currently actively maintained. The Scala team at Lightbend is making it available anyway in the hopes that tooling authors might find it interesting or useful.
(Thanks, Jorge, for prodding me to get this out there…)
Seth Tisue / Scala team / Lightbend, Inc.