sbt VS Mill

Compare sbt vs Mill and see what are their differences.

Mill

Mill is a fast JVM build tool that supports Java, Scala, Kotlin and many other languages. 2-4x faster than Gradle and 4-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible (by lihaoyi)
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
sbt Mill
21 14
4,827 2,348
0.1% 1.9%
9.5 9.9
7 days ago 6 days ago
Scala Scala
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

sbt

Posts with mentions or reviews of sbt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-11.

Mill

Posts with mentions or reviews of Mill. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-02-06.
  • Scala 3 Migration: Report from the Field
    4 projects | news.ycombinator.com | 6 Feb 2025
    This might be a bit of a shameless plug, but because you ask :)

    Regarding no sbt, I would highly recommend to have a look at the mill build tool https://mill-build.org. I personally find it very pleasant to use as a replacement for sbt, mostly because of the following points:

    - it uses regular Scala code to define a build

  • Bazel 8.0 Released
    3 projects | news.ycombinator.com | 9 Dec 2024
    In most build tools, caching is opt in, so most things dont get cached and instead are wastefully recomputed. In Bazel caching is the default so everything is cached. Even tests are cached so if you run a test twice on the same code, the second time it is skipped

    - Dependency bazed test selection: You can use bazel query to determine the possible targets and tests affected by a code change, allowing you to trivially set up CI to only run tests downstream of a PR diff and skip unrelated ones

    - Automatic sandboxing of your build steps in CGroup/NS containers, to ensure your build steps do not make use of un-declared files.

    - At my last job we extended these cgroups to limit CPU/Memory usage as well, which eliminates the noisy neigjbour problem and ensures a build step or test gets the same compute footprint whether run alone during development or in parallel on a CI worker

    - Built in support for seamless shared caches (e.g. I compile something on my laptop, you download it to your laptop for usage)

    - Built in support for shared compute clusters (e.g. I compile stuff and it automatically happens in the cloud on 96 core machines)

    - Support for deep integration between multiple languages (e.g. building a Go binary and Rust libeary which are both used in a Python binary, which is then tested using a Bash script)

    If you never hit these needs, you don't need Bazel. If you do hit these needs, most other build tools simply do not cut it. We're trying to support some of these use cases and provide an alternative in https://mill-build.org, but Bazel really is a high bar to reach in terms of features that support latge monorepos

  • Starlark Programming Language
    10 projects | news.ycombinator.com | 9 Dec 2024
    Starlark is definitely a mixed experience IMO.

    On one hand, having a "hermetic" subset of Python is nice. You can be sure your starlark codebase isn't going to be making network calls or reading files or shelling out to subprocesses and all that. The fact that it is hermetic does help make things reproducible and deterministic, and enables paralleization and caching and other things

    On the other hand, a large Starlark codebase is a large Python codebase, and large Python codebases are imperative, untyped, and can get messy even without all the things mentioned above. Even though your Starlark is pure and deterministic, it still easily ends up a rats nest of sphagetti.

    For https://mill-build.org we went the opposite route: not enforcing purity, but using a language with strong types and a strong functional bent to it. So far it's been working out OK, but it remains to be seen how well it scales to ever larger and more complex build setups

  • Mill: A fast JVM build tool for Java and Scala
    17 projects | news.ycombinator.com | 27 Oct 2024
    Author here. Unfortunately this is because my own experience with Gradle is not up to date; I've only lived in the Gradle Groovy world! If anyone is interested in helping out, I have a 1500USD bounty on porting a gradle.kts build to Mill, so we can do a fair up-to-date comparison https://github.com/com-lihaoyi/mill/issues/3670
  • A Java Language Cumulative Feature Rollup
    4 projects | news.ycombinator.com | 29 Aug 2024
    https://mill-build.org/ you'll need to know some Scala
  • Mill project structure
    2 projects | /r/scala | 7 Dec 2023
    I had filed a GitHub ticket, but it was closed as "out of scope". I'm not sure why the maintainers insisted on perpetuating the ambiguity, and would like to know your opinion about the following. None of the references above answer these very basic and very important questions.
  • Version 0.11.0 of the Mill Scala Build Tool is out
    1 project | /r/scala | 8 Jun 2023
  • Why is Scala a mildly loved language?
    1 project | /r/scala | 24 Jun 2022
    It was my case, but https://github.com/com-lihaoyi/mill made my life easier
  • Potentially picking up Scala for a project after a 5 year hiatus - what's changed?
    1 project | /r/scala | 4 Apr 2022
    sbt (lowercase) has improved a lot, but Mill is a serious alternative today.
  • Best Scala framework / libraries out there ?
    4 projects | /r/scala | 31 Oct 2021
    Akka HTTP, Cats, Quill, ninny, Monix Observable, mill.

What are some alternatives?

When comparing sbt and Mill you can also consider the following projects:

dotty - The Scala 3 compiler, also known as Dotty.

bloop - Bloop is a build server and CLI tool to compile, test and run Scala fast from any editor or build tool.

Metals - Scala language server with rich IDE features 🚀

Scalastyle - scalastyle

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured

Did you know that Scala is
the 38th most popular programming language
based on number of references?