Rのつく財団入り口

ITエンジニア関連の様々な話題を書いているはずのブログです。

【Rust】日本語で読めるRust言語の商業本まとめ(2023年4月)【おすすめ】

機運高まるRust言語に入門しよう

 Windows自体の開発に使われていることも判明、次期Android OSの開発言語にも採用、ついにLinuxでも採用される(かも)とのことで最近機運が高まっているMozilla発のRust言語。
 このエントリでは商業本を分野別に、その中では発行日が新しい順にまとめてみました。第2版がある本の初版含め合計約25冊。そのうち2022年に出たのが計9冊、【追記】2023年に2冊と、数えてみると既にけっこうな冊数になっています。Go言語の日本語の本が確か合計15冊前後ぐらいだったので負けずに盛り上がっていますね。

Rust言語のおすすめ本まとめ - Become Rustacean!

補足的にRust本の傾向

Rust言語関連の情報のモチーフにはよく以下が出てきます。

  • 歯車:骨太な公式ロゴが「R」を囲む歯車。こちらの歯車は自転車のチェーンリングで、開発チームに自転車好きの方が多いため。そこから派生して本の表紙に歯車が出てくることが多い。
  • カニ:非公式のゆるかわマスコットがカニさんのフェリス(Ferris)。鉄関連を表す形容詞ferrousより。オライリーの“蟹本”の表紙がカニ、『プログラミング言語Rust 公式ガイド』の表紙がこのフェリス。
  • 自転車:上のように開発チームに自転車好きが多いため。有名な『実践Rust入門 [言語仕様から開発手法まで]』が通称“自転車本”。

 下にAmazonからの書影が並ぶので分かるかと思いますが、このうち表紙に歯車が出てくる本が多いです。(まあ間違うことはないと思いますが...) 通称“歯車本”と言った時は、入門書の定番『実践Rustプログラミング入門』を指すのが習わしとなっています。
 また技術書にありがちな事象ですが、タイトルがお互いに似た本が多いのでこちらはご注意ください。"Rust"の前後に「入門」「基礎」「実践」「プログラミング」「言語」などのワードを当てはめるだけで本の名前が完成しちゃいます。

 なおRust自体の語源は英語の「錆び」...と思わせてさらに逸話あり。作成者のグレイドン・ホアレさんが生物学をやっていて、高い生存能力を誇る真菌のサビ菌(Rust fungus)のしぶとさに注目、こんな安全で堅牢な並列指向の言語を目指そうとした...という逸話にはへぇ~と思いました。
 さすがに錆びや菌類をビジュアルで表現するのは難しいからか、「R」のロゴが錆みたいな色で表現されることもある以外は、菌のモチーフはあまり見かけませんね。サビ菌がマスコットというのもなんか微妙な気がするので(いや、『もやしもん』みたいでアリなのか?)、マスコットはゆるかわなカニさんで正解なのではと個人的に思います。

 それではRustacean(ラステイシャン、Rustプログラマーの通り名)向けの本のリストです。

入門者向けの本

 Rust言語自体の習得難易度があるため、プログラミング初心者向けターゲットの本というのはあまり見当たらないのですが、最初に手にとるような本。ちなみに「より詳細な本」との区分けは雰囲気なので深く気にしないでください...

動かして学ぶ!Rust入門

 2023/4/24刊行、2023年に入ってから早くも2冊目が出ました! Zennで人気公開中だった「Rust 入門」を大幅加筆、物理本で464ページの本。文法を一通り押さえた後は実際のアプリ開発として単語推理ゲーム、レイトレーシングを掲載。ちょっと触ったその先で、基本からしっかり学びたい方向けの本となりそうです。著者のmebiusboxさんのZenn版のコンテンツはこちら。

zenn.dev

パーフェクトRust

 2023/2/22刊行の本。Java, C#, PHP, Ruby, Python, JavaScriptと各言語揃っているおなじみパーフェクトシリーズにも遂にRust版が出ました! 言語仕様からエラー処理、パッケージ管理、メモリ管理まで、一通り揃っているようです。Rust1.66対応。

ゼロから学ぶRust システムプログラミングの基礎から線形型システムまで (KS情報科学専門書)

 2022/12/25刊行。Rust本にしては珍しく表紙がカラフルでポップな感じになっています。目次を見ると機能を一通り説明、ページ数も288Pと他の本格書籍よりは薄め。しかし後半は正規表現エンジン、シェル、デバッガ、線形型システムを使うのではなくRustで実装していくという、システムプログラミングらしい題材を取り扱っています。

