普通のwebアプリケーションにwasmを活用する
普通のwebアプリケーションにwasmを活用する
ChatGPT先生の説明わかりにくい
wasmのメモリモデルは線形モデル
型がシンプル
文字列すらない
wasmが早いというイメージ
実際早い方
バイナリフォーマットなので、サイズが小さい
ブラウザにダウンロードするのでサイズ小さいのは強い
最適化が事前にできてる
実際には外部とのやり取りでオーバーヘッドある
サンドボックス化されてる
portability
hw independent
language independent
platform independent
web以外でのwasm活用
meetとかenvoy、ffmpeg
Perlとwasm
Perl in wasm
wasm in Perl
Helpfeelでのwasmの活用を考える
解答と質問が1対多の構造になってる
質問の仕方はいくつもある(例:異なる、別の……)
helpfeel記法に解決したいものがある
pythonとnodeで開発してる
helpfeel記法のパーサーをpythonで書いてる
パーサーをpythonでもnodeでも使えるものが欲しい
polyglotな環境
素直なのはAPIサーバー
サーバー作るってことはメンテしないといけない
通信のオーバーヘッドが気になる
プロセス間RPC
エラーハンドリングが難しそう
wasm
マッチしそうじゃない?
多言語にまたがって実装を共有したい欲求は普遍じゃないかな?
確かに
Rustで開発
nodeはwasm-pack
pythonからは直接
Pythonにはwasmのruntimeがない
wasm bindgen
文字列を受け取れる
選んだ時点ではwasmtimeが1.0に到達してなかったので、wasmerを選ぶ
メチャクチャプリミティブなコードしか書けない
glueコードも気合い入れて書く
Github packageでnpm packageを配布
テスト
Rustの実装はRustでテスト書く
wasmが正しいかどうか
wasm packがtestコマンド持ってる
ブラウザ指定もできる
helpfeel-parserの構造
パーサーだけじゃなく、可視化するコンポーネントなどを用意している
wasm実際どうですか?
多言語間での実装の共通化実現できそう
Rustがパーサー書くときには便利
JSは楽
Pythonは大変