Rust 1.0 发布公告

2015年5月15日 · Rust 核心团队

今天,我们非常自豪地宣布 Rust 1.0 版本的发布,这是一个旨在使构建可靠、高效系统更加容易的新编程语言。Rust 将对性能的底层控制与高层便利性和安全保证相结合。更棒的是,它在不需要垃圾回收器或运行时的前提下实现了这些目标,从而可以将 Rust 库作为 C 的“直接替代品”使用。如果您想尝试 Rust,Rust 书籍的“入门”部分是您的最佳选择(如果您更喜欢使用电子阅读器,Pascal Hertleif 维护了非官方电子书版本)。

Rust 与其他语言的不同之处在于其类型系统,该系统是对几代 C 和 C++ 程序员锤炼出的“最佳实践”的改进和编纂。因此,Rust 可以为经验丰富的系统程序员和新手提供帮助:经验丰富的程序员会发现他们节省了调试时间,而新手则可以编写底层代码,而无需担心因小错误而导致神秘的崩溃。

Rust 1.0 的意义是什么?

当前的 Rust 语言是经过多次迭代和实验的结果。这个过程对我们来说效果很好:今天的 Rust 比我们最初认为可能实现的更简单、更强大。但是,所有这些实验也使得维护用 Rust 编写的项目变得困难,因为语言和标准库在不断变化。

1.0 版本的发布标志着这种动荡的结束。 此版本是我们对稳定性的承诺的正式开始,因此它为构建应用程序和库提供了坚实的基础。从现在开始,破坏性更改基本超出范围(一些小的注意事项适用,例如编译器错误)。

尽管如此,发布 1.0 并不意味着 Rust 语言“完成”了。我们有很多改进计划。事实上,Rust 的 Nightly 构建已经展示了编译时间的改进(未来会有更多改进),并包含对新 API 和语言功能的工作,例如std::fs关联常量

为了帮助确保编译器和语言的改进尽快进入整个生态系统,我们采用了基于火车的发布模型。这意味着我们将像 Firefox 和 Chrome 网络浏览器一样,每六周发布一次定期版本。为了启动该过程,我们今天还同时发布 Rust 1.1 beta 版和 Rust 1.0。

Cargo 和 crates.io

构建一个真实的项目不仅仅是编写代码,还涉及管理依赖项。Cargo,Rust 包管理器和构建系统,旨在使此操作变得容易。使用 Cargo,下载和安装新库就像在清单中添加一行代码一样简单。

当然,要使用依赖项,您首先必须找到它。这就是 crates.io 的用武之地——crates.io 是 Rust 代码的中央包存储库。它可以方便地搜索其他人的包或发布您自己的包。

自从我们大约六个月前宣布 cargo 和 crates.io 以来,包的数量一直在稳步增长。尽管如此,这仍然是早期阶段,仍然有很多很棒的软件包有待编写。如果您有兴趣构建一个将风靡 Rust 世界的库,那么现在正是时候!

开源和开放治理

Rust 从一开始就是一个开源项目。在过去的几年中,我们一直在不断寻找使我们的治理更加开放和社区驱动的方法。自从我们一年多前引入RFC 流程以来,所有关于 Rust 的重大决策都以 RFC 的形式公开撰写和讨论。最近,我们采用了新的治理模型,该模型建立了一组子团队,每个子团队负责特定领域的 RFC。如果您想帮助塑造 Rust 的未来,我们鼓励您通过以下方式参与:将库上传到crates.io、评论 RFC 或为 Rust 本身编写代码

