Rust/AxumとSvelte/SvelteKitのモノリシックデプロイ:エレガントな解決策?

2025-05-30

この記事では、Web開発におけるSPA(シングルページアプリケーション)のデプロイに関する従来とは異なるアプローチを紹介します。それは、ビルド済みのSPAをバックエンドのバイナリファイルに直接埋め込むという方法です。この方法は、デプロイの簡素化(バイナリファイルが1つ)、コードの簡素化(CORSの考慮不要)という利点がありますが、バイナリファイルサイズとメモリ使用量の増加、開発エクスペリエンスのわずかな低下(ホットリロードなし)という欠点もあります。筆者はRust/AxumとSvelte/SvelteKitを用いてこの方法を実演し、Moonビルドツールを使ったmonorepoの設定、rust-embedライブラリを使ったフロントエンドビルド成果物の埋め込み方法を詳細に説明しています。結果として、バックエンドからデータを取得し、バックエンド内でナビゲーションを行うシンプルなSPAが実現します。

開発