wasmer php
1.1.0
รันไทม์ WebAssembly ที่สมบูรณ์และสมบูรณ์สำหรับ PHP ที่ใช้ Wasmer
ใช้งานง่าย : wasmer API เลียนแบบ WebAssembly C API มาตรฐาน
เร็ว : wasmer รันโมดูล WebAssembly เร็วที่สุดเท่าที่จะเป็นไปได้ ใกล้เคียงกับ ความเร็วดั้งเดิม
ปลอดภัย : การเรียก WebAssembly ทั้งหมดจะรวดเร็ว แต่ที่สำคัญกว่านั้นคือปลอดภัยอย่างสมบูรณ์และอยู่ในแซนด์บ็อกซ์
หากต้องการติดตั้งไลบรารี ให้ทำตามแบบคลาสสิก:
โคลนคอมไพล์ https://github.com/wasmerio/wasmer-phpcd wasmer-php/ext phpize ./configure --enable-wasmer ทำ ทำการทดสอบทำการติดตั้ง
หมายเหตุ: Wasmer ยังไม่ทำงานบน Windows
<?php ประกาศ(strict_types=1);$engine = wasm_engine_new();$store = wasm_store_new($engine);$wasm = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'hello.wasm');$module = wasm_module_new($store, $wasm);function hello_callback() {echo 'กำลังโทร' กลับ...' . PHP_EOL;echo '> สวัสดีชาวโลก!' - PHP_EOL;คืนค่าเป็นโมฆะ;
}$functype = wasm_functype_new(WasmVecValType ใหม่(), WasmVecValType ใหม่());$func = wasm_func_new($store, $functype, 'hello_callback');wasm_functype_delete($functype);$extern = wasm_func_as_extern($func);$externs = ใหม่ WasmVecExtern([$extern]);$instance = wasm_instance_new($store, $module, $externs);wasm_func_delete($func);$exports = wasm_instance_exports($instance);$run = wasm_extern_as_func($exports[0]);wasm_module_delete($module);wasm_instance_delete($instance);$results = wasm_func_call($run, ใหม่ WasmVecVal());wasm_store_delete($store);wasm_engine_delete($เครื่องยนต์); <?phpdeclare(strict_types=1);use Wasm;require_once __DIR__.'/../vendor/autoload.php';$engine = WasmEngine::new();$store = WasmStore::new($engine);$ wasm = file_get_contents(__DIR__.DIRECTORY_SEPARATOR.'hello.wasm');$โมดูล = WasmModule::new($store, $wasm);ฟังก์ชั่น hello_callback()
{echo 'กำลังโทรกลับ...'.PHP_EOL;echo '> สวัสดีชาวโลก!'.PHP_EOL; return null;
}$functype = WasmFunctype::ใหม่(ใหม่ WasmVecValType(), ใหม่ WasmVecValType());$func = WasmModuleFunc::new($store, $functype, 'hello_callback');$extern = $func->asExtern(); $externs = ใหม่ WasmVecExtern([$extern->inner()]);$instance = WasmModuleInstance::new($store, $module, $externs);$exports = $instance->exports();$run = $exports[0]->asFunc();$args = new WasmVecVal();$results = $วิ่ง($args);ตัวอย่างนี้ครอบคลุมกรณีการใช้งาน Wasm พื้นฐานที่สุด: เราใช้โมดูล Wasm (ในรูปแบบการแสดงข้อความ) สร้างอินสแตนซ์จากโมดูล รับฟังก์ชันที่ส่งออกและเรียกใช้
คุณสามารถดูตัวอย่างขั้นสูงเพิ่มเติมได้ในไดเร็กทอรีเฉพาะ:
API ขั้นตอน
API เชิงวัตถุ
| แพลตฟอร์ม | สถาปัตยกรรม | สถานะ |
|---|---|---|
| ลินุกซ์ | amd64 | |
| ลินุกซ์ | aarch64 | |
| หน้าต่าง | amd64 | |
| ดาร์วิน | amd64 | |
| ดาร์วิน | aarch64 |
| PHP | สถานะ |
|---|---|
| 8.0 | |
| 7.4 | |
| 7.3 |
| คอมไพเลอร์ | สถานะ |
|---|---|
| รถเครน | |
| LLVM | |
| ซิงเกิลพาส |
| เครื่องยนต์ | สถานะ |
|---|---|
| พื้นเมือง | |
| จิต | |
| ไฟล์ออบเจ็กต์ |
| วัตถุ | สถานะ |
|---|---|
| กำหนดค่า | |
| เครื่องยนต์ | |
| เก็บ |
| พิมพ์ | สถานะ |
|---|---|
| ประเภทของวาล์ว | |
| ประเภทฟังก์ชัน | |
| ประเภทสากล | |
| ประเภทโต๊ะ | |
| ประเภทหน่วยความจำ | |
| ประเภทภายนอก | |
| ประเภทการนำเข้า | |
| ประเภทการส่งออก |
| วัตถุ | สถานะ |
|---|---|
| วาล | |
| กรอบ | |
| กับดัก | |
| ต่างชาติ | |
| โมดูล | |
| ฟังก์ชั่น | |
| ทั่วโลก | |
| โต๊ะ | |
| หน่วยความจำ | |
| ภายนอก | |
| ตัวอย่าง |
| คุณสมบัติ | สถานะ |
|---|---|
| วัด | |
| วาสิ | |
| การรวบรวมข้าม |
โครงการทั้งหมดอยู่ภายใต้ใบอนุญาต MIT โปรดอ่านไฟล์ LICENSE