Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby de Wasm
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
wtnabe
August 24, 2024
Programming
94
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ruby de Wasm
Kanazawa.rb meetup #144 のLT大会で発表した Ruby の Wasm 対応の概要、できること、個人的に期待していることの資料
wtnabe
August 24, 2024
More Decks by wtnabe
See All by wtnabe
Rubyでもモノリポしたい - 調査、おわわり編 -
wtnabe
0
62
Ruby de Railway Oriented Programming
wtnabe
0
110
Bindanのススメ
wtnabe
0
65
そのオブジェクト、何を保証してくれますか? - GuideRailのススメ -
wtnabe
0
78
Effective Jekyll
wtnabe
0
99
5 min Jekyll/Liquid Plugin cooking
wtnabe
0
68
Cloud Native Buildpacksって結局どうなの?
wtnabe
0
82
Decoupled System with Turbo Frame
wtnabe
1
180
join-kanazawarb-or-7years-passed-since-it-was-borned
wtnabe
0
850
Other Decks in Programming
See All in Programming
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.7k
プロポーザルを書いてもらう
pvcresin
0
280
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
380
仕様駆動開発の消費期限
watany
15
7k
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
120
今さら聞けない .NET CLI
htkym
0
180
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
370
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
860
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
470
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
540
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
530
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1033
470k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
4 Signs Your Business is Dying
shpigford
187
22k
The browser strikes back
jonoalderson
0
1.5k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
440
How GitHub (no longer) Works
holman
316
150k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
470
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
460
Leo the Paperboy
mayatellez
8
2.1k
Technical Leadership for Architectural Decision Making
baasie
3
470
Transcript
Ruby de Wasm Kanazawa.rb meetup #144 2024-08-24 (Sat) at ITBP武蔵
@wtnabe
Ruby 3.2からWASM標準対応 って知ってた? Ruby 3.2.0 Released GitHub - ruby/ruby.wasm: ruby.wasm
is a collection of WebAssembly ports of the CRuby.
TryRuby playground ブラウザでRubyが動くやつ Opal と Wasm の Ruby が動く あの_Whyたんが起源のサイト
ruby.wasmの特徴 RubyでWasmプログラムを書ける RubyがWasmプログラムとして動く RubyがWASI環境で動く RubyがJavaScript環境で動く
ブラウザでただ動かす場合 npmからwasm版rubyをロードすればおk <html> <script src="https://cdn.jsdelivr.net/npm/@ruby/
[email protected]
.. <script type="text/ruby"> require "js" puts
RUBY_VERSION # (Printed to the Web browser console) JS.global[:document].write "Hello, world!" </script> </html>
めっちゃ簡単
でも… JSで書けばよくない?
じゃあ何が嬉しいのか?
ruby.wasmの特長 RubyでWasmプログラムを書ける RubyがWasmプログラムとして動く RubyがWASI環境で動く RubyがJavaScript環境で動く
Wasm/WASIについて WasmはVMのバイナリフォーマット WASIはWasmアプリケーションのAPI ( ABI )
RubyそのものがWasm/WASI対応する ということは コードは何も変えずに自分の書いたRubyコードがWASI環境で動く Ruby本体とスクリプトを一体にしてportableに! コンテナ(dockerとか)のWASI対応も進んでいる CI/CDでもいきなり動く可能性
うまい話ばかりではない (当然)既存のコードが全部そのまま動くわけではない Wasmからネイティブに変換が走って起動が遅くなるケースも 特にRubyの場合、Rubyが起動してアプリが動作可能な状態になる までのスピンアップが重い(その前の変換が走るとさらに重い)
最近のWasmのトピック より高速なRubyのWebAssembly実装「Ruvy」 、Shopifyがオープン ソースで公開。Ruby仮想マシンとRubyアプリを組み合わせてビル ド - Publickey Google、Google Sheetsの計算エンジンをWebAssemblyに最適化 し、2倍の性能を実現したと発表
- Publickey Wasm版PostgreSQLに生成AIを組み合わせた「Postgres.new」無料 公開。自然言語でクエリ、エンベディングの作成、CSVからテーブ ル自動生成など - Publickey
Rubyに限らず Wasmで何ができるか、という動きは とてもアクティブで面白い。
個人的に期待していること JSON, YAML, Date, Timeなどが扱いやすい高級sh scriptとしての RubyのコードをWasm moduleとして動かしたい jqとかyqとかムツカシイ WASIネイティブコンテナサービスで動くならCI/CDでちょっとし
た加工のためにDockerfileやawkで工夫したりしなくて済む Linuxまるごとコンテナじゃないので準備もpullも動作も軽い
結局WASIと ruby.wasmの進歩任せになるのでは? WASI/Proposals.md at main · WebAssembly/WASI RubyGems on ruby.wasm
- Speaker Deck
ぐぬぬ
参考 Wasmで少しだけ手軽にRubyとRubyスクリプトを持ち運ぶ (2024- 05-25) | あーありがち