Platform support
Niobium sorts the platforms it builds for into three tiers. A tier states what the project commits to on that platform; whether the commitment is met today is recorded on Status and platforms, the only page that reports results.
The list is short on purpose. Niobium is maintained by one person in spare time, with no company resources behind it (About the project), and every Tier 1 platform costs build, test and release time on every change.
| Tier | Built on every change | Tested on a real OS before a release | Can block a release | Fixes |
|---|---|---|---|---|
| Tier 1 | Yes | Required | Yes | First priority |
| Tier 2 | Yes | Best effort | No | When time allows |
| Tier 3 | No | No | No | Only with a volunteer owner |
- Built on every change means the target is cross-compiled in ReleaseSafe and its binaries pass the binary lint (allowed dynamic libraries, PE flags, no writable and executable memory). Shipping targets also stay under the 30 MiB size budget for
setup. - Tested on a real OS means the platform contract suite, the end-to-end install, update, repair and uninstall scenarios and a smoke run on the reference OS. For a Tier 1 platform, a known failure blocks the release; a test that could not run is reported in the release notes as
BLOCKEDorNOT_RUN, never as passed. - Tier 3 platforms are candidates. Nothing is built for them by default, and nothing about them is promised.
Current platforms
Section titled “Current platforms”| Target | Tier | Reference OS | Notes |
|---|---|---|---|
aarch64-macos |
1 | macOS on Apple silicon | The minimum macOS version is not pinned yet |
x86_64-windows |
1 | Windows 11 (x64) | |
x86_64-linux |
1 | Ubuntu 24.04 LTS | Static musl binaries with no dynamic library dependencies; other distributions may work but are not covered |
aarch64-linux |
2 | Ubuntu 24.04 (ARM64) | Built and linted, used for VM smoke runs; not yet a shipping target, so the size budget does not apply |
Results for each target are on Status and platforms.
Roadmap
Section titled “Roadmap”This section covers platforms only. Planned features are on the Roadmap.
Before the first Tier 1 release
Section titled “Before the first Tier 1 release”Each Tier 1 platform still has a gap between its commitment and its test lanes:
x86_64-linux: there is no real-OS test lane yet. The existing VM lane runs Ubuntu 24.04 on ARM64, which exercisesaarch64-linux, not the x64 build.x86_64-windows: the only real-OS lane runs the x64 build under emulation on Windows 11 for ARM64. Native x64 hardware is not covered.- All platforms: the real-OS smoke run covers user-scope installs only; machine-wide installs are not exercised there.
aarch64-macos: the walkthrough of the graphical installer on a real Mac is a manual check that has not been run, and the minimum supported macOS version still has to be chosen.
Candidates
Section titled “Candidates”| Candidate | Tier | What it needs |
|---|---|---|
aarch64-windows |
3 | A build target and binary-lint entry, and a real-OS lane on Windows 11 for ARM64 |
| Kylin and UOS, x86_64 and aarch64 | 3 | A real-OS lane per distribution. The Linux binaries are static, so they are expected to run unchanged, but that is untested; the desktop integration (.desktop entries, MIME packages, systemd units, XDG directories) has to be checked on each distribution |
Not planned
Section titled “Not planned”- A native Wayland backend. On Wayland sessions the installer window runs through XWayland. The decision is recorded in ADR-0010.
Moving between tiers
Section titled “Moving between tiers”A platform moves up a tier when it has all of the following:
- a repeatable test lane on the reference OS that produces recorded evidence;
- a named reference OS version;
- a maintainer with the time to keep that lane running.
Moving into Tier 1 also needs a recorded decision, because it adds work to every release. A Tier 1 platform whose real-OS lane stays unavailable for two releases in a row moves down to Tier 2.
Ports to a Tier 3 candidate are welcome when they come with someone who will keep the test lane running, and when they add no work to the Tier 1 platforms. The policy itself is recorded in ADR-0014.