A PHP extension that embeds the Typst typesetting engine, built with Rust via ext-php-rs.
Compile Typst markup to PDF, PNG, JPEG, and SVG directly from PHP. No CLI needed. No subprocess spawning.
Documentation | GitHub | Typst
pie install carthage-software/ext-typstDownload the ZIP for your platform from GitHub Releases. Each ZIP contains a typst.so file. Extract it and add to your php.ini:
extension=/path/to/typst.socomposer require --dev carthage-software/ext-typstEnables autocompletion in PhpStorm and support for Mago, PHPStan, and Psalm.
$world = new Typst\World();
$compiler = new Typst\Compiler($world);
const TEMPLATE = <<<'TYPST'
#set page(height: auto)
= Hello from Typst
This is a *bold* statement with _italic_ flair.
TYPST;
$document = $compiler->compileString(TEMPLATE);
$document->toPdf()->save('output.pdf');
$document->toImage()->save('output.png');
$document->toSvg()->save('output.svg');See the full documentation at ext-typst.carthage.software.
| Platform | Architecture |
|---|---|
| Linux | x86_64 |
| Linux | aarch64 |
| macOS | arm64 |
PHP 8.3, 8.4, and 8.5 are supported.
Requires Rust (stable, 2024 edition) and just.
just build # debug build
just release # release build
just test # run tests
just run-example X # run examples/X.php
just lint # clippy + mago lint
just check # cargo check + mago analyze
just fmt # format rust + php
just verify # fmt-check + lint + checkFor more examples, see examples/.
This project was developed by Carthage Software and is fully funded by our partner Buhta.
MIT OR Apache-2.0