手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた

 2022/4刊行。クジラ本として知られる本。Pythonを知っている読者を想定し、各セクションで最初は簡単な所から様々なお題を用意、Pythonでこう書くところがRustだとこうなる...という対比を交えながら解説し徐々に高度な内容に進んでいく本。
 Rustの各種仕様ももちろん述べられてあり、このエントリの「より詳細な本」に上げたような高度な内容よりもライト寄りな解説で図もあって分かりやすいです。お題も約束のFizzBuzzフィボナッチ数列から迷路や電卓作成、画像や音楽処理まで多彩でテーマの選び方も秀悦、少しづつ読み進められます。PythonerやPythonistaの方に特にお勧めな一冊。

ついでに当ブログの読書記録です。

コンセプトから理解するRust

 2022/2刊行の新しめの本。歯車が多いRustの本の中では珍しく表紙は波(?)になっています。
 難しいと言われるRustの理解の鍵はそのコンセプトだ...という姿勢に立った本。アプリケーションの実装例と共に解説するのではなくRust独特の仕様、所有権、型、トレイトなどをなぜその仕様になっているのか、他の言語と比較しながら解説していきます。周辺ライブラリなどを語る実践よりも、Rustそのものの理論重視の本です。作者の方は多数のプログラム言語習得済み、AWS認定全冠にKubernetesの認定も3冠と強い!

実践Rustプログラミング入門

 2020/8, 電子書籍2020/12。通称“歯車本”。他のプログミング言語には習熟している人を対象に、文法3割、実践7割ぐらいの割合でRust言語の世界を一式解説した本。
 基本から始まってフレームワークActix-webを用いたWebアプリ開発、Web Assembly、GUIアプリ、組込み、応用的な話題...と実践寄りに一通り揃っています。Amazonの評価の☆の数が特に多い、入門書の定番です。
 作者の皆さんのブログ記事が以下。

ついでに当ブログの読書記録です。言語仕様の細かい所までは深くは説明されずに進む箇所もありましたが、実践重視なら最初の1冊でまったく問題ない感じでした。

プログラミング言語Rust入門

 2020/4刊行。表紙は帯のデザインになっています。ある程度他言語経験のある読者を対象にし、前半はRustの文法や仕様、後半はWeb APIの呼び出しやデータベースなど実践編。DBアクセスはSQLを書く方式とORMツールのdieselを使う方式の両方が解説されています。最初の1冊として標準的な構成の本です。

プログラミング言語Rust 公式ガイド

 2019/6刊行。表紙のカニさんはRust非公式(でもほぼ公式っぽい)マスコットのフェリスで、数あるRust本の中で表紙が一番かわいいです。こちらは『The Rust Programming Language』の和訳で、英語版ともどもRustプロジェクトからWeb上で公開されている公式の入門書コンテンツと中身は同一になります。内容は言語機能を一通り紹介したドキュメント。本の方は買っても買わなくても、という感じでしょうか。

より詳細な本

 素養のある方は1冊目からでも大丈夫かもしれないし2冊目の位置かもしれない、より高度な内容を深く扱った本。

Rustプログラミング完全ガイド 他言語との比較で違いが分かる! (impress top gear)

 2022/9刊行と新しめの本。原著はCarlo Milanesiさんの『Beginning Rust: Get Started with Rust 2021 Edition』の翻訳本。サンプルを交えながらRust言語の機能をがっちりと解説しています。
 目次を見るに周辺ライブラリや実際にアプリケーションを作る章はなく、Rustそのものにフォーカスした本のようです。『プログラミング言語Rust 公式ガイド』やオライリーの蟹本『プログラミングRust 第2版』と似た立ち位置でしょうか。
 最新のRust 2021 Editionに対応しているのもポイント。原著はこちらです。

プログラミングRust 第2版

 2022/1刊行。安定のオライリー本で通称は“カニ本”“蟹本”でしょうか。マスコットのフェリス..ではなくて本物のカニさんが表紙になっています。さすがのオライリーで680Pの大ボリューム。
 アカデミック寄りの本でRust言語のコア機能、標準ライブラリをガッツリと広く深く解説しており、網羅性が高いです。最新の2021 Edition対応。いつものオライリー本でじっくり学びたい方向け。

