The compiler
Download phn
One static binary per platform, reproducible from the sources, pinned by its SHA-256 in the phaenon/phn Composer package. Pick yours, or let Composer pick it.
v0.2.0latest
published 6 November 2026
- macOS7.8 MBApple siliconphn-darwin-arm64
- macOS8.3 MBIntelphn-darwin-amd64
- Linux8.2 MBx86-64phn-linux-amd64
- Linux7.6 MBARM64phn-linux-arm64
- Windows8.4 MBx86-64phn-windows-amd64.exe
- 2.7 MBphn.wasm.gz
- 0.0 MBwasm_exec.js
- Source1.0 MBthe tree the binaries were built fromphn-0.2.0-src.tar.gz
With Composer
The plugin fetches it, the lock pins it.
composer require phaenon/phn installs a plugin that downloads the binary for the running platform through Composer's own HTTP client, checks it against the SHA-256 the package pins, keeps it in Composer's cache and links it as vendor/bin/phn. Because composer.lock pins the package, it pins the compiler.
binary-url in the project's composer.json names where the files come from, with {version} and {file} filled in by the plugin: this site, or a mirror of it with the same file names.
PHN_BINARY=/path/to/phn replaces the download with another binary, such as one built from a checkout.
"extra": {
"phaenon": {
"binary-url": "https://phaenon.dev/releases/{version}/{file}"
}
}curl -fLO https://phaenon.dev/releases/0.1.0/phn-linux-amd64