CheerpJを使ってScalaをWebブラウザで動かす

https://github.com/xuwei-k/scalafix-web-example/commit/6f2cc0d3e9e4d00b8f9ae9cce07602c533ca036d

https://xuwei-k.github.io/scalafix-web-example/

なんか作ったので貼っておきます。scala-jsとは全く別の技術で、ブラウザでjarをそのまま読み込んで、JVMエミュレートするらしいです。すごい。

自分が作ったこれは、今後どの程度しっかりメンテするのか?は未定。

まだ成果物しか置いてなくて、ビルドに使ったソースを置いてないですが・・・。

cheerpj.com

以前作って今もすごく活用しているこれ

https://xuwei-k.github.io/scalameta-ast/

を中途半端に流用したのと、まだ最低限動かしただけなので、余計なコードや微妙なコードが大量にあると思います。(そもそもフロントエンドが得意ではないし)

JVMそのものをWASMで実装して、なんとなく動くのはすごいですね。 まぁこれを実用で使いたいか?というと、ライセンスの問題やJava 8限定だったり、その他にも色々とアレなので、この程度で遊ぶくらいでちょうどいいかもしれませんが。

tweetもしたけど、本来はScala compilerそのものが動けばなんでも出来て夢が広がって最高なんですが、色々試したけど動きませんでした(詳細原因不明)

動的にcompileやruleのloadは出来ないので(ユーザーにjarをuploadさせるのは不可能ではないかもしれないが)、事前に用意したscalafixのruleしか動かせなくて、その場でrule書いて動かすことはできません。