nimstatic app.nim — asks the Nim compiler what the program links against (including the libraries Nim would dlopen at runtime, which never reach a link line), fetches musl-built static archives for them from Alpine's mirrors, and builds against a sysroot it owns. No apk, no container, no root.
This release is the first built and attached by CI, and nimstatic builds itself: a throwaway host build produces the static binary that ships, so the artifact doubles as proof the tool works on a clean machine.
Install
curl -sSfLO https://rickub.com/nandi/nimstatic/releases/download/v0.1.5/nimstatic-0.1.5-x86_64-linux
chmod +x nimstatic-0.1.5-x86_64-linux
| asset | size | sha256 |
|---|---|---|
nimstatic-0.1.5-x86_64-linux |
5,109,536 | 6d8c385e3901b4546399de250a5b627993e5504fe43dee901ad7f1bb2e833252 |
nimstatic-0.1.5-x86_64-linux.xz |
1,706,504 | 7b6855a7641bd164a1517063554dc6f23dc270b273d8c1697fa18f3975861647 |
SHA256SUMS is attached too. The binary is stripped, fully static (no PT_INTERP), and needs only a Linux kernel.
Pinning it with DotSlash
#!/usr/bin/env dotslash
{
"name": "nimstatic",
"platforms": {
"linux-x86_64": {
"size": 1706504,
"hash": "sha256",
"digest": "7b6855a7641bd164a1517063554dc6f23dc270b273d8c1697fa18f3975861647",
"format": "xz",
"path": "nimstatic-0.1.5-x86_64-linux",
"providers": [
{ "url": "https://rickub.com/nandi/nimstatic/releases/download/v0.1.5/nimstatic-0.1.5-x86_64-linux.xz" }
]
}
}
}
Requirements
zig (used as zig cc -target x86_64-linux-musl, or pass --cc) and tar.
No signature verification of Alpine packages — treat a sysroot as build input, not a trust root.