前言 计算机语言发展至今,呈现出“百花齐放,各有所长”的局面: C/C++以快速高效著称,适合系统编程; Python在数据分析和人工智能领域独占鳌头; Java以稳定性见长; Go被誉为“云计算时代的编程语言”。Rust作为一门新兴的系统编程语言,不仅继承了C/C++的性能优势,更凭借其独特的内存管理机制(如生命周期、所有权、借用等)解决了长期困扰开发者的内存安全问题。据统计,70%的系统漏洞源于内存安全问题,而Rust正是为此而生的。 然而,Rust 的学习曲线如同一座陡峭的山峰,尤其是对习惯了传统编程语言(如 C/C++、Java、Python 等)的开发者而言,其函数式编程特性和创新的内存管理机制让许多初学者望而却步。但这座山峰并非不可征服——只要找到正确的路径,读者经过训练也能轻松登顶。本书基于作者20多年的实战经验,采用独特的“自底向上”教学法,将复杂的概念转化为直观的架构图、流程图和代码示例,帮助读者快速理解并掌握核心知识点。通过丰富的实战案例,我们将 Rust 的核心特性(如内存管理、并发/异步编程等)以工程师熟悉的视角逐一拆解,科学地降低学习难度。本书适合具有一定经验的软件工程师自学,也适合高等院校的计算机专业相关学生在教师的指导下学习。读者最好已经学习并掌握了一门编程语言(函数式编程语言 Haskell,或者过程式编程语言Java、C/C++、Python 等面向对象编程语言均可)。我们希望通过这种循序渐进、贴近实战的教学方式帮助读者快速掌握 Rust,并将其应用于实际项目,为未来的技术挑战做好准备。 本书的核心目标是让读者学完即用,快速上手 Rust 的实际开发。 我们不仅通过大量实例深入浅出地讲解编程的概念和技巧,更在每篇末尾精心设计了实战项目,完整呈现从需求分析、任务拆解、架构设计到代码实现的全流程。这种“即学即用、接近实战”的方式可以确保读者不仅能理解Rust的核心知识点,还能立即将其运用到实际项目,掌握独立开发应用程序的能力。 为提高阅读效率,代码讲解多采用注释形式(以“//”或“#”标记),仅对关键知识点进行正文解析。此外,为避免术语混淆,本书直接采用业界通用的英文术语(如 crate、trait 等),并在附录中提供中英文词汇对照表(Glossary)。本书所有示例均基于 Rust 2018 版(部分支持 Rust 2021 版),全部包含在随书附赠的教学资源包中,并已上传至GitHub和码云。示例涵盖区块链、Substrate、Solana、IPFS/Filecoin、同态加密(HE)、多方计算(MPC)、零知识证明(ZKP)等热门领域; 同时,代码实现均选择使用Tokio、Warp等流行框架。本书旨在帮助读者快速掌握Rust,“在战争中学会战争,在游泳中学会游泳”。如果读者希望深入某个领域,本书以及教学资源包还提供了丰富的资源链接,作为进一步学习的起点。 年轻的Rust潜力无限,它正在定义编程的未来。鉴于目前中文版Rust相关书籍稀缺,本书希望能填补这一空白,并推动Rust编程语言进入高校计算机教育课程体系,为即将到来的Rust编程语言大规模应用培养更多的人才。Trust Rust,trust yourself,让我们一起拥抱这场技术变革,用Rust开启编程的新篇章! 资料获取 可以在https://gitee.com/gavinzheng731/rustprogrammingbook获得本书的示例程序、相关文件、论文、PPT课件等配套资源; 镜像站为https://github.com/gavinzheng/RustProgramBook。这些资料也可以在本书的教学资源包中找到。 致谢 感谢催生本书的出版界的朋友: 清华大学出版社郭赛编辑,Springer朱伟博士,AM文化合伙人周瑾瑜女士。感谢武汉北大高科软件股份有限公司罗铮先生、王涛先生、邓昕先生; 北科信链数字有限公司戴天年先生、成璋先生; 深圳技术大学城市交通与物流学院罗钦先生; 武汉城市职业学院教务处处长肖静教授,校工会常务副主席程华平老师,计算机与电子信息工程学院院长向健极教授,党总支书记黄毅老师,副院长王世刚副教授、王社副教授,软件教研室黄涛老师,教学办公室主任叶飞老师、钟雯老师; 中通服湖北公司区块链研究院卢赓先生; 深圳安复每天王振宇先生、曹彦能女士对本书编写工作的支持。 作者 2025年3月