相關主題
商品描述
《Rust實戰項目開發》是一本以實戰為主的Rust編程指南,每個章節都經過了作者精心挑選和打磨。全書由3部分組成: 部分( ~2章),介紹了Rust實戰前需要掌握的基礎知識。第2部分(第3~10章),將Rust基礎知識融入實際項目中,向讀者詳細闡述了不同業務場景的實戰項目該怎麼做,以及技術實現原理和運行機制。第3部分( 1章),通過一個綜合應用向讀者演示了如何在Rust語言中使用標準庫和常見的第三方庫構建一個高性能、高並發的實際項目。這3部分的內容,可幫助讀者 快、 輕松地上手Rust實戰項目開發,走向 為廣闊的職業生涯。 《Rust實戰項目開發》主要面向系 程的開發者、高等院校在校師生和Rust語言愛好者。
作者簡介
朱偉(大黑哥), Go開發者(布道者)、 PHP架構師、 Nodejs開發者、Rust語言布道者。作者具有10多年一線開發經驗,先後從事海量郵件群發系統、千萬級電商平臺和金融平臺、遊戲平臺、Saas等不同行業的開發和架構設計。在微服務、敏捷開發、項目管理、架構設計、Go項目開發、Rust系 程等不同領域,具有深入的研究和豐富的實戰經驗,長期致力於Go、Rust、Nodejs多個開源項目共建。
目錄大綱
序一
序二
語
前言
部分Rust語言基礎
第1章Rust語言簡介
1.1Rust基本介紹
1.1.1Rust是什麼
1.1.2為什麼需要Rust
1.1.3Rust應用領域
1.1.4Rust未來發展
1.2Rust初步體驗
1.2.1Rust安裝
1.2.2Rust鏡像源配置
1.2.3Rust單元測試、集成測試和基準測試
1.3Rust工具鏈
1.3.1Rust編輯器選擇
1.3.2cargo工具使用
1.3.3rustup版本 新
1.4Rust交叉編譯
1.4.1在macOS上實現交叉編譯
1.4.2在Windows上實現交叉編譯
1.4.3通過cross工具實現跨平臺交叉編譯
第2章Rust模塊化編程實戰
2.1Rust中的模塊化編程簡介
2.2Package(包)
2.2.1二進制類型的包
2.2.2library類型的包
2.3Module(模塊)
2.3.1Module的定義與使用
2.3.2使用pub改變模塊的可見性
2.3.3使用use引入模塊和模塊中的成員
2.3.4使用super與self簡化模塊路徑
2.3.5使用pub use重新導出
2.4模塊層次結構劃分
2.4.1將模塊映射到文件
2.4.2將模塊映射到目錄
2.5Crate(單元包)管理
2.5.1crates.io托管平臺
2.5.2編寫一個隨機數生成的實例
2.5.3編寫一個終端輸出變色的實例
2.5.4編寫與發布一個自定義的單元包
Rust實戰項目開發
第2部分Rust實際項目開發
第3章Rust JSON實戰
3.1JSON基礎
3.1.1JSON基本數據類型
3.1.2JSON序列化和反序列化
3.2serde基本簡介
3.3serde_json基本操作
3.3.1serde_json序列化與反序列化
3.3.2serde_json自定義序列化和反序列化
3.3.3serde_json中的json!宏
3.3.4serde_json其他 特性
3.3.5編寫一個JSON配置文件讀取案例
第4章Rust Web編程實戰
4.1Web編程簡介
4.1.1TCP
4.1.2HTTP
4.2使用Rust構建Web Server
4.2.1創建一個簡單的單線程Web Server
4.2.2將單線程Web Server重構為多線程Web Server
4.2.3Web服務平滑退出
4.3Rust Web編程第三方庫操作
4.3.1tide庫使用
4.3.2axum庫使用
4.3.3編寫一個簡單的短鏈接服務
第5章Rust命令行界面實戰
5.1CLI簡介
5.1.1什麼是CLI
5.1.2CLI使用場景
5.2Rust命令行參數解析
5.2.1從終端獲取CLI參數
5.2.2CLI參數類型轉換
5.3第三方CLI庫操作
5.3.1使用structopt庫處理CLI參數
5.3.2使用clap庫處理CLI參數
5.3.3編寫一個圖片壓縮、裁剪和旋轉的CLI工具
5.3.4編寫一個MySQL表結構轉換為Rust結構體的CLI工具
第6章Rust crontab實戰
6.1crontab簡介
6.1.1什麼是crontab
6.1.2crontab基本用法
6.2crontab使用時的註意事項
6.2.1crontab執行路徑問題
6.2.2crontab讀取環境變量問題
6.3Rust中第三方cron庫的基本操作
6.3.1第三方庫rcron的使用
6.3.2編寫一個日誌文件自動切割的工具
6.3.3編寫一個MySQL數據庫定時備份的工具
第7章Rust中的數據庫和緩存實戰
7.1數據庫和緩存簡介
7.2MySQL
7.2.1MySQL下載和安裝
7.2.2MySQL基本用法
7.3Redis
7.3.1Redis下載和安裝
7.3.2Redis基本數據類型
7.4Rust中的MySQL和Redis操作
7.4.1使用sqlx庫操作MySQL
7.4.2使用redis-rs操作Redis
7.4.3編寫一個增量同步的閱讀數服務
第8章Rust中的消息隊列實戰
8.1消息隊列簡介
8.2Kafka基礎
8.2.1Kafka安裝
8.2.2Kafka基本概念
8.3Pulsar基礎
8.3.1Pulsar安裝
8.3.2Pulsar基本概念
8.4Rust中的Kafka和Pulsar操作
8.4.1使用Kafka Client庫操作Kafka
8.4.2使用Pulsar Client庫操作Pulsar
8.4.3編寫一個簡單的積分系統
第9章Rust FFI調用實戰
9.1Rust安全性和不安全性
9.2Rust FFI調用簡介
9.2.1FFI調用的安全性和不安全性
9.2.2FFI調用的註意事項
9.3Rust Qt綁定
9.3.1Qt安裝
9.3.2Rust Qt相關綁定庫簡介
9.3.3使用cxx-qt編寫一個桌面應用程序
9.3.4使用qmetaobject編寫一個桌面應用程序
9.4Rust與其他語言交互
9.4.1使用cc庫在Rust中調用C語言代碼
9.4.2使用neon庫為Node.js編寫原生拓展
9.4.3使用PyO3為Python編寫拓展
0章Rust並發編程與異步編程實戰
10.1並發與並行
10.2Rust並發編程
10.2.1使用spawn創建線程
10.2.2自定義線程和move關鍵字
10.2.3Mutex和Arc
10.2.4channel消息傳遞
10.3Rust異步編程
10.3.1為什麼需要異步編程
10.3.2asyncawait基礎
10.3.3async中的move關鍵字
10.3.4tokio運行時
第3部分Rust綜合應用實戰
1章構建一個高並發的QA(問答)系統實戰
11.1QA系統架構設計
11.1.1功能分析
11.1.2架構設計
11.1.3pb協議定義
11.2QA系統layout分層
11.3QA系統技術實現
11.3.1使用tonic庫編寫gRPC微服務接口
11.3.2使用serde_yaml讀取配置文件
11.3.3使用Redis計數器實現問題閱讀數功能
11.3.4使用Pulsar實現回答點讚功能
11.3.5使用log和env_logger記錄日誌
11.3.6gRPC HTTP網關層
11.4QA系統的服務可觀測性建設
11.4.1metrics接入
11.4.2prometheus部署與接入
11.4.3grafana部署與接入
11.5QA系統的部署方式選擇
11.5.1使用supervisor工具部署二進制文件
11.5.2使用Rust Docker鏡像構建與發布
參考文獻