您现在的位置是:首页 > 文章详情

Ruvy - 转换 Ruby 代码为 WebAssembly 的工具链

日期:2023-10-24点击:301

Ruvy 是一个工具链,它接受 Ruby 代码作为输入,并创建一个将执行该 Ruby 代码的 WebAssembly 模块。

目前已有从 Ruby 代码创建 Wasm 模块的项目,最常见的是 ruby.wasm。Ruvy 也是基于 ruby.wasm 构建,并提供了一些特定的优势。

官方称创建 Ruvy 旨在利用预初始化 Ruby 虚拟机和 Ruby 脚本包含的 Ruby 文件带来的性能改进。此外,Ruvy 不需要在运行时提供 WASI 参数,从而简化了 Wasm 模块的执行。

WASI 是一组导入的 Wasm 函数的标准化集合,旨在为 Wasm 模块提供一个标准接口,以实现许多典型语言标准库中存在的系统调用。

目前,Ruvy 并未随预编译的二进制文件一起发布,因此需要安装它的构建依赖项,然后编译 Ruvy 才能使用。

构建 Ruvy 后,可以运行以下命令:

$ cargo run -- package=cli ruby_examples / hello_world.rb - o index.wasm $ wasmtime index.wasm Hello world

上述命令将构建并执行 CLI,获取 ruby_examples/hello_world.rb 的内容,并创建一个名为 index.wasm 的 Wasm 模块,当调用 index.wasm 的导出_start 函数时,将执行 puts “Hello world”。

如果要使用额外的 Ruby 文件,可以运行以下命令:

$ cargo run -- package=cli -- -- preload=prelude / ruby_examples / use_preludes_and_stdin.rb $ echo "this is my input" | wasmtime index.wasm {:discount_input=>"this is my input", :value=>100.0}
原文链接:https://www.oschina.net/p/ruvy
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章