Rubocopをruby.wasmで動かすやつを作った

2023-01-03
※ 本サイトにはアフィリエイト広告が含まれます

自分で設定した冬休みの宿題(?)の1つ「ruby.wasmで有用っぽいもの作ってみる」が一応達成できた。

https://github.com/tnantoka/rubocop-on-wasm

以前 のようにさっくりできるかと思ってたんだけど、
↓の辺りで思ったより手間取った。

  • irb.wasmの手順だと最新のrubyでこける
    → 11末のコミットを使えばいけた
    → ruby.wasmのreleaseを使ってもいけたので最終的にはそうした
    https://github.com/tnantoka/irb.wasm/pull/1
  • wasmがでかすぎてCloudflare Pagesに置けない
    → 転送量無制限ということでGitLab Pagesに置かせてもらった
    → 海を越える数十MBの転送待ちに耐えきれなかったので、最終的に国内レンサバに置いた(さくら)
  • RubyGemsへのDoS攻撃になっちゃう問題
    → ページを開くたびにrubocopをインストールするとRubyGemsにいっぱいリクエストが飛ぶ
    → 自サーバーでキャッシュしたファイルを使うように
    → 通信の数を減らすため最終的にはwasmの中に組み込むことにした

Pure Rubyで動いてるものなら hoge-on-wasm をいろいろ作れそう。



広告