詳解Rustプログラミング

 2021/11刊行と新しめ。海外本のTim McNamaraさん著『Rust in Action』の翻訳本。表紙は歯車がたくさん、そしてRust言語のカラーの赤い歯車もあります。
 512Pの大ボリュームなのですが、包括的な教科書や参考書ではなく、特殊な扱いがある部分は略し、十分な基礎知識を提供して残りは自分で学べる自信を与える...という目的があるそうでWebアプリの開発などのテーマは出てきません。
 前半でRustの基礎や応用を述べた後は様々な題材を用意し、メモリやファイルとストレージ、ネットワーク、時間、プロセスとスレッドとコンテナ、カーネル、シグナル...とシステムプログラミングの低レイヤーの世界に深く突入します。Rust言語自体の基礎も語られてはいるのですが位置づけとしては2冊目以降、システムプログラミングの分野をより深めたい人向けの本でしょうか。
 原著の作者さんはRustコミュニティでも活動されている方だそうでかなり解説はしっかりしています。僕はサンプルの一章しかまだ読めていないのですが、ここだけでも公平にRustの欠点含め、かなり深く書いてあってこれは信頼できる深い本だ...!と思いました。

原著は以下。こちらの表紙だと歯車ではなくRustaceanの人がRust拳法の構えをとっています。(うそ)

実践Rust入門 [言語仕様から開発手法まで]

 2019/4刊行。電子版は2020/6に紙版4刷に合わせて更新が入っています。タイトルだけだと上述の『実践Rustプログラミング入門』と似ていてややこしいのですが、あちらは表紙が“歯車本"、こちらは“自転車本”です。
 公式和訳の『プログラミング言語Rust 公式ガイド』とオライリーの蟹本『プログラミングRust』が存在する2018年時点で、Rust 2018 Editionに対応しより実践重視の日本発の本を書こう...という狙いで書かれたもの。
最初はクイックツアーから始まってRustの解説一式、第2部の実践編がパーサーの作成、パッケージ、WebアプリとDB、他言語から呼ぶ際のFFIと充実しています。WebアプリケーションフレームワークとしてはActix-web、ORMツールにはDieselが登場します。文法7割、実践3割の分配とのことです。
網羅性よりも、よく使う機能とあまり使わない機能の緩急や現場ならではの知見が詰まった大ボリュームの一冊。ネットの書評も多く評価も高い、安定の定番本です。
作者さんのブログ記事があります。

keens.github.io

プログラミングRust

 2018/8刊行。上で紹介した『プログラミングRust 第2版』の第1版です。Rust言語にはエディション(Edition)という仕組みがあり、後方互換性を破壊した機能追加の際は別エディションになります。本書は古い2015エディション準拠なので必ず2版の方にしましょう。

特定領域:Webアプリケーション

Webアプリ開発で学ぶ Rust言語入門

 2022/10刊行。フロントエンド界隈でもWebAssemblyとの活用で注目されているRust。zennで活動中のフロントエンドエンジニアの作者さんがフロント寄りの視点も交えた本です。TodoアプリをReact+Rustで開発、TDDスタイルでテストもしつつ機能追加もしながら実装例を解説していくWeb開発特化本。Webアプリケーションフレームワークはaxum、ORMツールはsqlxを使っています。
 総合的なRust入門書でその中の1章をWeb開発に当てているような本はいくつかありますが、1冊丸ごとWebアプリを扱っているのは本書だけ。物理本のサイズも小さめ、お値段も控えめで比較的手軽に読めます。2022年のモダンReactでの実装例も一緒に読めてしまうオトクな本です。作者さんのzennの記事はこちら。

zenn.dev zenn.dev

 ついでに当ブログの読書記録です。

特定領域:組込み系

基礎から学ぶ 組込みRust

 2021/4刊行。表紙には緑の歯車があしらってあります。C/C++が絶対勢力の組込み系世界でも、Rustはもう十分適用できる...! という作者さんの熱い想いから生まれた組込み系にフォーカスした本。
 総合的なRust入門書でちょっとだけ、あるいは1章ぐらい組込み系をも扱っていることはありますが、1冊まるごと組込み系を扱っているは現状本書だけです。作者さんとNature社さんのブログ記事があります。

tomo-wait-for-it-yuki.hatenablog.com

engineering.nature.global

技術同人誌発の本

 最近多い、技術書典などの技術同人誌から始まって商業書籍になった本。2019年から出ており、商業本が活発になる前からRustがいち早くエンジニア界隈で注目されていたのが分かります。どれもRust言語そのもの入門本ではなく、Rustと絡めたテーマでという同人誌らしい題材の本です。

作って学ぶルーティングプロトコル RustでBGPを実装 (技術の泉シリーズ(NextPublishing))

 2022/12刊行と最新。インターネットを支えるルーティングプロトコル、BGP(Border Gateway Protocol)をRFCからRustで実装する方法を解説した本です。本書は最初この記事のリストから漏れていたので追記しました。

