A passion project by Ben Taylor (@taybenlor@aus.social). The source is available on GitHub. Shoot me an email if you want to chat about Runno (runno@taybenlor.com).
はじめに ruby.wasmバイナリに3rd party製のgem組み込んだ際のトラブルシュートのログを書き残しておきます。 2024年6月現在のHACKです。今後の開発が進めば不要になると想定しています。 こちらのスライドの補足記事です。 speakerdeck.com 前提 下記PRにより、Bundlerと ruby_wasm gemを利用して独自のruby.wasmバイナリが作成できるようになっています。 github.com $ bundle init Writing new Gemfile to /tmp/tmp.ZeVCP05HyB/Gemfile $ bundle add ruby_wasm $ bundle add rainbow $ bundle exec rbwasm build -o ruby.wasm (snip) INFO: Packaging gem: rain
やりたいことRuby の環境を作らずに基本的なスクリプトを動作させたい 非エンジニアの環境で 1 ファイルでコマンドを動作させたいというほどの環境の縛りはない簡単に Docker 環境で基本的なコードが動けばよい、程度今回できたことWasm 版 Ruby を Wasm Runtime 上で動かす基本的な Ruby コードと Wasm 版 Ruby を一つの Wasm module にパッケージし、それを Wasm Runtime 上で動かす さらに Wasm module を compile しておいて起動を速くする(Rubyについてはまだまだ課題は多いが)Wasm を使うことで直接実行バイナリを生成できない言語でも JVM + .war 程度の使い勝手である程度のことができることが分かった実験に使ったのは macOS 13.6.7 ( arm64 darwin 22 )Ruby 3.2.
こんにちは、 @t0yohei です。 ruby.wasm は、Ruby のコードを Wasm に変換しブラウザー上で実行できるようにする技術です。 今回は、この ruby.wasm を使用してちょっとした web アプリを作成したので、そのことについて記載してみようと思います。 ※ この記事は、RubyKaigi 2024 のクラウドワークス社ブースにて展示するクイズアプリの解説記事です。 目次 目次 作ったもの クイズアプリの解説 大まかな仕組み 使わせてもらったライブラリ i18n 対応 問題について デプロイ先 難しかったこと タイマーの部分の実装 Ruby のコード規約、JavaScript のコード規約の使い分け サンプルコード探し 感想 作ったもの Ruby に関するクイズを出題して、それに答えてもらうクイズアプリを作成しました。 RubyKaigi でのクラウドワークス社ブ
より高速なRubyのWebAssembly実装「Ruvy」、Shopifyがオープンソースで公開。Ruby仮想マシンとRubyアプリを組み合わせてビルド 昨年(2023年)12月にリリースされた「Ruby 3.2」では、WebAssemblyによって実装されたRubyランタイム「Ruby.wasm」が正式版となりました。これによりWebブラウザや単体のWebAssemblyランタイムの上でRubyランタイムを実行し、Rubyプログラムを実行できるようになりました。 このRuby.wasmをベースに、さらに高速なRubyのWebAssembly実装となる「Ruvy」が、Shopifyからオープンソースとして公開されました。 Calling all #Ruby developers! Explore a new tool for leveraging Ruby to create #WebAs
作ったもの モチベーション 使った技術 感想 作ったもの https://sue445.github.io/annict-vod-search/ github.com モチベーション 最近縁があって Annict の編集者*1 になって、気がついた時に各アニメの配信サイトの情報を登録しています。 その時にいちいち複数の配信サイトでアニメのタイトルを検索するのが大変なので一箇所で検索できるようにしたくて作りました。(製作時間は2〜3時間) 使った技術 いつもだとこの手の雑なページはVue.jsを使うことが多いのですが、今回は面白全部 *2でruby.wasmを使ってみました。 ruby.wasmで仮想DOMを扱うためにruby-wasm-vdomを利用しています。 ruby-wasm-vdomについては下記を参照。 github.com qiita.com 感想 使い慣れたRubyで書けるの
オープンソースのWebAssemblyサーバレス基盤「Wasm Workers Server 1.0」正式リリース。RubyとPythonのWASMランタイムに対応し、Ruby/Pythonでの記述が可能に VMware Wasm Labsは、Node.jsやDenoのようにWebAssemblyやJavaScriptで記述したWorkerをサーバサイドでイベントドリブンに実行できる「Wasm Workers Server」のバージョン1.0をリリースしました。 Wasm Workers Server v1.0.0 is out. We are happy to announce the support for Python, Ruby and more languages in the future! From now on, you can create worker-based se
Ruby開発チームは、2022年12月25日にRuby 3.2.0の正式リリースを発表しました。Rubyは毎年12月25日に新バージョンをリリースすることが恒例となっています。 WebブラウザでRubyコードをそのまま実行可能に 新バージョンであるRuby 3.2.0の最大の新機能は、WASIベースのWebAssembly版Rubyが登場したことです。 これによりWASIをサポートしたWebAssemblyの実行環境、例えばWebブラウザやNode.js、DenoなどのサーバサイドJavaScriptランタイム、Cloudflare WorkersやFastly Compute@Edgeなどのクラウドエッジ環境で、WebAssembly版のRubyを実行できるようになりました。 これらの環境でWebAssemblyの上でRubyランタイムを実行すると、Rubyで書かれたコードをそのまま走ら
Enable src attribute in script tag in browser.script.iife.js. by ledsun · Pull Request #49 · ruby/ruby.wasm · GitHub が取り込まれたので使ってみました。 <script defer src="https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@0.3.0-2022-10-01-a/dist/browser.script.iife.js"></script> <script type="text/ruby" src="main.rb"></script> つかったら、Rubyスクリプトファイルをわけたくなりました。 <script defer src="https://cdn.jsdelivr.net/npm/ruby-head-w
09/08-10に三重で開催されたRubyKaigi、09/10-12に東京で開催されたiOSDCにどちらもスピーカーとして参加してきました。 カンファレンスはしごされた方はお疲れ様でした。 RubyKaigi Keynote 初めてのRubyKaigiでの発表で、さらにキーノートで、さらにトップバッターという大変貴重な体験でした。いやー緊張した。1 当日のスライドはこちら。 Ruby 3.2でサポート予定のRubyのWebAssembly/WASI対応について話してきました。 前半でモチベーションや出来るようになったことをデモを交えつつオーディエンスと共有して、後半は実装について自分の好きなことを話す、という構成でした。 syntax_treeを使ったデモはちょっと上手くいかなかったんですが 2、 一番見せたかったIRBでSVGを表示するデモがうまくいって良かったです。IRBのデモはこち
RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応 Ruby言語のインタプリタをWebAssemblyランタイムで実行できるようにする移植作業が実現しました。WebAssembly版Rubyのバイナリファイルがプレリリース版として公開され、実際に試すことができます(ruby/ruby.wasm)。 RubyのWebAssemblyへの移植作業が始まったことは、1月に公開した記事「RubyがWebAssemblyのWASI対応へ前進。ブラウザでもサーバでもエッジでもどこでもWebAssembly版Rubyが動くように」で紹介しましたが、この移植作業が早くも完了したことが、移植を行ったkatei (Yuta Saito)氏が公開したドキュメント「An Update on WebAssembly/WASI Support in Rub
OverviewCRuby is a highly portable C application, and it runs on many platforms (You can see which platforms are tested on CI here). However the “portability” is only at source level, and the built executable is not portable across architectures and system call interfaces. This project made CRuby portable at executable file level by porting it to a standalone WebAssembly with WASI ABI. Furthermore
How I got Ruby snippets to run browser side in less than a day Over the last year I've been working on Runno, an open source library and tool for embedding code snippets that run client side in the browser. I had some time yesterday to work on Runno and decided to see if I could add another language. I'd heard on twitter that Ruby was looking into adding official WASM support, so I had a look into
はじめに 2021年1月にv1.0がリリースされたWasmerにRuby Gemが存在することに触発されて調べてみました。RubyとWebAssemblyが関わっているものについてわかる範囲でまとめ、軽くどのようなものかを書いていきます。 僕自身、業務はおろかプライベートでもWASMを書いたことはなく浅い理解しかしていないですが…… WebAssembly (WASM)とは WebAssembly は最近のウェブブラウザーで動作し、新たな機能と大幅なパフォーマンス向上を提供する新しい種類のコードです。基本的に直接記述ではなく、C、C++、Rust 等の低水準の言語にとって効果的なコンパイル対象となるように設計されています。 この機能はウェブプラットフォームにとって大きな意味を持ちます。 — ウェブ上で動作するクライアントアプリで従来は実現できなかった、ネイティブ水準の速度で複数の言語で記述
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く