The reference implementation is a single-file executable.
A dk0 shell script (Unix) and a
dk0.cmd Windows batch script are also available that bootstrap and run the single-file executable.
They rely on a small set of external tools per platform; a different implementation may
use different tools or none at all.
Each dk0 version installs into its own dk0exe-<version>-<abi> directory
under the launcher data home (%LOCALAPPDATA%\Programs\dk0 on Windows,
$XDG_DATA_HOME/dk0 or ~/.local/share/dk0 on Unix, DKCODER_DATA_HOME
override). The launchers garbage collect that store on every run: the
version being launched is marked used, then version directories and
superseded verifier/mlfront-signify-* binaries that no launcher has used
in 30 days are removed. Everything in the store re-downloads on demand from
its signed manifest, so pruning is always safe and never blocks a launch.
| File | What |
|---|
pwsh in PATH | enter-object interactive shell (optional; searched 1st) |
powershell in PATH | enter-object interactive shell (optional; searched 2nd) |
cmd in PATH | enter-object interactive shell (fallback; searched last) |
powershell.exe in PATH | dk0.cmd batch script - for InvokeWebRequest (optional; searched 1st) |
bitsadmin in PATH | dk0.cmd batch script - for download (fallback; searched last) |
certutil in PATH | dk0.cmd batch script - verify sha256sums |
forfiles in PATH | dk0.cmd batch script - prune old dk0 versions (optional) |
| File | What |
|---|
/usr/bin/codesign | executables are locally signed when -e GLOB_PATTERN |
/bin/sh | enter-object interactive shell unless SHELL env var set |
/bin/sh | dk0 shell script |
/usr/bin/shasum | dk0 shell script |
/usr/bin/curl | dk0 shell script (optional; searched 1st) |
/bin/curl | dk0 shell script (optional; searched 2nd) |
/usr/bin/wget | dk0 shell script (optional; searched 3rd) |
/bin/wget | dk0 shell script (fallback; searched last) |
/usr/bin/mv | dk0 shell script (optional; searched 1st) |
/bin/mv | dk0 shell script (fallback; searched last) |
/usr/bin/rm | dk0 shell script (optional; searched 1st) |
/bin/rm | dk0 shell script (fallback; searched last) |
/usr/bin/uname | dk0 shell script (optional; searched 1st) |
/bin/uname | dk0 shell script (fallback; searched last) |
/usr/bin/awk | dk0 shell script - to parse sha256sums (optional; searched 1st) |
/bin/awk | dk0 shell script (fallback; searched last) |
| File | What |
|---|
/bin/sh | enter-object interactive shell unless SHELL env var set |
/bin/sh | dk0 shell script |
/usr/bin/shasum | dk0 shell script (optional; searched 1st) |
/usr/bin/sha256sum | dk0 shell script (fallback; searched last) |
/usr/bin/curl | dk0 shell script (optional; searched 1st) |
/bin/curl | dk0 shell script (optional; searched 2nd) |
/usr/bin/wget | dk0 shell script (optional; searched 3rd) |
/bin/wget | dk0 shell script (fallback; searched last) |
/usr/bin/mv | dk0 shell script (optional; searched 1st) |
/bin/mv | dk0 shell script (fallback; searched last) |
/usr/bin/rm | dk0 shell script (optional; searched 1st) |
/bin/rm | dk0 shell script (fallback; searched last) |
/usr/bin/uname | dk0 shell script (optional; searched 1st) |
/bin/uname | dk0 shell script (fallback; searched last) |
/usr/bin/awk | dk0 shell script - to parse sha256sums (optional; searched 1st) |
/bin/awk | dk0 shell script (fallback; searched last) |
/usr/bin/cygpath | dk0 shell script (optional) |