aheinze/scriptlite-ext
最新稳定版本:0.1.2
Composer 安装命令:
pie install aheinze/scriptlite-ext
包简介
C extension for ScriptLite — high-performance ECMAScript interpreter with native C parser
README 文档
README
Mirror repository — this repo is automatically mirrored from aheinze/ScriptLite for PHP PIE installation. All development, issues, and pull requests happen in the main repository.
High-performance PHP extension for the ScriptLite ECMAScript interpreter. Replaces the PHP bytecode VM with a C implementation using computed-goto dispatch, delivering ~180x speedup.
The extension ships with a native C parser only (no PHP parser fallback), so no Composer autoloader or external PHP parser runtime is required at runtime.
Installation
Via PHP PIE (recommended)
pie install aheinze/scriptlite-ext
Manual build
Prerequisites: PHP 8.3+ dev headers, phpize, C11 compiler, libpcre2-dev, make.
phpize
./configure --enable-scriptlite
make -j"$(nproc)"
make install
Then enable:
extension=scriptlite
Verify
php -r "var_dump(extension_loaded('scriptlite'));" # bool(true) php -r "echo (new ScriptLiteExt\Engine())->eval('1 + 2');" # 3
Usage
Standalone (no PHP library needed)
$engine = new ScriptLiteExt\Engine(); $result = $engine->eval('Math.max(1, 2, 3)'); echo $result; // 3
With ScriptLite PHP library
When installed alongside aheinze/ScriptLite, the PHP Engine class automatically delegates to the C extension — no code changes needed.
$engine = new ScriptLite\Engine(); $result = $engine->eval('Math.max(1, 2, 3)'); // uses C extension transparently
API
ScriptLiteExt\Engine
| Method | Description |
|---|---|
eval(string $code, array $globals = []): mixed |
Evaluate JS code and return the result |
compile(string $code): CompiledScript |
Compile JS to bytecode |
run(CompiledScript $script, array $globals = []): mixed |
Execute compiled bytecode |
transpile(string $code): string |
Transpile JS to PHP code |
getOutput(): string |
Get captured console.log output |
ScriptLiteExt\Compiler
| Method | Description |
|---|---|
compile(Program $ast): CompiledScript |
Compile an AST to bytecode |
ScriptLiteExt\VirtualMachine
| Method | Description |
|---|---|
execute(CompiledScript $script, array $globals = []): mixed |
Execute compiled bytecode |
getOutput(): string |
Get captured console.log output |
License
MIT
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-05