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