RubyWasm:在Web上运行Ruby的革命性工具

RubyWasm:在Web上运行Ruby的革命性工具

ruby.wasmruby.wasm is a collection of WebAssembly ports of the CRuby.项目地址:https://gitcode.com/gh_mirrors/ru/ruby.wasm

项目介绍

RubyWasm 是一个将 CRuby 移植到 WebAssembly 的项目,它使得 Ruby 应用程序能够在浏览器、支持 WASI(WebAssembly System Interface)的运行时以及边缘计算平台上运行。通过这个项目,开发者能够利用熟悉的 Ruby 语言进行前端开发或构建轻量级、跨平台的应用。RubyWasm 提供了预编译的二进制文件,简化了部署流程,让 Ruby 在非传统环境下的执行成为可能。

项目快速启动

在浏览器中体验 Ruby

您无需安装任何本地软件,即可在线尝试 RubyWasm。只需创建一个 HTML 文件,引入特定的 JavaScript 脚本,然后嵌入您的 Ruby 代码。以下是一个简单的示例:

<!DOCTYPE html>
<html>
    <head>
        <script src="https://cdn.jsdelivr.net/npm/@ruby/3.3-wasm-wasi@2.6.2/dist/browser/script.iife.js"></script>
    </head>
    <body>
        <script type="text/ruby">
            require "js"
            puts RUBY_VERSION       // 这将在浏览器控制台打印出 Ruby 版本
            JS.global[:document].write("Hello world ")
        </script>
    </body>
</html>

将以上内容保存为 index.html,并在浏览器打开以立即看到效果。

打包并运行本地 Ruby 应用为 WASI 应用

首先,确保已安装必要的工具,如 wasmtimeruby_wasm gem。之后,按以下步骤操作:

  1. 下载 Ruby 的 WebAssembly 版本。
  2. 准备您的 Ruby 应用代码。
  3. 使用 rbwasm pack 命令打包成 .wasm 文件。

例如,对于一个名为 my_app.rb 的简单应用,操作如下:

gem install ruby_wasm
curl -LO https://github.com/ruby/ruby.wasm/releases/latest/download/ruby-3.3-wasm32-unknown-wasip1-full.tar.gz
tar xfz ruby-3.3-wasm32-unknown-wasip1-full.tar.gz
mv ruby-3.3-wasm32-unknown-wasip1-full/usr/local/bin/ruby ruby_wasm
mkdir src && echo "puts 'Hello World!'" > src/my_app.rb
rbwasm pack ruby_wasm --dir /src::/src --dir /ruby-3.3-wasm32-unknown-wasip1-full/usr::/usr -o my-ruby-app.wasm
wasmtime my-ruby-app.wasm src/my_app.rb

应用案例和最佳实践

RubyWasm 可用于创建在浏览器端运行的小型服务、互动脚本或是作为微前端的一部分。例如,构建动态网页元素、实现客户端逻辑、或者是为用户提供定制化的脚本环境。最佳实践中,应关注代码效率,避免大量依赖C扩展的gem,因为这些在当前版本可能不兼容。

典型生态项目

  • Ruvy Runtime:Shopify 推出的新项目,展示了Ruby在WebAssembly中的进一步应用。
  • Artichoke:使用Rust编写的Ruby实现,可以编译为WebAssembly,提供了另一种执行Ruby代码的方式。
  • mruby:一个轻量级的Ruby实现,已被编译为WebAssembly,适合资源受限的环境。
  • Prismrun.rb(尽管可能不再活跃)展示了如何在浏览器环境中运行Ruby脚本,提供灵感给未来的技术探索。

此文档旨在提供对 RubyWasm 开源项目的简要指南,帮助开发者快速上手并理解其在现代开发场景中的潜力。随着技术的进步,RubyWasm 和相关生态系统将持续发展,为Ruby编程开辟新的可能性。

ruby.wasmruby.wasm is a collection of WebAssembly ports of the CRuby.项目地址:https://gitcode.com/gh_mirrors/ru/ruby.wasm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缪阔孝Ruler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值