序文

Webアプリケーションの高速化と低消費電力化を限界まで追求しつつも、メモリ安全性を確保したいとお考えではないでしょうか。Rustは、ガベージコレクションを必要とせず、C言語と同様のエネルギー消費量でもメモリセーフを実現します。つまり、高性能で安全なアプリケーションを比較的簡単に作成することができるのです。

本書では、Rustで構築された高度なWebアプリケーションをディストロレスなDockerでパッケージ化し、作成した自動ビルド・デプロイメント・パイプを使ってAWS上に50MB程度のサーバイメージを展開するまでのWeb開発の各段階を解説します。

従来の動的プログラミング言語から移行する際によくある落とし穴を回避できるように、Rustでのプログラミングの紹介から始めます。本書では、複数のページやモジュールにまたがるプロジェクトのために、Rustのコードをどのように構成すればよいかを紹介します。次に、Actix Webフレームワークを探求し、基本的なWebサーバーを立ち上げて実行できるようにします。進むにつれて、JSONリクエストを処理し、HTML、CSS、JavaScriptでサーバーからのデータを表示する方法を学び、さらに私たちのデータのための基本的なReactアプリケーションを構築することができるようになります。また、Rustでデータを永続化し、RESTfulサービスを作成する方法を学び、そこでログインしてユーザーを認証し、フロントエンドでデータをキャッシュします。その後、AWS上の2つのEC2インスタンス上でアプリの自動ビルドとデプロイメントプロセスを構築し、Terraformを使用して構築するこれらのEC2インスタンス上で登録ドメインからアプリケーションへのHTTPSトラフィックをロードバランスさせます。また、Terraformでセキュリティグループを設定することで、EC2インスタンスへのトラフィックを直接ロックダウンすることになります。その後、ディストリビューションレスなRustイメージを作成するためのマルチレイヤービルドを学びます。最後に、非同期Rust、Tokio、Hyper、TCPフレーミングなど、高度なWebの概念を学びます。これらのツールを使って、アクターモデルを実装し、複雑な非同期リアルタイムイベント処理システムを高度に実装できるようにします。最後に、Redis上に独自のキューイング機構を構築し、Rustで自作したサーバとワーカーノードがキュー上のタスクを受け取り、そのタスクを処理することで本書は終了します。