dk
a Windows-friendly, incremental, remote cacheable build system
dk is Diskuv's development kit for building and distributing
software.
With dk your users clone your project on Windows, macOS or Linux.
dk fetches, builds, and runs the software locally or remotely.
Start with the documentation below.
-
Documentation →
The dk specification, guides, and the dk0, dk1, and dkjs reference implementations.
-
Packages →
Officially supported dk packages.
-
Quickstarts →
Bootstrap a workspace in one command.
Why dk?
- Windows is first-class
- Build on the OS your users run: Windows, with macOS and Linux too.
- Remote builds
dk1 remotecompiles on a remote build machine.- Caches and incremental builds
- Pull prebuilt binary caches with
dk1 add, and rebuild only what changed withdk1 restore. - Write-once, read-many distros
- Package once and distribute everywhere, with checksums and signatures baked in.
Which dk?
Three implementations share one build engine. Reach for
dk1 day to day;
dk0 is the single-threaded reference implementation, and
dkjs builds JavaScript and web projects on Node.js.
dk0 | dk1 | dkjs | |
|---|---|---|---|
| Runtime | Native, single-threaded | Native, multi-threaded | JavaScript on Node.js |
| Install | Signed native binary | Signed native binary | JavaScript bundle |
| Parallelism | Serial | -j (default: CPU count) | -j (default: 1) |
| Best for | The reference implementation and cross-language emulation target | Fast day-to-day local and remote builds | Building JavaScript and web projects (js_nodejs / js_web) |
Commands
get-object | Fetch a prebuilt object (a tool, library, or binary) from the registry. |
|---|---|
remote | Build on a remote GitHub Actions machine. |
add | Add a GitHub release verified with a SLSA-2 attestation to your workspace. |
restore | Rebuild only what changed: fast, incremental builds. |
run-object | Run a built object locally or remote. |
distribute | Package a build into a signed, checksummed distribution. |

