Shopify 开源 Ruvy,将 Ruby 代码转换成 WebAssembly

Shopify最近开源了一个名为Ruvy的项目。Ruvy是一个工具链,它接受Ruby代码作为输入,并创建一个将执行该Ruby代码的WebAssembly模块。

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

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

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

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

安装这些依赖项的详细信息请查看README

构建Ruvy后,可以运行以下命令来打印出 Hello World。

$ 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}

这就是Shopify新推出Ruvy项目的简要介绍。它为Ruby开发者提供了一个新工具,使得他们可以更方便地将Ruby代码转换为WebAssembly模块,并从中获得性能改进。

延伸阅读Shopify 开发团队放弃 Ruby,改用 Node 重写 CLI 工具

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/262643/shopify-ruvy

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。