Leptos - Rustで構築するリアクティブなWebアプリ

2026.07.11

公式ドキュメント

Leptosとは

LeptosはRustでWeb UIとサーバー処理を構築するフレームワークです。Signalを使った細粒度リアクティビティを備え、クライアントサイドレンダリング、サーバーサイドレンダリング、Hydrationに対応しています。

「Rustだから常に高速」とは限りません。Wasmの読み込み、サーバー処理、通信、DOM更新を含め、対象アプリで測定する必要があります。

Signalの基本

use leptos::prelude::*;

#[component]
fn Counter() -> impl IntoView {
    let (count, set_count) = signal(0);

    view! {
        <button on:click=move |_| set_count.update(|n| *n += 1)>
            "Count: " {count}
        </button>
    }
}

Signalを参照した表示は、値の変更に応じて更新されます。派生値にはMemo、副作用にはEffect、非同期データにはResourceを利用できます。

フルスタック機能

LeptosではServer Functionsを使い、サーバー上だけで実行する処理を定義できます。SSRではサーバーがHTMLを生成し、必要に応じてブラウザ側のWasmが操作を引き継ぎます。Axumなどとの統合方法は公式ガイドで案内されています。

採用時の注意

  • Rust、Wasm、ブラウザAPIの知識が必要になる
  • CSR、SSR、Hydrationで実行環境が異なる
  • crateのバージョンをそろえ、移行ガイドを確認する
  • Rustだけで完結しない外部JavaScript連携も事前に試す

Leptosは1.0以前の変更を含み得るため、記事のコードをそのまま固定せず、利用時点の公式BookとAPIドキュメントを確認してください。

参照

← 一覧に戻る
PR
PR
PR
PR