Rust項目開發實戰

Rust項目開發實戰

作者: Milanesi Carlo 譯 程曉磊
出版社: 清華大學
出版在: 2022-07-01
ISBN-13: 9787302610267
ISBN-10: 7302610266





內容描述


《Rust項目開發實戰》詳細闡述了與Rust語言開發相關的基本解決方案,主要包括Rust語言簡介、存儲和檢索數據、創建REST Web服務、創建完整的服務器端Web應用程序、利用Yew創建客戶端WebAssembly應用程序、利用quicksilver創建WebAssembly游戲、利用ggez創建2D桌面游戲、解釋和編譯所用的解析器組合器、使用Nom創建電腦模擬器、創建Linux內核模塊、Rust語言的未來等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。


目錄大綱


目錄
第1章 Rust語言簡介 1
1.1 技術需求 1
1.2 瞭解Rust的不同版本 1
1.3 項目 4
1.4 運行本書示例 6
1.5 一些實用程序庫 6
1.5.1 偽隨機數生成器—rand庫 6
1.5.2 日誌機制—log庫 7
1.5.3 在運行期初始化靜態變量—lazy_static庫 8
1.5.4 解析命令行—structopt庫 9
1.6 本章小結 10
1.7 本章練習 10
第2章 存儲和檢索數據 13
2.1 技術需求 13
2.2 項目概覽 14
2.3 讀取TOML文件 14
2.3.1 使用toml_dynamic 15
2.3.2 使用toml_static 17
2.4 讀寫JSON文件 18
2.4.1 json_dynamic項目 20
2.4.2 json_static項目 21
2.5 讀取XML文件 21
2.6 訪問數據庫 23
2.7 訪問SQLite數據庫 24
2.8 訪問PostgreSQL數據庫 27
2.9 在Redis中存儲和檢索數據 29
2.10 整合方案 31
2.11 本章小結 31
2.12 本章練習 32
第3章 創建REST Web服務 33
3.1 技術需求 33
3.2 REST體系結構 34
3.3 項目概覽 35
3.4 背景知識和上下文環境 35
3.5 構建REST Web服務的存根程序 37
3.5.1 運行和測試服務 37
3.5.2 利用GET方法獲取資源 37
3.5.3 利用PUT方法向服務發送命名資源 38
3.5.4 利用POST方法向服務器傳遞新資源 39
3.5.5 利用DELETE方法刪除資源 39
3.5.6 發送無效的命令 40
3.5.7 實現代碼 40
3.6 構建完整的Web服務 44
3.6.1 下載文件 44
3.6.2 將字符串上傳至指定文件 45
3.6.3 將字符串上傳至新文件中 45
3.6.4 刪除一個文件 46
3.6.5 代碼實現 46
3.7 構建狀態服務器 49
3.7.1 有狀態服務器 50
3.7.2 服務API 51
3.7.3 測試服務 52
3.7.4 實現數據庫 53
3.7.5 處理查詢 53
3.8 返回JSON數據 54
3.9 本章小結 55
3.10 本章練習 55
3.11 進一步閱讀 56 
第4章 創建完整的服務器端Web應用程序 57
4.1 技術需求 57
4.2 Web應用程序的定義 57
4.3 瞭解Web應用程序的行為 58
4.4 項目概覽 60
4.5 使用Tera模板引擎 61
4.6 簡單的用戶列表 67
4.6.1 模板文件夾 69
4.6.2 其他Rust處理程序 72
4.7 CRUD應用程序 74
4.7.1 處理JavaScript代碼 76
4.7.2 HTML代碼 77
4.7.3 Rust代碼 78
4.8 利用身份驗證處理應用程序 83
4.8.1 實現過程 85
4.8.2 HTML代碼 85
4.8.3 JavaScript代碼 87
4.8.4 模擬數據庫代碼 87
4.8.5 main函數 88
4.9 本章小結 90
4.10 本章練習 91
4.11 進一步閱讀 91
第5章 利用Yew創建客戶端WebAssembly 應用程序 93
5.1 技術需求 93
5.2 Wasm簡介 94
5.3 理解MVC架構模式 94
5.3.1 實現兩種Web應用程序 95
5.3.2 MVC模式 96
5.3.3 模型 96
5.3.4 視圖 97
5.3.5 控制器 97
5.3.6 視圖實現 98
5.3.7 控制器實現 98
5.3.8 理解MVC架構 99
5.4 項目簡述 100
5.5 incr應用程序 100
5.6 adder應用程序 104
5.7 login應用程序 106
5.7.1 項目組織方式 107
5.7.2 db_access.rs文件 108
5.7.3 main.rs文件 109
5.7.4 login.rs文件 112
5.8 yauth應用程序 115
5.8.1 理解應用程序的行為 115
5.8.2 項目的組織方式 116
5.8.3 不可針對filtered_persons使用空集合 118
5.8.4 one_person.rs文件 122
5.9 訪問RESTful服務的Web應用程序 124
5.9.1 persons_db應用程序 125
5.9.2 yclient應用程序 126
5.10 本章小結 131
5.11 本章練習 132
5.12 進一步閱讀 132
第6章 利用quicksilver創建WebAssembly游戲 135
6.1 技術需求 135
6.2 項目簡介 136
6.3 理解動畫循環架構 136
6.4 實現ski項目 139
6.5 實現silent_slalom項目 144
6.6 實現assets_slalom項目 152
6.7 本章小結 157
6.8 本章練習 157
6.9 進一步閱讀 157
第7章 利用ggez創建2D桌面游戲 159
7.1 技術需求 159
7.2 項目簡介 160
7.3 瞭解線性代數 160
7.4 實現gg_ski項目 162
7.4.1 main函數 163
7.4.2 輸入處理的模式 164
7.4.3 gg_ski項目中的輸入處理 166
7.4.4 quicksilver的其他差別 167
7.5 實現gg_silent_slalom項目 172
7.6 實現gg_assets_slalom項目 174
7.7 實現gg_whac項目 175
7.7.1 資源數據 177
7.7.2 應用程序和事件的通用結構 178
7.7.3 模型的其他字段 179
7.7.4 定義一個微件 180
7.8 本章小結 182
7.9 本章練習 182
7.10 進一步閱讀 182
第8章 解釋和編譯所用的解析器組合器 183
8.1 技術需求 183
8.2 項目簡介 184
8.3 包含Calc 184
8.4 理解形式語言及其解析器 187
8.4.1 正則語言 188
8.4.2 上下文無關語言 189
8.4.3 上下文相關語言 189
8.5 使用Nom構建解析器 190
8.5.1 編譯器-編譯器和解析器組合器 191
8.5.2 Nom庫的基本知識 191
8.6 calc_parser項目 199
8.6.1 理解main.rs源文件 201
8.6.2 parser.rs源文件 202
8.7 calc_analyzer項目 209
8.7.1 檢查解析後的程序的變量 209
8.7.2 main.rs文件 212
8.7.3 symbol_table.rs文件 212
8.7.4 analyzer.rs文件 213
8.8 calc_interpreter項目 218
8.8.1 main.rs文件 219
8.8.2 symbol_table.rs文件 220
8.8.3 executor.rs文件 221
8.9 calc_compiler項目 223
8.9.1 main.rs文件 224
8.9.2 compiler.rs文件 225
8.10 本章小結 227
8.11 本章練習 228
8.12 進一步閱讀 228
第9章 使用Nom創建電腦模擬器 229
9.1 技術需求 229
9.2 項目簡介 230
9.3 簡單的機器語言 230
9.3.1 與機器語言相關的主要概念 231
9.3.2 擴展機器語言 235
9.3.3 編寫簡單的程序 236
9.3.4 Eratosthenes篩法 244
9.4 定義字節尋址的機器語言 246
9.5 nom_byte_machine項目 248
9.5.1 main.rs源文件 250
9.5.2 使用Nom庫 252
9.5.3 emulator.rs源文件 255
9.5.4 parsing_interpreter.rs源文件 258
9.5.5 translator.rs源文件 260
9.6 nom_disassembler項目 261
9.6.1 運行項目 262
9.6.2 查看源代碼 263
9.6.3 生成供調試使用的反匯編代碼 264
9.6.4 生成反匯編代碼以重組 266
9.7 本章小結 267
9.8 本章練習 267
第10章 創建Linux內核模塊 269
10.1 技術需求 269
10.2 項目簡介 270
10.3 理解內核模塊 270
10.4 boilerplate模塊 272
10.4.1 構建和運行內核模塊 273
10.4.2 構建命令 274
10.4.3 樣板模塊的源代碼 276
10.5 使用全局變量 278
10.6 分配內存 279
10.7 字符設備 281
10.7.1 構建字符設備 281
10.7.2 dots模塊的源代碼 283
10.8 本章小結 288
10.9 本章練習 289
10.10 進一步閱讀 289
第11章 Rust語言的未來 291
11.1 IDE和交互式編程 291
11.2 庫成熟度 292
11.3 異步編程 293
11.4 優化操作 298
11.5 常量泛型特性 299
11.6 嵌入式系統 300
11.7 本章小結 301
練習答案 303




相關書籍

Opportunities in 5G Networks: A Research and Development Perspective (Hardcover)

作者 Fei Hu

2022-07-01

C++程序設計教程(第三版)

作者 朱紅 趙琦 王慶寶

2022-07-01

國之重器出版工程 5G無線接入網架構及關鍵技術 精裝版

作者 楊峰義 謝偉良 張建敏 等

2022-07-01