WASMan ( WebAssembly Manager )简单来说就是个基于纯 golang 的 wasm(v1) binary 解释器。
迫于先技术选型了 go,又迫于 wasmtime-go 内存( bytes )操作不友好,wasmer-go 不支持 win,wagon 停止维护且使用手感不咋样,gasm 往 gojs 方向跑远了,且个人需要类似 eth 的 gas cost 等非主流设计。
作为菜鸡,先是试图加入 wasmtime 结果被 memory 绕的一脸懵逼,又把时间都浪费在 docstring 和 bazel support 上了,结果发现加非主流设计改动太大。
然后自己开始制作,边翻译 wasm 的 spec 边参考 wagon,gasm,wasmtime-go,wasmer-go 慢慢写了一个月。
因为初始是从 gasm 改的所以 license 也保留了原作者。
当前 WASMan 基本上算是w3c的最简化可实行产品,此外添加了类似 gas cost 的 toll-station 和与 host 之间的 string 交互方案(这也是基本上每个同类产品 issue 里的常客,然而基本上没人清楚告知 issue author 该怎么做,只说参数只能 i32/64 f32/64 )。
当前的运行速度正常来说应该是不如 wasmtime 、wasmer 的,基本上 go 的都没法和 rust 打,况且人家还 JIT 优化。
当前还在增加新的 features,例如 validator 和标准 wasi 。
因为这些我暂时用处不大所以动力不是很足……
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.