pnl makes it easy to use C libraries from PHP. It installs library "packages", finds the C library and headers already on your machine, generates PHP wrappers, and exposes everything through the Pnlx PHP SDK — think Composer, but for C libraries.
pnl init
pnl search 'lib*' # browse available packages (default repo + your own)
pnl install libc
pnl list 'lib*' # show what you have installedSee the Quick Start to call C printf from PHP in a minute.
- Overview — What pnl is, how it works, and project status.
- Quick Start — Call C
printffrom PHP in a few commands. - Installation — Requirements and building/installing the binaries.
- Configuration — Project layout and writing
pnl.json. - Install Sources — URLs, paths, bare names, archives, and native discovery.
- Commands —
pnlandpnlxcommand reference. - PHP Usage — Loading extensions and the generated files.
- Development — Validation, testing, and the JSON schemas.
The official default package repository is https://github.com/m3m0r7/pnl-packages, which publishes a repository-index.json so pnl search can browse it without cloning. A repository may also expose short aliases (e.g. sdl → libsdl), so pnl install sdl resolves to the referenced package. The built-in endpoints can be overridden per project — see Configuration.
The generated PHP SDK loads itself through its own autoloader (@pnlx/autoload.php), so it runs without a Composer autoloader at runtime.
This repository is currently marked as MIT in composer.json. The bundled C libraries keep their own upstream licenses; see the package manifests and READMEs at https://github.com/m3m0r7/pnl-packages.