Web アプリ開発で学ぶ Rust 言語入門
ウェブアプリカイハツデマナブラストゲンゴニュウモン
- 著者:
- 佐藤昭文(サトウアキフミ)
- 出版社:
- 秀和システム
- 出版日:
- 2022年09月30日頃
- ISBN:
- 9784798067315
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
本書は Web 開発に特化した「Rust×Web 開発」の入門書です。Rust の基礎文法から Web アプリの開発までを網羅しています。チュートリアル形式なので段階的に学習が進められます。また、解説するサンプルは、Web 開発ならよく知っている題材を教材としました。そのため、Rust による Web 開発の理解を深めることができます。
Rust はフロントエンドのエコシステムや Microsoft/Google/AWS でも採用されるなど、近年高い注目を集めています。Rust は安全性・並行性・速度にフォーカスしながらも、非常に優れた開発者体験も提供してくれます。一方でシステムプログラミング言語である Rust は、多くの Web 開発者にとって学習の敷居が高いと考えられることも事実です。本書は Rust による Web アプリ開発を通じて、Web 開発者の Rust の学習の入口となることを目指した本です。
第 1 章 Rust と Web 開発
第 2 章 Rust 基礎
第 3 章 axum を使って http リクエストを処理する
第 4 章 sqlx を使って CRUD を実装する
第 5 章 Todo アプリの体裁を整える
第 6 章 Todo にラベルをつける
第 1 章 Rust と Web 開発
第 2 章 Rust 基礎
第 3 章 axum を使って http リクエストを処理する
第 4 章 sqlx を使って CRUD を実装する
第 5 章 Todo アプリの体裁を整える
第 6 章 Todo にラベルをつける
技書の森解説
『Web アプリ開発で学ぶ Rust 言語入門』 (佐藤 昭文 著、秀和システム、2022 年 9 月発売) は、Web 開発の経験がある人を対象に、Rust の基礎文法から Web アプリケーションの開発までをチュートリアル形式で学ぶ入門書です。版元は本書を Web に特化した Rust の教科書と位置づけ、題材には Web 開発者になじみのある Todo アプリを使います。バックエンドは axum と sqlx で組み、画面は React で作るため、API サーバーからブラウザーの画面までを 1 冊の中でつないで動かせる構成です。サンプルコードは GitHub からダウンロードできます。
全 6 章の構成、Rust 基礎から axum の Todo API へ
第 1 章「Rust と Web 開発」で開発環境とエディターを準備し、第 2 章「Rust 基礎」で変数とデータ型、関数、制御構造、所有権、構造体とトレイト、async/await、クレートとモジュール、テストを順に押さえます。第 2 章の終わりには、エラーを扱いやすくする anyhow と thiserror、JSON を扱う Serde という、実装で頻繁に使うライブラリの節も置かれています。第 3 章「axum を使って http リクエストを処理する」では、Todo アプリの API を題材に、ロギング、POST リクエストと JSON レスポンス、テスト、メモリへの保存、バリデーションまでを段階的に組み立てます。第 4 章「sqlx を使って CRUD を実装する」は、Docker で PostgreSQL の環境を作るところから始まり、sqlx によるマイグレーション、リポジトリの非同期対応、Todo の CRUD とそのテストへ進みます。
所有権と非同期処理を Web の文脈で学ぶ意味
Rust はガベージコレクションを持たず、所有権と借用 の規則によってメモリ安全性をコンパイル時に確かめる言語です。JavaScript や Python のようにランタイムがメモリを管理する言語から移ってくると、最初の壁はアルゴリズムではなくコンパイラーが指摘する借用の誤りになりがちです。さらに Web サーバーは多数のリクエストを同時に待つため、Rust では async/await による 非同期プログラミング が実装の土台になります。axum は tokio のプロジェクトが開発する Web フレームワークで、sqlx は非同期に動く SQL ライブラリです。言語の規則を単独の例題で覚えるより、REST API のハンドラーやデータベースのリポジトリという具体的な置き場所の中で使うほうが、なぜその規則が必要なのかを実感しやすくなります。
React の画面とラベル機能まで進む第 5 章と第 6 章
第 5 章「Todo アプリの体裁を整える」は、フロントエンド開発の基礎と技術選定、要件整理から入り、Vite で React の開発環境を作り、MUI を使って Todo アプリの画面を実装したうえで、API を通じた Todo の保存、取得、更新までをつなぎます。第 6 章「Todo にラベルをつける」では、ラベルの CRUD とデータベースの設計、Todo とラベルを結び付けるリポジトリの修正、サイドナビゲーションやフォームでのラベル選択を加え、さらなる機能拡張の節で締めくくります。機能を 1 つ足すときに、テーブル、API のハンドラー、画面の 3 か所をどう連動させるかを通しで追える点は、言語仕様を主題にした文法書には無い効き目です。
版元が想定する読者は Web 開発の経験がある人です。HTTP のリクエストとレスポンス、JSON、データベースの CRUD といった語彙をすでに持っていれば、Rust に固有の考え方に注意を集中できます。第 5 章では React と Vite を使うため、JavaScript でのフロントエンド開発に触れたことがあると読み進めやすく、目次にはフロントエンド開発に不安がある読者に向けた節も用意されています。反対に、Rust の言語仕様を網羅的に学びたい人や、組み込み、システムプログラミングを目的とする人には、言語そのものを主題にした本のほうが合います。本書の Rust の基礎は第 2 章にまとめられ、第 3 章以降は Web アプリの実装が中心です。また axum と sqlx は版ごとに API が変わることがあるクレートなので、サンプルを動かすときはサンプルコードが指定する版にそろえると手戻りが少なくなります。
Rust を Web サービスの開発で使ってみたいものの、文法を覚えた先で何を作ればよいか分からない人や、普段の Web 開発の知識を足場にして Rust へ入りたい人にとって、Todo アプリ 1 本を完成させる過程で Rust の要所を一通り踏める本書は、最初の 1 冊として選ぶ価値があります。
言及した記事 (10 件)
「Webアプリ開発で学ぶ Rust言語入門」完走した感想
♡ 22rust今年やってよかった輪読会の本と進め方
♡ 14技術書, 輪読会Chatworkのサマーインターン2023に参加しました (前編)
♡ 2Chatwork, インターン, 就活100日後にRustをちょっと知ってる人になる: [Day 96]書籍: Webアプリ開発で学ぶRust言語入門 その6
♡ 2rust100日後にRustをちょっと知ってる人になる: [Day 95]書籍: Webアプリ開発で学ぶRust言語入門 その5
♡ 2rust100日後にRustをちょっと知ってる人になる: [Day 91]書籍: Webアプリ開発で学ぶRust言語入門 その1
♡ 2rust100日後にRustをちょっと知ってる人になる: [Day 94]書籍: Webアプリ開発で学ぶRust言語入門 その4
♡ 1rust100日後にRustをちょっと知ってる人になる: [Day 92]書籍: Webアプリ開発で学ぶRust言語入門 その2
♡ 1rust100日後にRustをちょっと知ってる人になる: [Day 97]書籍: Webアプリ開発で学ぶRust言語入門 その7
♡ 0rust100日後にRustをちょっと知ってる人になる: [Day 93]書籍: Webアプリ開発で学ぶRust言語入門 その3
♡ 0rust
この本は技書デッキのカードです (攻撃 14 / 備え 2) 図鑑でこの本を見る
この本に興味がある方におすすめ
関連する本
関連記事
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。
JavaScript / TypeScript 本ガイド - 入門から型で守る実務コードまで
JavaScript と TypeScript を 1 本の学習ルートとして捉えた技術書の選び方。JavaScript の入門書、言語の背骨を通す体系書、TypeScript の型システムを設計の武器にする本、React/Next.js の実践書まで 2026 年 8 月時点の定番で案内します。
Web 開発本ガイド - フロントエンドからバックエンドまで
Web 開発の全体像を学べる技術書の選び方と学習マップを紹介。フレームワーク本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
関連用語
PHP
Web 開発で広く使われるサーバーサイド言語。動的な Web ページ生成を得意とする
Web アプリケーション
ブラウザーを通じて利用するアプリケーション。インストール不要で幅広い端末で動く
iOS
Apple の iPhone / iPad 向けモバイル OS。ハードとソフトの統合と審査の厳格さが特徴
Android
Google 主導で開発されるモバイル OS。世界で最も多く使われるスマートフォン基盤
Flutter
1 つのコードで iOS / Android 両対応のアプリを作れる Google 製フレームワーク
Django
Python 製のフルスタック Web フレームワーク。必要な機能を一式備え高速開発を支える