Fury is a long-term project to create next-generation build tooling to address the greatest challenges of building software in an ever-changing environment, while maintaining the predictability, reliability and simplicity of builds.
- fully data-oriented model for builds
- builds may be defined in terms of sources or binary dependencies
- power to control a build and the builds of all its source dependencies
- advanced support for conflict resolution amongst dependencies
- intuitive command-line API, with visual interfaces available later (Milestone 3)
- hierarchical model of builds and build distribution
- support for compiling Scala 2.x, Scala 3, Scala.js and Java
- composable variants of builds, for generalized cross-building (Milestone 2)
- support for running Docker containers as part of a build (Milestone 2)
- compilation distributed over the network (Milestone 3)
- optionally external builds, shared independently of source code
Fury introduces a number of new concepts for developers. While full documentation is in the process of being written, a work-in-progress document provides a lot of detail on these new ideas and how they work.
Fury is approaching its first public milestone release, Alecto. This will be the first release of Fury capable of building a majority of Scala projects. Fury’s future plans are described in the roadmap.
Pre-release versions of Fury (with no guarantees on features or reliability) may be installed by running,
curl -Ls get.fury.build | sh
in a shell, or alternatively,
curl -Ls get.fury.build > install
./install system install
if you would prefer to inspect the script before running it.
For more details, see the full installation instructions.
To set up a simple Fury project, follow the short tutorial for Scala or, if you prefer, the tutorial for Java.
Full information about Fury is available on the Fury website.
Contributors to Fury are welcome and encouraged. New contributors may like to look for issues marked .
We suggest that all contributors read the Contributing Guide to make the process of contributing to Fury easier.
Please do not contact project maintainers privately with questions, as other users cannot then benefit from the answers.
Fury was designed and developed by Jon Pretty, and commercial support and training is available from Propensive OÜ.
Fury is copyright © 2018-20 Jon Pretty & Propensive OÜ, and is made available under the Apache 2.0 License.