zinc

Scala incremental compiler library, originally part of sbt

Github星跟蹤圖

Zinc

Build Status

Zinc is the incremental compiler for Scala. Most Scala developers use it daily
without noticing -- it's embedded in key build tools like sbt, CBT and pants.

The primary goal of Zinc is to make your compilation times faster without sacrificing
correctness. When you change a source file, Zinc analyses the dependencies of
your code and compiles the minimum subset of source files affected by your
change. The generated code should be identical to the output of a clean compile.

History

Originally this project was part of sbt, referred to as the incremental compiler module of sbt.

To allow for build tools outside of sbt to use it, the project typesafehub/zinc was created to re-export the
whole of sbt to utilise the incremental compiler module.

With the effort for sbt 1, the sbt team extracted the incremental compiler from the sbt repo, to the
sbt/zinc repo, recycling the name "zinc".

This new repository is an effort driven by Lightbend to allow any build tool
use the Scala incremental compiler, as sbt 1.0, pants, bazel, cbt,
Intellij, Scala IDE and Maven Plugin.

Current status

The Zinc 1.0 incremental compiler implements significant improvements over
0.13.13's version when it comes to performance, correctness and dependency
analysis.

Zinc 1.0 is already in use in many tools in the Scala ecosystem like sbt,
Bloop, Pants, Bazel, and Maven.
If you want to create your own integration, you have two options:

  1. Interface directly with Zinc APIs and maintain your own integration.
  2. Use Bloop (which has a compilation server that simplifies tooling integrations).

Installation and use

If you're a build tool author, add it to your project with:

libraryDependencies += "org.scala-sbt" %% "zinc" % "$ZINC_VERSION"

where $ZINC_VERSION is the latest tag pushed to the GitHub repository.

Contributing

This project is maintained by Lightbend, the Scala Center
and other OSS contributors.

You're welcome to contribute to this repository. For information on how to contribute,
please check the CONTRIBUTING guide.

This software is released under the following LICENSE.

主要指標

概覽
名稱與所有者sbt/zinc
主編程語言Scala
編程語言Scala (語言數: 3)
平台
許可證Apache License 2.0
所有者活动
創建於2015-08-04 21:32:58
推送於2025-08-31 22:00:09
最后一次提交
發布數141
最新版本名稱v2.0.0-M7 (發布於 2025-08-30 16:49:30)
第一版名稱v0.1.0-M1 (發布於 2015-11-13 17:02:14)
用户参与
星數340
關注者數20
派生數121
提交數3.6k
已啟用問題?
問題數397
打開的問題數74
拉請求數969
打開的拉請求數16
關閉的拉請求數197
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?