Rust 語言編程實戰 (Rust Programming Cookbook)
內容描述
本書涵蓋了不同環境和體系架構設計下配置Rust的技巧,並提供了解決實際問題的方案。
首先介紹了Rust的核心概念,使你能創建高效、高性能的應用,
其中會使用各種Rust特性,如零成本抽象和改進內存管理。
本書還深入介紹了更高級的主題(包括通道和actor),能構建可伸縮的生產級別的應用,
還會學習錯誤處理、宏和模塊化來編寫可維護的代碼。
你會了解如何克服使用Rust實現系統編程、物聯網、
Web開發和網絡編程時遇到的常見障礙,並進一步了解Rust2018為嵌入式程序員提供的強大功能。
本書適合想要使用Rust快速開發應用實例的具有一定編程基礎的人。
目錄大綱
目錄
序
前言
第1章Rust入門1
1.1建立環境1
1.1.1準備工作2
1.1.2實現過程2
1.1.3工作原理4
1.2使用命令行I/O 4
1.2.1實現過程4
1.2.2工作原理6
1.3創建和使用數據類型7
1.3.1實現過程7
1.3.2工作原理11
1.4控制執行流12
1.4.1實現過程12
1.4.2工作原理15
1.5用crate和模塊劃分代碼16
1.5.1準備工作16
1.5.2實現過程16
1.5.3工作原理21
1.6編寫測試和基準測試22
1.6.1準備工作22
1.6.2實現過程22
1.6.3工作原理27
1.7為代碼提供文檔28
1.7.1準備工作29
1.7.2實現過程29
1.7.3工作原理32
1.8測試你的文檔33
1.8.1準備工作33
1.8.2實現過程33
1.8.3工作原理37
1.9在類型間共享代碼38
1.9.1實現過程38
1.9.2工作原理42
1.10 Rust中的序列類型43
1.10.1實現過程44
1.10.2工作原理46
1.11調試Rust 47
1.11.1準備工作47
1.11. 2實現過程47
1.11.3工作原理50
第2章高級Rust進階52
2.1用枚舉創建有意義的數52
2.1.1實現過程52
2.1.2工作原理56
2.2沒有null 57
2.2.1實現過程57
2.2.2工作原理60
2.3使用模式匹配的複雜條件60
2.3.1實現過程61
2.3.2工作原理66
2.4實現自定義迭代器67
2.4.1準備工作67
2.4.2實現過程67
2.4.3工作原理70
2.5高效地過濾和轉換序列71
2.5.1準備工作71
2.5.2實現過程71
2.5.3工作原理74
2.6以unsafe方式讀取內存75
2.6.1實現過程75
2.6.2工作原理77
2.7共享所有權78
2.7.1準備工作78
2.7.2實現過程79
2.7.3工作原理82
2.8共享可變所有權82
2.8.1準備工作83
2.8.2實現過程83
2.8.3工作原理87
2.9有顯式生命週期的引用88
2.9.1實現過程88
2.9.2工作原理94
2.10用trait綁定強制行為94
2.10.1實現過程94
2.10.2工作原理97
2.11使用泛型數據類型97
2.11.1實現過程97
2.11.2工作原理102
第3章用Cargo管理項目104
3.1利用工作空間組織大型項目105
3.1.1實現過程105
3.1.2工作原理108
3.2上傳到crates.io 110
3.2.1準備工作110
3.2.2實現過程110
3.2.3工作原理115
3.3使用依賴和外部crate 116
3.3.1實現過程116
3.3.2工作原理120
3.3.3參考資料121
3.4用子命令擴展cargo 121
3.4.1準備工作122
3.4.2實現過程122
3.4.3工作原理122
3.5用cargo測試你的項目123
3.5.1實現過程123
3.5.2工作原理127
3.6使用cargo持續集成128
3.6.1準備工作128
3.6.2實現過程128
3.6.3工作原理131
3.7定制構建132
3.7.1實現過程132
3.7.2工作原理134
第4章無畏並發136
4.1將數據移入線程136
4.1.1實現過程137
4.1.2工作原理140
4.2管理多個線程141
4.2.1實現過程141
4.2.2工作原理142
4.3使用通道在線程間通信143
4.3.1實現過程143
4.3.2工作原理146
4.4共享可變狀態146
4.4.1實現過程146
4.4.2工作原理148
4.5 Rust中的多進程149
4.5.1實現過程149
4.5.2工作原理152
4.6使順序代碼變為並行152
4.6.1實現過程152
4.6.2工作原理158
4.7向量中的並發數據處理158
4.7.1實現過程159
4.7.2工作原理166
4.8共享不可變狀態166
4.8.1實現過程167
4.8.2工作原理171
4.9使用actor處理異步消息171
4.9.1實現過程171
4.9.2工作原理174
4.10使用future的異步編程175
4.10.1實現過程175
4.10.2工作原理176
第5章處理錯誤和其他結果178
5.1負責任地恐慌178
5.1.1實現過程178
5.1.2工作原理181
5.2處理多個錯誤182
5.2.1實現過程182
5.2.2工作原理184
5.3處理異常結果185
5.3.1實現過程185
5.3.2工作原理188
5.4無縫的錯誤處理188
5.4.1實現過程188
5.4.2工作原理190
5.5定制錯誤191
5.5.1實現過程191
5.5.2工作原理193
5.6彈性編程193
5.6.1實現過程193
5.6.2工作原理194
5.7使用外部crate來完成錯誤處理194
5.7.1實現過程195
5.7.2工作原理196
5.8 Option和Result間轉移197
5.8.1實現過程197
5.8.2工作原理199
第6章用宏表達200
6.1在Rust中構建自定義宏200
6.1.1實現過程201
6.1.2工作原理202
6.2用宏實現匹配203
6.2.1實現過程203
6.2.2工作原理205
6.3使用預定義的宏206
6.3.1實現過程206
6.3.2工作原理208
6.4使用宏生成代碼209
6.4.1實現過程209
6.4 .2工作原理212
6.5宏重載213
6.5.1實現過程213
6.5.2工作原理216
6.6為參數範圍使用重複216
6.6.1實現過程217
6.6.2工作原理219
6.7不要自我重複219
6.7.1實現過程220
6.7.2工作原理222
第7章與其他語言集成223
7.1包含遺留C代碼223
7.1.1準備工作224
7.1.2實現過程225
7.1 .3工作原理229
7.2從Node.js使用FFI調用Rust 231
7.2.1準備工作231
7.2.2實現過程232
7.2.3工作原理235
7.3在瀏覽器中運行Rust 236
7.3.1準備工作236
7.3.2實現過程237
7.3.3工作原理241
7.4使用Rust和Python 242
7.4.1準備工作242
7.4.2實現過程243
7.4.3工作原理249
7.5為遺留應用生成綁定250
7.5.1準備工作250
7.5.2實現過程251
7.5.3工作原理255
第8章Web安全編程256
8.1建立Web服務器256
8.1.1準備工作257
作者介紹
Claus Matzinger
是一位有豐富背景的軟件工程師,任職於一家為嵌入式設備維護代碼的小公司之後,
他加入了一家大公司,從事遺留Smalltalk應用的工作。
這使他對早期的編程語言產生了濃厚興趣,Claus後來成為一家基於Scala技術的健康遊戲創業公司的CTO。
在此之後,Claus開始轉變角色,在物聯網數據庫技術創業公司Crate IO
(這家公司創建了CrateDB)轉入面向客戶的職位,最近進入了Microsoft。
在這裡,他主辦了一個播客,會與客戶一起編寫代碼,
通過博客發表這些合作得到的解決方案。
5年多來,Claus一直在通過軟件幫助客戶創新,以及取得併保持成功。