週刊とっしーぱんち

昭和生まれのブロガーが綴る、全力脱力系雑記帳

RubyとWebAssemblyを調べ、そして打ち砕かれた話

https://cdn-ak.f.st-hatena.com/images/fotolife/o/osio-toshimasa/20220306/20220306114953.png

おはよーございます。

GWもちょうど真ん中で折り返しぐらいでしょうか。このブログを読まれている方の中にはお仕事や学校の方もいらっしゃると思うので恐縮なんですが、僕は数年ぶりくらいに10連休という長期のお休みをいただきまして、のんびり楽しく休暇を満喫しております。

さて、WebAssemblyバイナリを使って自分なりに実験してみたのですが、自分が用意したwasmバイナリをWebブラウザで動かすことができませんでした。初期化するところでエラーが出てしまって解消せず、原因もよくわからなくてお手上げでございます。こればっかりは自分の力量が不足しております。

Webブラウザで動かしてみる、という実験は失敗に終わったのですが、OS上でwasmバイナリを実行するということはできました。以下のリンクにあるQuickSampleというものを参考にやってみたら無事動いて感動です😭

github.com

1個つまずいたところがあって、wasi-vfsというものを実行する際に、僕のMacBookではなぜか動かずでした。こちらも僕の力量が不足していて解決には至らずだったので、Macのほうは放置。レンタルサーバ上で環境を構築しなおして動かすことができました。未来の僕が何か解決してくれることを期待して、実験環境をメモしておきます。

# ダメだった・・MacBookPro 2020
% sw_vers
ProductName:    macOS
ProductVersion: 12.2.1
BuildVersion:   21D62

# これを実行するとエラーが出ちゃう・・
% wasi-vfs pack ruby.wasm --mapdir /src::./src --mapdir /usr::./head-wasm32-unknown-wasi-full/usr/ -o my-ruby-app.wasm 
zsh: exec format error: wasi-vfs

# 動いた! 
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

こういう失敗の記録もある種のタイムカプセル的な役割になったらいいなと期待して、記録残しておくのもいいのかなと自分を説得することにします 笑

RubyとWebAssemblyの組み合わせそのものにはとても魅力を感じていて、僕のような一般人でも気軽に動かせる日が来たらかなり盛り上がるんじゃないかなと、引き続き期待感を持って情報を追っていきたいです。

ところで、RubyのWeb活用というところは引き続き興味を持っています。Webといえば、RubyOnRailsを使うのが定番のようなのですが、僕がひねくれているせいか(?)あまり食指が動かず。


ブラウザ上で動かすだけにしたいので、以前JavaScriptのライブラリを探しているときに調べた、OpalというGemを使ってRubyのコードをJavaScriptに変換して動かす、というのがとっかかりとしては始めやすいのかなあと思ったりしました。以前調べた時は、素でJavaScript書く方が手っ取り早いという結論だったのですが、今は自分が書いたRubyのコードを増やしていきたいという、別の目的が生まれているのでちょうどいい機会なのかもしれないです。

なので、次回はOpalをインストールして使ってみようかなと思います。

余談ですが、はてなブログ書いているときにこういうコードブロックを書くときついつい何が対応しているか忘れがちなので、以下にリンクを貼ります。

help.hatenablog.com

WebAssemblyについては、こちらの記事でも紹介しています。

osio-toshimasa.hatenablog.com

では、また!