我们要特别感谢以下人员,他们每个人都在我们上次发布以来(贡献者完整列表在此)做出了更改

  • Aaron Gallagher
  • Aaron Turon
  • Abhishek Chanda
  • Adolfo Ochagavía
  • Alex Burka
  • Alex Crichton
  • Alex Quach
  • Alexander Polakov
  • Andrea Canciani
  • Andreas Martens
  • Andreas Tolfsen
  • Andrei Oprea
  • Andrew Paseltiner
  • Andrew Seidl
  • Andrew Straw
  • Andrzej Janik
  • Aram Visser
  • Ariel Ben-Yehuda
  • Augusto Hack
  • Avdi Grimm
  • Barosl Lee
  • Ben Ashford
  • Ben Gesoff
  • Björn Steinbrink
  • Brad King
  • Brendan Graetz
  • Brett Cannon
  • Brian Anderson
  • Brian Campbell
  • Carlos Galarza
  • Carol (Nichols || Goulding)
  • Carol Nichols
  • Chris Morgan
  • Chris Wong
  • Christopher Chambers
  • Clark Gaebel
  • Cole Reynolds
  • Colin Walters
  • Conrad Kleinespel
  • Corey Farwell
  • Dan Callahan
  • Dave Huseby
  • David Reid
  • Diggory Hardy
  • Dominic van Berkel
  • Dominick Allen
  • Don Petersen
  • Dzmitry Malyshau
  • Earl St Sauver
  • Eduard Burtescu
  • Erick Tryzelaar
  • Felix S. Klock II
  • Florian Hahn
  • Florian Hartwig
  • Franziska Hinkelmann
  • FuGangqiang
  • Garming Sam
  • Geoffrey Thomas
  • Geoffry Song
  • Gleb Kozyrev
  • Graydon Hoare
  • Guillaume Gomez
  • Hajime Morrita
  • Hech
  • Heejong Ahn
  • Hika Hibariya
  • Huon Wilson
  • Igor Strebezhev
  • Isaac Ge
  • J Bailey
  • Jake Goulding
  • James Miller
  • James Perry
  • Jan Andersson
  • Jan Bujak
  • Jan-Erik Rediger
  • Jannis Redmann
  • Jason Yeo
  • Johann
  • Johann Hofmann
  • Johannes Oertel
  • John Gallagher
  • John Van Enk
  • Jonathan S
  • Jordan Humphreys
  • Joseph Crail
  • Josh Triplett
  • Kang Seonghoon
  • Keegan McAllister
  • Kelvin Ly
  • Kevin Ballard
  • Kevin Butler
  • Kevin Mehall
  • Krzysztof Drewniak
  • Lee Aronson
  • Lee Jeffery
  • Liam Monahan
  • Liigo Zhuang
  • Luke Gallagher
  • Luqman Aden
  • Manish Goregaokar
  • Manuel Hoffmann
  • Marin Atanasov Nikolov
  • Mark Mossberg
  • Marvin Löbel
  • Mathieu Rochette
  • Mathijs van de Nes
  • Matt Brubeck
  • Michael Alexander
  • Michael Macias
  • Michael Park
  • Michael Rosenberg
  • Michael Sproul
  • Michael Woerister
  • Michael Wu
  • Michał Czardybon
  • Mickaël Salaün
  • Mike Boutin
  • Mike Sampson
  • Ms2ger
  • Nelo Onyiah
  • Nicholas
  • Nicholas Mazzuca
  • Nick Cameron
  • Nick Hamann
  • Nick Platt
  • Niko Matsakis
  • Oak
  • Oliver Schneider
  • P1start
  • Pascal Hertleif
  • Paul Banks
  • Paul Faria
  • Paul Quint
  • Pete Hunt
  • Peter Marheine
  • Phil Dawes
  • Philip Munksgaard
  • Piotr Czarnecki
  • Piotr Szotkowski
  • Poga Po
  • Przemysław Wesołek
  • Ralph Giles
  • Raphael Speyer
  • Remi Rampin
  • Ricardo Martins
  • Richo Healey
  • Rob Young
  • Robin Kruppe
  • Robin Stocker
  • Rory O’Kane
  • Ruud van Asseldonk
  • Ryan Prichard
  • Scott Olson
  • Sean Bowe
  • Sean McArthur
  • Sean Patrick Santos
  • Seo Sanghyeon
  • Shmuale Mark
  • Simon Kern
  • Simon Sapin
  • Simonas Kazlauskas
  • Sindre Johansen
  • Skyler
  • Steve Klabnik
  • Steven Allen
  • Swaroop C H
  • Sébastien Marie
  • Tamir Duberstein
  • Tero Hänninen
  • Theo Belaire
  • Theo Belaire
  • Thiago Carvalho
  • Thomas Jespersen
  • Tibor Benke
  • Tim Cuthbertson
  • Tincan
  • Ting-Yu Lin
  • Tobias Bucher
  • Toni Cárdenas
  • Tshepang Lekhonkhobe
  • Ulrik Sverdrup
  • Vadim Chugunov
  • Vadim Petrochenkov
  • Valerii Hiora
  • Wangshan Lu
  • Wei-Ming Yang
  • Will
  • Will Hipschman
  • Wojciech Ogrodowczyk
  • Xue Fuqiao
  • Xuefeng Wu
  • York Xiang
  • Young Wu
  • bcoopers
  • critiqjo
  • diwic
  • fenduru
  • gareins
  • github-monoculture
  • inrustwetrust
  • jooert
  • kgv
  • klutzy
  • kwantam
  • leunggamciu
  • mdinger
  • nwin
  • pez
  • robertfoss
  • rundrop1
  • sinkuu
  • tynopex
  • Łukasz Niemier
  • らいどっと