Rust网络编程
286 页
Chinese
PDF
4.5

Rust网络编程

Rust网络编程

作者:

年份:

简介:

引言

《Network Programming with Rust》(作者:Abhijit Gadgil,2018年出版,共286页)是一本实用指南,专注于使用Rust语言构建网络应用程序。在性能和内存安全成为关键因素的当今时代,Rust提供了底层控制与安全保障的独特结合。作者的目标不仅是教会读者编写网络代码,更是要高效地利用语言的所有优势:所有权(ownership)系统、借用(borrowing)、生命周期(lifetimes)和强大的类型系统。

本书内容

本书涵盖了广泛的主题——从套接字基础到构建高负载异步服务器。它从介绍Rust生态系统和网络通信的基本概念(OSI模型、TCP/UDP)开始。随后依次探讨了:

  • 阻塞与非阻塞套接字的使用;
  • TCP和UDP协议及其在Rust中的实现;
  • 使用流行crate(hyper、reqwest)创建HTTP服务器和客户端;
  • 使用tokio和async/await(本书出版时为futures)进行异步编程;
  • 安全性:TLS/SSL加密、证书处理;
  • 通过网络与数据库交互(以PostgreSQL为例);
  • 网络应用程序的测试与调试。

每章都包含实用的代码示例,可立即运行和修改。

目标读者

本书面向已熟悉Rust基础知识的开发者(语法、所有权、trait)。如果您刚开始学习该语言,建议先阅读《The Rust Programming Language》(官方指南)。同时,需要具备网络协议(TCP/IP、HTTP)的基本理解。

目标受众:

  • 希望转向Rust以创建高性能服务的后端开发者;
  • 从事网络守护进程、代理、负载均衡器开发的系统程序员;
  • 对安全系统编程感兴趣的学生和研究人员;
  • 希望了解Rust如何解决网络代码中内存安全问题的C/C++开发者。

读者将学到什么

阅读本书后,您将能够:

  • 从头创建TCP服务器和客户端,并在多线程和异步模式下处理连接;
  • 在UDP之上实现自定义协议;
  • 使用hyper crate编写HTTP服务器并处理请求/响应;
  • 使用tokio以最小开销构建异步网络应用程序;
  • 通过native-tls或rustls为应用程序添加TLS加密;
  • 通过网络驱动程序(例如tokio-postgres)与数据库交互;
  • 使用模拟对象和测试服务器为网络代码编写单元测试和集成测试;
  • 理解流行网络crate的内部结构,并为您的任务选择合适的crate。

优势

本书具有以下几个重要特点:

  • 实践导向。每个概念都有可运行的代码支持,可适应您的项目需求。
  • 深入探讨异步编程。作者详细解释了async/await模型(通过futures),并展示了如何避免常见错误(例如阻塞事件循环)。
  • 强调安全性。Rust以其安全性著称,本书系统地展示了类型系统如何防止整类漏洞(竞态条件、释放后使用、缓冲区溢出)。
  • 示例的时效性。尽管出版于2018年,大多数示例仍然具有相关性,

推荐