免费注册!6月19-20日,「亚马逊云科技中国峰会」重磅来袭! 了解详情
写点什么

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:074266

评论

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

万界星空科技MES系统在智能制造中的应用

万界星空科技

智能制造 mes 万界星空科技mes 制造业工厂

夜莺监控的机器支持挂载到多个业务组了

巴辉特

监控系统 运维监控 IT监控 开源监控

电商数据化运营:阿里巴巴商品详情API返回值的实际应用

技术冰糖葫芦

API 接口 API 文档 API 测试 pinduoduo API

NL2SQL之DB-GPT-Hub<详解篇>:text2sql任务的微调框架和基准对比

汀丶人工智能

NL2SQL

2024-10-08:用go语言,给定一个字符串 word 和一个整数 k,判断是否可以通过删除最少数量的字符使得该字符串成为 k 特殊字符串。 其中,k 特殊字符串满足字符串中任意两个字符的出现频率

福大大架构师每日一题

福大大架构师每日一题

35+IT技术同学的未来职场选择

老张

认知提升 规划 职业生涯 职场发展

文盘rust--使用 Rust 构建RAG

京东科技开发者

在C#中使用适配器Adapter模式和扩展方法解决面向对象设计问题

不在线第一只蜗牛

C# .net

软件测试学习笔记丨allure学习指南

测试人

软件测试

规模之大刷新世界纪录,Cloudflare成功抵御3.8Tbps的DDoS攻击

网络安全服务

udp 端口 web服务器 Cloudflare DDoS 攻击

淘宝商品详情页接口_X-ISGN和WUA算法

tbapi

淘宝商品详情数据接口 淘宝API接口

1688跨境代采业务用到的API接口及其使用示例

tbapi

1688代采系统 1688代采接口 1688跨境

荣誉|奇点云入选“2024年成长型浙江数商”名单

奇点云

人工智能 互联网 软件

SD-WAN怎样满足企业网络的需求

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 SDWAN SD-WAN国际专线

京东金融APP的鸿蒙之旅:技术、挑战与实践

京东科技开发者

揭秘动态化跨端框架在鸿蒙系统下的高性能解决方案

京东科技开发者

RAG系统评测实践详细版:Coze及相关产品评测对比,以及下一代RAG技术

汀丶人工智能

rag

DApp智能合约开发:交易平台定制化与系统成品开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

打造一站式应用内支付体验,助力开发者商业增长

HarmonyOS SDK

HarmonyOS

新一轮 Web3 游戏季,Final Glory成捕获全新市场红利的入口

加密眼界

F5携手NetApp加速并简化大语言模型AI部署

科技热闻

京东商品详情API接口(JD.item_get)并发策略:提升数据抓取效率

tbapi

京东API接口 京东商品详情接口 京东商品数据接口

人工智能的未来

天津汇柏科技有限公司

AI 人工智能

揭秘:一键获取京东商品详情的API之旅

代码忍者

API 测试 pinduoduo API

亚马逊国际商品详情API返回值:电商精准营销的关键

技术冰糖葫芦

API Gateway API 接口 API 文档 API 测试 pinduoduo API

好用的文件对比工具:Beyond Compare 4 (Win&Mac) 中文版

你的猪会飞吗

Beyond Compare 4 for Mac Beyond Compare 4 下载

构建万物智联生态,“人才”与“资金”不能少

极客天地

技术实现方案:获取淘宝商品详情API返回值

代码忍者

API 测试 pinduoduo API

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