HakobuHakobu

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/app

If --target is omitted, Hakobu builds for the current host platform and architecture.

Platform Values

PlatformMeaning
linuxglibc-based Linux (Ubuntu, Debian, RHEL, Fedora, etc.)
linuxstaticStatically linked Linux (works on any Linux distro)
alpinemusl libc Linux (Alpine, distroless-musl)
macosmacOS (Darwin)
winWindows

Architecture Values

ArchitectureMeaning
x6464-bit x86 (Intel/AMD)
arm6464-bit ARM (Apple Silicon, Graviton, Ampere)

Active Targets

Hakobu ships base binaries for 7 targets across two support tiers.

TargetTierStatus
linux-x641Available
linux-arm641Available
win-x641Available
macos-arm641Available
macos-x642Available
linuxstatic-x642Available
win-arm642Available

You can check which base binaries are cached locally and which are available remotely:

hakobu targets

Tier 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.

TargetBuild StrategyRunner
linux-x64Docker (OL8)ubuntu-latest
linux-arm64Docker (OL8)ubuntu-24.04-arm
win-x64Nativewindows-latest
macos-arm64Nativemacos-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.

TargetBuild StrategyRunner
macos-x64Native (Rosetta)macos-13 or macos-latest
linuxstatic-x64Dockerubuntu-latest
win-arm64Nativewindows-11-arm
  • macos-x64 is included because Intel Macs remain in active use, but Apple Silicon is the primary verification target.
  • linuxstatic variants are useful for Docker deployments where you want a single binary that works regardless of glibc version.

Blocked Targets

TargetReason
linuxstatic-arm64muslcc 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.

TargetReason for Deferral
alpine-x64linuxstatic covers most musl use cases
alpine-arm64linuxstatic covers most musl use cases
linux-armv7Legacy 32-bit ARM; low demand for Node 24 executables
linux-x86Legacy 32-bit x86; low demand for Node 24 executables
freebsd-*Niche; no GitHub-hosted runner
linux-ppc64Niche; no GitHub-hosted runner
linux-s390xNiche; no GitHub-hosted runner
linux-riscv64Niche; no GitHub-hosted runner
linux-loong64Niche; 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, and loong64 are deferred.
  • alpine is deferred in favor of linuxstatic (which works on Alpine).
  • The target naming convention (node{version}-{platform}-{arch}) is unchanged.

On this page