Webアプリケーションを作りたい。しかもその全てをRustで開発。
そんなわがままな考えは通らないという直感が私にはあった。
Webアプリケーションには html css javascript が絶対に必須であるものだと考えるのは必然。

でも、現実はもっと素敵なものだった。
私と同じ考えをもつエンジニアたちは少なくない。ならばそのようなニーズを満たすものも存在する。


RustのWebフレームワーク達

Leptos

https://leptos.dev/

ハイブリッド性とパフォーマンス性を重視するWebフレームワーク。
2026-01-12現在、もっとも人気のあるWebフレームワークみたい。

サーバーサイドとクライアントサイドのレンダリングをシームレスに繋ぐ機能をもっている。
Signals という仕組みで変更された部分のみをピンポイントで更新する。
react の経験者ならば難なく使いこなせるだろう。

Axum というWebフレームワーク(バックエンド)との組み合わせが主流。

いつかこれを使った100%Rust製SPAを作ってみたいなぁ。

Dioxus

https://dioxuslabs.com/

Learn once, write anywhere.
Webのみならず、一度書けばデスクトップやモバイルでも同じコードで動かすことができる。

react に近いプログラミングモデル (Virtual DOM) を採用していて、馴染みやすいクロスプラットフォームアプリケーションフレームワークのようだ。

Yew

https://yew.rs/ja/

質実剛健1な歴史あるWebフレームワーク。

react のクラスコンポーネントに近い設計をしている。
Virtual DOMを使用しており、安定感がある。

Sycamore

https://sycamore.dev/


これらはどのようにして動くか?

記述するのも基本的にRustのみで、JavaScriptなどは基本的に使わない。(FFIは使う) Rust以外はあまり意識せず開発できる。
しかし、それらのフレームワークたちはRustコードを翻訳してWeb三銃士言語 + wasmに変換しているにすぎないとも言える。

私たちがやることは、 UIロジックや状態管理をすべてRustで記述すること。

Webフレームワークがやることは、JSのブリッジがwasmにある関数を呼び出し、wasmにある関数がJSのブリッジのJavaScriptにしか実行できないDOMなどのWeb APIを呼び出すこと。

web-sysというクレートを使えば、RustからはRustの関数としてJavaScriptの関数を呼び出すことができる。

これらがあるからこそ、開発者はRustしか触らずに開発できるようになっているということ。
とはいえ、Web三銃士の技術を前提知識として知っておかなければ、Webアプリケーションの開発はそもそも難しいが。
でもRustやるほどのひとはそこらへんの技術を触れるのはへでもねーよな?

Footnotes

  1. 素朴で信頼性があるってこと。