作者丨Evrone
译者 | 无明
策划 | 小智
Rust 是 Mozilla 基金会的一个雄心壮志的项目,号称是 C 言语和 C++ 的继任者。一向以来,C/C++ 中的一些基本问题都没能得到处理,比方分段过错、手动内存办理、内存走漏危险和不行猜测的编译器行为。Rust 的诞生就为了处理这样一些问题,并提高安全性和功能。
Evrone(一家软件公司)在许多项目中运用了 Rust,咱们的工程师们这方面在积累了丰厚的经历。在这篇文章中,咱们将共享 Rust 的一些首要特性。
首要特性:
强静态类型;
无废物收回以及经过指针手动操控数据存储方位的才能;
强壮的内置静态代码分析器,有助于防止与内存办理和多线程相关的问题;
C 言语风格的语法,具有简略的要害字。
Rust 简史
Graydon Hore 于 2008 年主张 Rust 项目。2009 年,Mozilla 表达了对这个项目的爱好。一年之后,项目正式揭露。2012 年,Rust 的第一个 alpha 版别发布。一年后,Servo Web 引擎(根据 Rust)开发人员宣告,他们得到了三星公司的支撑,将引擎移植到 ARM 架构。
Rust 1.0 于 2015 年 5 月发布。同年,Rust 在 Stack Overflow 发布的最受欢迎开发东西排行榜中排名第三。从 2016 年至今,Rust 一向高居榜首。
为何需求运用 Rust
长处
一致的编译器,供给了一个内置的包生成器和办理器、测验体系和文档生成器;
安全的内存办理,有助于防止分段过错;
笼统才能,让手动内存办理变得更简单;
供给了常见的编译过错修正主张;
只能在非安全代码中运用指针——安全代码中只包含指向切当存在的目标的链接;
与 Mac 和 Unix 宗族体系具有十分杰出的兼容性。
缺乏
没有类和承继机制,难以编写面向目标的代码;
编译器过分严厉,有时候对内存地址的约束过多。
Rust 的运用场景
Rust 支撑首要的编程范式:面向目标编程、并发编程、函数式编程和进程编程。它供给了满足的内存办理才能,一起又满足安全,让它成为操作体系和要害运用程序的开发东西。它的首要缺点是硬件厂商对它支撑不行,厂商更喜爱运用 C/C++。下面是一些运用 Rust 开发的软件项目:
Redox,一个根据微内核的 Unix 宗族操作体系,该操作体系中的大部分软件也是运用 Rust 开发的;
Servo,多线程 Web 引擎;
Firecracker,用于无服务器环境的微虚拟化体系。
运用 Rust 开发的区块链体系
根据分布式账本的体系有必要可以以最小的设备核算负载快速地处理恳求。C++ 很合适用来完结这项使命,而运用 Rust 开发区块链体系将会愈加高效。下面这些都是值得重视的事例:
Parity.io——以太坊和比特币的一个客户端;
Polkadot.network——异构区块链网络;
Exonum,一个根据区块链的项目结构;
MaidSafe,一个分布式数据处理和存储体系;
Solana,一个用于开发 Web 区块链运用程序的渠道。
Rust 可拿来开发 Web 项目:Rust 的 SDK 可用于前端和后端开发。例如,运用 Yew(创意源自 React 和 Angular)开发客户端,运用 Actix-web(一个高功能结构,支撑 WebSockets、TLS 和 HTTP/2.0)开发 Web 服务器。
其他东西还包含:rocket、conduit、gotham、pencil。
一些成功的 Rust 项目
Dropbox,一种云存储服务;
OpenDNS,一种用于创立公共 DNS 服务器的 Web 服务;
Coursera,由斯坦福大学 IT 教授创立的教育门户网站;
运用 Rust 开发的机器学习项目。
运用 Rust 开发的神经网络好像十分有远景。由于 Rust 的高功能和底层内存操控才能,Rust API 能成为神经网络范畴十分盛行的开发东西。
但现在运用 Rust 开发机器学习运用还处于试验阶段,Rust 生态体系还短少可用于开发相似 Python 神经网络的库。
Rust 的未来
C++ 现已统治了编程言语范畴近 40 年,成为了一个行业标准,并坚持这个头衔至今。Rust 正在活跃演进,企图处理 C++ 和其他编程言语傍边最为丧命的缺点。
在 Evrone,咱们运用 Rust 开发了一个大型的连锁餐厅 ERP 体系。其间微服务部分运用 Rust 开发,为用户更好的供给离他们最近的餐厅的数据。
Rust 的另一个运用——也便是咱们的继续集成服务 Vexor。在这个服务中,Rust 担任使命的办理和调度以及日志办理,并作为使命阻隔履行署理的根底。
参阅链接:
https://hackernoon.com/why-rust-is-meant-to-replace-c-xf8l3yei
点个在看少个 bug