Targets
Supported target platforms and architectures for Hakobu builds.
Target Identifier Format
Every Hakobu target is specified as a triple:
node24-{platform}-{arch}For example: node24-linux-x64, node24-macos-arm64, node24-win-x64.
When you pass --target, use this full identifier:
hakobu . --target node24-linux-x64 --output ./dist/appIf --target is omitted, Hakobu builds for the current host platform and architecture.
Platform Values
| Platform | Meaning |
|---|---|
linux | glibc-based Linux (Ubuntu, Debian, RHEL, Fedora, etc.) |
linuxstatic | Statically linked Linux (works on any Linux distro) |
alpine | musl libc Linux (Alpine, distroless-musl) |
macos | macOS (Darwin) |
win | Windows |
Architecture Values
| Architecture | Meaning |
|---|---|
x64 | 64-bit x86 (Intel/AMD) |
arm64 | 64-bit ARM (Apple Silicon, Graviton, Ampere) |
Active Targets
Hakobu ships base binaries for 7 targets across two support tiers.
| Target | Tier | Status |
|---|---|---|
linux-x64 | 1 | Available |
linux-arm64 | 1 | Available |
win-x64 | 1 | Available |
macos-arm64 | 1 | Available |
macos-x64 | 2 | Available |
linuxstatic-x64 | 2 | Available |
win-arm64 | 2 | Available |
You can check which base binaries are cached locally and which are available remotely:
hakobu targetsTier 1 -- Release-Blocking
Tier 1 targets must pass all tests before any release is published. A failure on any Tier 1 target blocks the release.
| Target | Build Strategy | Runner |
|---|---|---|
linux-x64 | Docker (OL8) | ubuntu-latest |
linux-arm64 | Docker (OL8) | ubuntu-24.04-arm |
win-x64 | Native | windows-latest |
macos-arm64 | Native | macos-latest |
These four targets cover the primary server, desktop, and CI deployment surfaces. Both Linux targets use Docker with OracleLinux 8 to control the output binary's glibc version (2.28) for broad compatibility.
Tier 2 -- Supported, Best-Effort
Tier 2 targets are built and published in releases. Test failures are treated as high-priority bugs but do not block a release unless they indicate a regression.
| Target | Build Strategy | Runner |
|---|---|---|
macos-x64 | Native (Rosetta) | macos-13 or macos-latest |
linuxstatic-x64 | Docker | ubuntu-latest |
win-arm64 | Native | windows-11-arm |
macos-x64is included because Intel Macs remain in active use, but Apple Silicon is the primary verification target.linuxstaticvariants are useful for Docker deployments where you want a single binary that works regardless of glibc version.
Blocked Targets
| Target | Reason |
|---|---|
linuxstatic-arm64 | muslcc GCC too old for Node 24's C++20 requirements |
alpine-* | Not yet built (linuxstatic covers most musl use cases) |
linuxstatic-arm64 is excluded from CI until a newer musl cross-toolchain is available or a native arm64 Alpine build path is established.
Deferred Targets (Tier 3)
Tier 3 targets are not built, tested, or published in the current release cycle. They may be promoted in future releases.
| Target | Reason for Deferral |
|---|---|
alpine-x64 | linuxstatic covers most musl use cases |
alpine-arm64 | linuxstatic covers most musl use cases |
linux-armv7 | Legacy 32-bit ARM; low demand for Node 24 executables |
linux-x86 | Legacy 32-bit x86; low demand for Node 24 executables |
freebsd-* | Niche; no GitHub-hosted runner |
linux-ppc64 | Niche; no GitHub-hosted runner |
linux-s390x | Niche; no GitHub-hosted runner |
linux-riscv64 | Niche; no GitHub-hosted runner |
linux-loong64 | Niche; no GitHub-hosted runner |
A deferred target can be promoted to Tier 2 or Tier 1 by demonstrating clear user demand, establishing a sustainable build/test path, and updating the target policy.
Migration from pkg
If you are coming from @yao-pkg/pkg:
- Hakobu drops support for Node lines older than 24.x.
armv7,x86,freebsd,ppc64,s390x,riscv64, andloong64are deferred.alpineis deferred in favor oflinuxstatic(which works on Alpine).- The target naming convention (
node{version}-{platform}-{arch}) is unchanged.