Rustで始める自作組込みOS入門 (技術の泉シリーズ(NextPublishing))

 2022/6刊行。RustでOS自体を作ってしまおうという本。2021/7の技術書典11で頒布されました。

Rust+ECSでゲーム開発 -ゲームエンジンAmethystのススメ- (技術の泉シリーズ(NextPublishing))

 2021/9刊行。Rust製のゲームエンジンのAmethystを利用してブロック崩しゲームを実装するというユニークなテーマの本。2021/7の技術書典11で頒布されました。
 ECSはAWSのコンテナサービスの名前でなくてEntity Component Systemの略、これはゲーム開発で用いられるアーキテクチャパターンだそうですね。なおテーマになっているゲームエンジンのAmethystは残念ながらその後開発終了してしまったそうです...

Rustで始めるTCP自作入門

 2021/9刊行。ネットワークの世界に浸かり、TCPそのものを実装してみようというテーマの本。2020/12の技術書典10で頒布されました。作者さんのブログ記事があります。

cha-shu00.hatenablog.com

RustではじめるOpenGL (技術の泉シリーズ(NextPublishing))

 2020/2刊行。2D/3DのコンピュータグラフィックスライブラリのOpenGLを、Rustの圧倒的な実行速度を活用してやっていこうという薄い本。2019/2の技術書典7で頒布されました。作者さんのブログ記事があります。作者さんは入門本の定番『実践Rustプログラミング入門』のGUIの章も担当されています。

toyamaguchi.hatenablog.com

Rustで始めるネットワークプログラミング

 2019/6刊行。205ページと手軽な本。ネットワーク周りにどっぷりとつかり、ポートスキャンやWebサーバー、DHCPサーバーまでRustで作っていこうという本です。『Rustで始めるTCP自作入門』と同じ作者さんですね。ブログ記事があります。 cha-shu00.hatenablog.com

複合テーマの本

並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ

 2021/8刊行。表紙はカニさんでなくお魚、安定のオライリー本。タイトル通りRustやC言語で並行プログラミングをがっつりやる本です。Rust言語自体の入門ではないのでご注意ください。

その他の本

 ネガティブな話でアレですが、ITエンジニアとしてRust言語にしっかり1冊入門したいならこのへんの本は避けた方がよいかと思われます。

はじめてのRust (I/O BOOKS)

 2022/9刊行。灰色で地味ですがマスコットのカニさんのフェリスも表紙に登場します。2022年の新しい本なのですが...合計144ページで内容も薄く、Amazonの評価も最低となっています。フリーライターの作者さん自身がRust初心者のようですね。う~ん本格的に入門するなら除外で良いでしょう。

やさしいRust入門

やさしいRust入門

やさしいRust入門

Amazon

 2020/12刊行。初心者向けの本のように見えるのですが情報がなく、またネットでもこの本の情報を見ません。本屋で実物を見たのですがフォントも大きく、内容は薄めでした。う~ん最初に1冊読むなら除外で良いかと思います。

Rustプログラミング入門

 2019/3刊行。Rustのメモリ関連にフォーカスして生ポインタの話、言語仕様上は使えるけど避けた方が良いunsafeの話が出てきたりと独特な構成です。またAmazonのレビューを見ると内容に技術的な誤りが多いとの指摘が多く、技術書にしては珍しく評価が低くなっています。良い本は他に幾つもあるので、う~んこの本も入門するなら除外で良いかと思います。

まとめ:Rustが最近盛り上がってきてるよ!

 並べてみるとかなりの圧巻、盛り上がっているのが分かります。毎年集計されている『Stack Overflow Developer Survey』でも、Most Lovedな愛される言語の第1位が2015年はSwift(Rustはここで既に3位)。2016年からRustが1位に浮上。そこから2022年まで7年間第1位を独占と、世界のエンジニアからの支持が圧倒的なのが分かります。

survey.stackoverflow.co

 国内では、これも毎年集計されている『Qiita エンジニア白書 2022』でも、「これから習得したい言語」でPython、Goに続いて3位にRustが浮上。かなり注目されているのが分かります。2023年以降も盛り上がるとよいですね。

qiita.com

 僕自身も入門した後に認知を広げようと思って会社のミニ勉強会でも紹介しました。なんとか実務で使える機会を作れないものか...と思ったりしています。

 新年などの節目を機に、ひとつ今年は新しい言語でも学んでみようかという方もおられると思います。Rustaceanを目指す方々にこの記事が参考になりますように!

Rust言語のおすすめ本まとめ / Font: Mozilla公式のZilla Slab でした