文件名称:gasm:用于Gophers的实验性Wasm虚拟机
文件大小:54KB
文件格式:ZIP
更新时间:2024-04-08 06:07:09
go golang virtual-machine wasm wasi
气 完全用go编写的,与WASM规范v1兼容的虚拟机的最小实现。 vm可以嵌入到您的go程序中,而无需像cgo这样的任何依赖项,并且可以使Gophers轻松编写wasm主机环境。 vm应该仅用于提供嵌入Go程序中的沙箱环境,因为我们尚未实现wasm二进制文件的。 该实现非常简单,我希望这段代码对于新手来说是学习WASM规范的良好起点。 例子 完整的示例可以在以下位置找到: : 从主机调用导出的函数 func Test_fibonacci ( t * testing. T ) { buf , _ := ioutil . ReadFile ( "wasm/fibonacci.wasm" ) mod , _ := wasm . DecodeModule ( bytes . NewBuffer ( buf )) vm , _ := wasm . NewVM ( mod , wasi .
【文件预览】:
gasm-master
----go.mod(127B)
----wasm()
--------vm_func_test.go(2KB)
--------vm_stack_test.go(1KB)
--------vm_call.go(837B)
--------vm_control_test.go(4KB)
--------vm_local.go(445B)
--------type.go(3KB)
--------value.go(1KB)
--------vm_const_test.go(2KB)
--------const_expr_test.go(3KB)
--------vm_stack.go(2KB)
--------type_test.go(3KB)
--------segment_test.go(5KB)
--------vm_num_test.go(2KB)
--------const_expr.go(3KB)
--------vm_call_test.go(1KB)
--------module.go(13KB)
--------vm_global.go(265B)
--------module_test.go(22KB)
--------optcode.go(6KB)
--------vm_memory_test.go(11KB)
--------vm_test.go(2KB)
--------vm_memory.go(3KB)
--------vm_const.go(501B)
--------segment.go(6KB)
--------vm_num.go(18KB)
--------section.go(6KB)
--------vm_control.go(2KB)
--------leb128()
--------vm_func.go(2KB)
--------value_test.go(1KB)
--------vm.go(10KB)
--------vm_global_test.go(938B)
--------vm_local_test.go(1KB)
----go.sum(867B)
----.circleci()
--------config.yml(396B)
----hostfunc()
--------hostfunc.go(2KB)
--------hostfunc_test.go(3KB)
----examples()
--------wasm()
--------host_func_test.go(891B)
--------panic_test.go(545B)
--------fibonacci_test.go(785B)
--------README.md(235B)
----LICENSE(1KB)
----README.md(2KB)
----wasi()
--------wasi.go(1015B)