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

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.

composer.json
"extra": {
    "phaenon": {
        "binary-url": "https://phaenon.dev/releases/{version}/{file}"
    }
}
or by hand
curl -fLO https://phaenon.dev/releases/0.1.0/phn-linux-amd64