Skip to content

Latest commit

 

History

History
179 lines (169 loc) · 6.34 KB

SUMMARY.md

File metadata and controls

179 lines (169 loc) · 6.34 KB

Rust实战项目开发

  • 封面

  • 内容简介

  • 读者对象

  • 作者简介

  • 推荐语

  • 前言

  • 第1章 Rust语言简介

    • 1.1 Rust基本介绍
      • 1.1.1 Rust是什么
      • 1.1.2 为什么需要使用Rust
      • 1.1.3 Rust应用领域
      • 1.1.4 Rust未来发展
    • 1.2 Rust初步体验
      • 1.2.1 Rust安装
      • 1.2.2 Rust镜像源配置
      • 1.2.3 Rust单元测试、集成测试和基准测试
    • 1.3 Rust工具链
      • 1.3.1 Rust编辑器选择
      • 1.3.2 cargo工具使用
      • 1.3.3 rustup版本更新
    • 1.4 Rust交叉编译
      • 1.4.1 在MacOS平台上实现交叉编译
      • 1.4.2 在Windows平台上实现交叉编译
      • 1.4.3 通过cross实现跨平台交叉编译
  • 第2章 Rust模块化编程实战

    • 2.1 Rust中的模块化编程简介
    • 2.2 package包
      • 2.2.1 二进制类型的包
      • 2.2.2 library类型的包
    • 2.3 module模块
      • 2.3.1 module定义与使用
      • 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.5 crate包管理
      • 2.5.1 crates.io托管平台
      • 2.5.2 编写一个随机数生成的例子
      • 2.5.3 编写一个终端输出变色的例子
      • 2.5.4 编写一个自定义crate包与发布
  • 第3章 Rust JSON实战

    • 3.1 JSON基础
      • 3.1.1 JSON基本数据类型
      • 3.1.2 JSON序列化与反序列化
    • 3.2 serde基本简介
    • 3.3 serde_json基本操作
      • 3.3.1 serde_json序列化与反序列化
      • 3.3.2 serde_json自定义序列化和反序列化
      • 3.3.3 serde_json中的json宏
      • 3.3.4 serde_json其他高级特性
      • 3.3.5 编写一个JSON配置文件读写案例
  • 第4章 Rust Web编程实战

    • 4.1 Web编程简介
      • 4.1.1 TCP协议
      • 4.1.2 HTTP协议
    • 4.2 使用Rust构建Web Server
      • 4.2.1 创建一个简单的单线程Web Server
      • 4.2.2 将单线程Server重构为多线程Server
      • 4.2.3 Web服务平滑退出
    • 4.3 Rust Web编程第三方库操作
      • 4.3.1 tide库使用
      • 4.3.2 axum库使用
      • 4.3.3 编写一个简单的短链服务
  • 第5章 Rust命令行CLI实战

    • 5.1 命令行CLI简介
      • 5.1.1 什么是命令行CLI
      • 5.1.2 命令行CLI使用场景
    • 5.2 Rust命令行参数解析
      • 5.2.1 从终端获取CLI参数
      • 5.2.2 CLI参数类型转换
    • 5.3 第三方CLI命令行库操作
      • 5.3.1 使用structopt库处理CLI参数解析
      • 5.3.2 使用clap库处理CLI参数解析
      • 5.3.3 编写一个图片压缩、裁剪和旋转的工具
      • 5.3.4 编写一个MySQL表结构转换为Rust结构体的工具
  • 第6章 Rust cron实战

    • 6.1 crontab简介
      • 6.1.1 crontab是什么
      • 6.1.2 crontab基本语法
    • 6.2 crontab注意事项
      • 6.2.1 crontab执行路径问题
      • 6.2.2 crontab读取环境变量问题
    • 6.3 Rust中cron操作
      • 6.3.1 第三方库rcron使用
      • 6.3.2 编写一个日志文件自动切割的工具
      • 6.3.3 编写一个MySQL数据库定时备份的工具
  • 第7章 Rust中数据库和缓存实战

    • 7.1 数据库和缓存简介
    • 7.2 MySQL
      • 7.2.1 MySQL下载和安装
      • 7.2.2 MySQL基本使用
    • 7.3 Redis
      • 7.3.1 Redis下载和安装
      • 7.3.2 Redis基本数据类型
    • 7.4 Rust中MySQL和Redis操作
      • 7.4.1 使用sqlx库操作MySQL
      • 7.4.2 使用redis-rs库操作Redis
      • 7.4.3 编写一个增量同步的阅读数服务
  • 第8章 Rust中消息队列MQ实战

    • 8.1 消息队列MQ简介
    • 8.2 Kafka基础
      • 8.2.1 Kafka安装
      • 8.2.2 Kafka基本概念
    • 8.3 Pulsar基础
      • 8.3.1 Pulsar安装
      • 8.3.2 Pulsar基本概念
    • 8.4 Rust中Kafka和Pulsar操作
      • 8.4.1 使用kafka client库操作Kafka
      • 8.4.2 使用pulsar client库操作Pulsar
      • 8.4.3 编写一个简单的积分系统
  • 第9章 Rust FFI调用实战

    • 9.1 Rust安全性和不安全性
    • 9.2 Rust FFI调用简介
      • 9.2.1 FFI调用的安全性与不安全性
      • 9.2.2 FFI调用的注意事项
    • 9.3 Rust Qt绑定
      • 9.3.1 Qt简介
      • 9.3.2 Rust Qt相关绑定库简介
      • 9.3.3 使用cxx-qt编写一个桌面应用程序
      • 9.3.4 使用qmetaobject编写一个桌面应用程序
    • 9.4 Rust和其他语言交互
      • 9.4.1 使用cc库在Rust中调用C语言代码
      • 9.4.2 使用neon库为Nodejs编写原生拓展
      • 9.4.3 使用PyO3库为Python编写拓展
  • 第10章 Rust并发编程与异步编程实战

    • 10.1 并发与并行
    • 10.2 Rust并发编程
      • 10.2.1 使用spawn创建线程
      • 10.2.2 move关键字和自定义线程
      • 10.2.3 Mutex和Arc
      • 10.2.4 channel消息传递
    • 10.3 Rust异步编程
      • 10.3.1 为什么需要异步编程
      • 10.3.2 async/await基础
      • 10.3.3 async中move关键字使用
      • 10.3.4 tokio运行时
  • 第11章 构建一个高并发的QA问答系统实战

    • 11.1 QA问答系统架构设计
      • 11.4.1 功能分析
      • 11.4.2 架构设计
      • 11.4.3 pb协议定义
    • 11.2 QA问答系统layout分层
    • 11.3 QA问答系统技术实现
      • 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.6 gRPC HTTP网关层
    • 11.4 QA问答系统的服务可观测性
      • 11.4.1 metrics接入
      • 11.4.2 prometheus部署与接入
      • 11.4.3 grafana部署与接入
    • 11.5 QA问答系统的部署方式选择
      • 11.5.1 使用supervisor工具部署二进制文件
      • 11.5.2 使用Rust docker镜像构建与发布
  • 参考文献

  • 附录

    • A Rust edition版本演化
    • B Rust tokio运行时调度机制
    • C Docker中Kafka和Pulsar基本操作
    • D MacOS系统安装Qt工具
    • E QA问答系统相关内容
    • F Rust和Go语言对比