从今年 3 月份看到有人打算用 Rust 重写 ZeroMQ、我开始认真学习 Rust 语言,到后来 6 月份开始着手实现,再到现在 0.1
版即将达成,前后也有小半年了。今天,我打算在这里把当前的设计总结一下,也顺便试图招募志愿者一起来做开发。
项目地址:https://github.com/zeromq/zmq.rs
没错木哈哈,被收编成了 ZeroMQ 官方项目了,所以一定来一起做哦。
关于本文:8 月份的草稿啊!这都年底了,真是醉了。下个月(2015 年 1 月)北京有个 Rust 的聚会,打算分享这个项目,所以现在果断删掉未完成章节,把能发的先发出来。
Rust 语言
忽然意识到之前几篇《Rust 语言学习笔记》一直没有介绍过 Rust 语言,这里一并补齐。
Rust 语言是几种下一代编程语言中较为优秀的一款系统级编程语言,最显著的特点就是运行时几乎不崩溃、高并发无数据竞争,还有就是跑的贼拉快。
相较于应用级编程语言如 Java 或 Python,Rust 作为一款系统级编程语言,天生被设计用来开发系统软件诸如操作系统、设备驱动或编译器等,与 D 语言、Go 语言齐名(大家对 Go 语言是否是系统级编程语言有争议),是 C++ 继位者的候选人。因此,Rust 理所应当是编译型的语言。依托于 LLVM,Rust 在编译器(Rust 编译器前端系 Rust 语言本身实现,即所谓的自举)上大下功夫,通过“所有权”的概念将内存管理的最佳实践整合在了编译期,在编译期保证了运行时的内存安全,且没有使用垃圾回收机制(垃圾回收是 Rust 的一种可选的额外工具),运行速度不打折扣。这种对内存管理的高要求,也让程序员可以更容易地用 Rust 语言编写正确的高并发程序,自然地实现类似 Erlang 的并发模型。另外受 Haskell 的熏陶,Rust 语言对函数式编程也是非常友好的——我自己认为要比 Python 函数式多了。另外,Rust 的语法一点也不诡异,如果您写过 C/C++/Java/Python/Ruby,您会觉得很多语法似曾