今天,我们非常激动地宣布 Rust 1.0 Beta 版的发布!Beta 版发布标志着向 1.0 版本迈进的一个非常重要的“状态转换”。特别是,在 Beta 版中,所有计划在 1.0 版本中稳定的库和语言特性都已标记为稳定。因此,Beta 版代表了 Rust 1.0 将包含的准确预览。
要查看自 1.0-alpha2 以来的更改,请参阅发行说明。
Beta 版的发布也标志着我们在稳定性方法上的一个转折点。在 alpha 周期中,允许使用不稳定的 API 和语言特性,但会触发警告。从 Beta 版开始,使用不稳定的 API 将会报错(除非您正在使用 Nightly 构建或从源代码构建)。
Rust 生态系统持续增长。crates.io 仓库刚刚超过 100 万次下载,并有超过 1,700 个 crates 可用。现在,crates.io 中的许多顶级 crates 都可以只使用稳定的 Rust 构建,并且其余部分的移植工作正在进行中。因此,我们现在建议新用户从 Beta 版开始,而不是 Nightly 构建,并且 rustup 脚本将被修改为默认安装 Beta 版。(但是,如果您的某些依赖项尚未更新,则很容易切换到 Nightly 构建。有关详细信息,请参阅安装页面。)
在 Beta 周期期间会发生什么?
最终的 Rust 1.0 版本计划于 5 月 15 日发布 - 恰好在六周后。 在此期间,我们期望将大部分精力投入到修复错误、改进文档和错误消息,以及其他方面改进最终用户体验。我们不打算对稳定的内容进行功能更改,当然,如果发现缺点或问题,我们可能会对库 API 进行小的更正或添加(但是,此类更改的门槛相对较高)。
虽然我们不希望为 1.0 版本添加任何新功能(或主要的新 API),但这并不意味着我们将完全停止对其进行研究。 恰恰相反!按照 火车模型,计划是在主分支上继续开发新功能,与 Beta 版并行。当然,我们会在发布最终的 1.0 版本的同时发布 1.1 版本的 Beta 版,因此您不必等待太久就可以开始使用该工作成果。
为了帮助确保我们在添加新功能时不会意外引入破坏,我们还在开发一个令人兴奋的新 CI 基础设施,以允许我们监控哪些软件包正在使用 Nightly 版本进行构建,并在整个 Rust 生态系统中检测回归,而不仅仅是我们自己的测试基础。此基础设施仍处于开发阶段,但您可以在此处查看示例报告。
社区的成就
与往常一样,此 Rust 版本的发布是广大 Rust 社区的成就。感谢每位参与 RFC 过程的人,并特别感谢此版本的 170 位贡献者。
Aaron Turon
Aaron Weiss
Adam Jacob
Adenilson Cavalcanti
Adolfo Ochagavía
Ahmed Charles
Alan Cutter
Alex Crichton
Alexander Bliskovsky
Alexander Campbell
Alexander Chernyakhovsky
Alexis
Alexis Beingessner
Amol Mundayoor
Anders Kaseorg
Andrew Hobden
Andrew Paseltiner
Angus Lees
awlnx
Barosl Lee
bcoopers
Björn Steinbrink
bombless
Brian Anderson
Brian Brooks
Brian Leibig
Camille Roussel
Camille TJHOA
Carol Nichols
Caspar Krieger
Ches Martin
Chloe
Chris Wong
Cody P Schafer
Corey Farwell
Corey Richardson
Dabo Ross
Dan Burkert
Dan Connolly
Dan W.
Daniel Lobato García
Darin Morrison
Darrell Hamilton
Dave Huseby
David Creswick
David King
David Mally
defuz
Denis Defreyne
Drew Crawford
Dzmitry Malyshau
Eduard Bopp
Eduard Burtescu
Eduardo Bautista
Edward Wang
Emeliov Dmitrii
Eric Platon
Erick Tryzelaar
Eunji Jeong
Falco Hirschenberger
Felix S. Klock II
Fenhl
Flavio Percoco
Florian Hahn
Florian Hartwig
Florian Zeitz
FuGangqiang
Gary M. Josack
Germano Gabbianelli
GlacJAY
Gleb Kozyrev
Guillaume Gomez
GuillaumeGomez
Huachao Huang
Huon Wilson
inrustwetrust
Ivan Petkov
Ivan Radanov Ivanov
Jake Goulding
Jakub Bukaj
James Miller
Jessy Diamond Exum
Jihyun Yu
Johannes Oertel
John Hodge
John Zhang
Jonathan Reem
Jordan Woehr
Jorge Aparicio
Joseph Crail
JP-Ellis
Julian Orth
Julian Viereck
Junseok Lee
Kang Seonghoon
Keegan McAllister
Kevin Ballard
Kevin Butler
Kevin Yap
kgv
kjpgit
Lai Jiangshan
Leonids Maslovs
Liam Monahan
Liigo Zhuang
Łukasz Niemier
lummax
Manish Goregaokar
Markus Siemens
Markus Unterwaditzer
Marvin Löbel
Matt Brubeck
Matt Cox
mdinger
Michael Woerister
Michał Krasnoborski
Mihnea Dobrescu-Balaur
Mikhail Zabaluev
Ms2ger
Murarth
Nicholas Bishop
Nicholas Mazzuca
Nicholas
Nick Cameron
Niko Matsakis
nwin
Oliver Schneider
Or Neeman
Pascal Hertleif
Patrick Walton
Paul ADENOT
Paul Osborne
Peter Elmers
Phil Dawes
Philip Munksgaard
Piotr Czarnecki
Pyry Kontio
Raphael Nestler
ray glover
Ricardo Martins
Richard Diamond
Richo Healey
Ruud van Asseldonk
Ryan Prichard
Sae-bom Kim
Scott Olson
Sean McArthur
Sébastien Marie
Seo Sanghyeon
Simonas Kazlauskas
Stepan Koltsov
Steve Klabnik
Steven Crockett
Steven Fackler
Tamir Duberstein
Tero Hänninen
Tiago Nobrega
Tobias Bucher
Tom Jakubowski
Trent Nadeau
Tshepang Lekhonkhobe
Ulrik Sverdrup
Vadim Chugunov
Vadim Petrochenkov
Valerii Hiora
Vladimir Pouzanov
Vojtech Kral
Wangshan Lu
Wesley Wiser
York Xiang