写点什么

Shopify 开源 WebAssembly 工具链 Ruvy

  • 2023-11-22
    北京
  • 本文字数:774 字

    阅读完需:约 3 分钟

大小:388.70K时长:02:12
Shopify开源WebAssembly工具链Ruvy

最近,Spotify 开源了Ruvy,一个 WebAssembly 工具链,能够将 Ruby 代码转换为 Wasm 模块。Ruvy 基于ruby.wasm, 用 Rust 实现,提升了性能并简化了 Wasm 模块的执行。


Ruvy 利用了ruby.wasm提供的 Ruby 解释器模块,并使用wasi-vfs (WASI 虚拟文件系统)将其与所有指定的 Ruby 源文件一起打包到单个模块中。wasi-vfs创建了一个虚拟文件系统并嵌入到.wasm二进制文件中,它提供了一种机制,让 Ruby 源文件对ruby.wasm可读,但不允许在 WebAssembly 运行时访问主机文件系统。


在构建 Wasm 模块时预先初始化 Ruby VM,而不是在将其加载到内存中执行时(默认使用ruby.wasm/wasi-vfs),从而提升了性能。Shopify 高级 Wasm 开发人员 Jeff Charles 解释说,这将使运行时性能提升了 20%。


此外,Charles 解释说,Ruvy 使得使用 Cranelift 编译器将 Wasm 编译成本机代码所需的时间缩短至 30%。


Ruvy 的另一个好处是,由于它将所有必需的文件打包在一起,不需要文件路径作为 WASI 参数,因而简化了执行语法。这对于各种边缘计算服务来说特别有用,因为这些服务不允许向主要端点函数提供额外的 WASI 参数。


目前,Ruvy 只提供了源代码发行版,所以你需要自行进行构建。这个过程很简单,原则上,在安装了所有必需的依赖项,包括rustupwasm32-wasicmakeRosetta 2(macOS)之后,只需运行make,然后像下面的示例一样执行 Ruvy 来从ruby_examples/hello_world.rb创建index.wasm模块:


$ cargo run --package=cli ruby_examples/hello_world.rb -o index.wasm
复制代码


如上所述,你可以使用--preload命令行标志来指定包含 Ruby 文件的目录,这些文件应该会被传给 Ruby VM。


Charles 强调,Ruvy 目前只能运行简单的 Ruby 程序。具体来说,它还不能requireRuby gem,也就是说大部分 Ruby 标准库仍然不可用。未来,他们计划支持从标准库和非本地第三方 gem 中加载代码以消除这一限制。


原文链接

https://www.infoq.com/news/2023/11/shopify-ruvy-ruby-wasm/

2023-11-22 10:074233

评论

发布
暂无评论
发现更多内容

荣获优秀共建方!开放原子开源大赛&龙蜥机密赛题决赛圆满结束

OpenAnolis小助手

操作系统 龙蜥社区 机密计算

《龙蜥理事说》第二期对话统信软件 AI 让操作系统更智能

OpenAnolis小助手

AI 操作系统 国产操作系统 龙蜥社区

基础设施SIG月度动态:社区官网上线《龙蜥理事说》专题页,内核门禁提速

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥社区SIG

张朝阳对话华为Fellow陈海波:万物智联时代,鸿蒙如何实现“换道超车”?

最新动态

南京大学×百度“星河杯”AI大模型创意校园赛正式起航

飞桨PaddlePaddle

百度 paddle BAIDU 百度飞桨 飞桨星河社区

重回铁王座!时隔5年,Quill 2.0 终于发布啦!

OpenTiny社区

前端 富文本

时之鑫门窗|为什么选购门窗时推荐用十大品牌门窗

科技热闻

Go-Zero微服务快速入门和最佳实践(一)

王中阳Go

Go golang 分布式 微服务 go-zero

好消息!职场<火焰杯>测试开发大赛开始报名啦!

测试人

软件测试 自动化测试 测试开发

4 月 30 日启动报名!2024 开源之夏&龙蜥社区赛题等你来挑战

OpenAnolis小助手

开源 操作系统 龙蜥社区 开源之夏

助力用户快速学习、使用大模型,天翼云即将上线Llama 3大模型学习机

编程猫

华为云FunctionGraph构建高可用系统的实践

华为云开发者联盟

华为云 华为云FunctionGraph 华为云开发者联盟 华为云Serverless 企业号2024年4月PK榜

浪潮信息联合龙蜥社区推出 InManageBoot:让开局交付变得如此简单!

OpenAnolis小助手

运维 操作系统 龙蜥社区 InManageBoot

Anolis OS 23.1 BETA 预览版:龙芯同源异构完成,支持更多芯片厂家

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥操作系统 Anolis OS

全球首发!龙蜥社区助力 Intel SPR 加速器上云

OpenAnolis小助手

云原生 操作系统 envoy 龙蜥社区 Intel SPR

“专业敏捷教练课程” 7月6-7日 · CSP-SM认证上海线下面授周末班【晋升高阶享多重福利】

ShineScrum

低代码+定制物资管理:创新解决方案探析

天津汇柏科技有限公司

低代码 软件开发定制

大模型微调提升AI应用性能

百度开发者中心

人工智能 大模型

软件测试如何选择最佳的自动化测试定位策略?

测试人

软件测试

安全厂商长擎软件加入龙蜥社区,共建领先的 OS 基础设施

OpenAnolis小助手

操作系统 国产操作系统 龙蜥社区生态伙伴

合合信息Embedding模型获得MTEB中文榜单第一

陈橘又青

合合信息

Shopify开源WebAssembly工具链Ruvy_编程语言_Sergio De Simone_InfoQ精选文章