Rust的2018路线图

2018年3月12日·铁锈核心团队

每年Rust社区聚在一起设置路线图。今年,除了调查,我们推出呼吁发布博客文章12月,结果在里面100篇博客帖子写了几个星期。结束结果是最近发生的2018年路线图RFC.

锈蚀:2018版

今年,我们将交付锈蚀2018,标志着自1.0起生锈(又名Rust 2015)。

我们将继续像往常一样每六周发布一次。但我们会的指定在今年第三季度发布(Rust 1.29-1.31)为生锈2018。新版《铁锈》将成为该功能的巅峰之作全年稳定,并将提供完善的文档,工具以及与这些特性相关联的库。

版本的概念是表示Rust进化的主要步骤,其中从整体上看,新功能或习语的集合会改变体验使用Rust。每隔几年,他们都有机会评估一下工作我们以六周为单位交货。讲述一个关于锈迹所在地的更大故事正在进行。并将整个堆栈作为抛光产品发货。

我们希望每个版本都有一个核心主题或重点。将1.0视为“Rust 2015”,我们有:

  • 锈蚀2015:稳定性
  • Rust 2018:生产力

Rust 2018将会是什么?

路线图没有说毫无疑问Rust 2018将发布什么,但我们有一个好主意,我们将在下面介绍主要嫌疑人。

文档改进

Rust 2018发布的部分目标是提供高质量一整套新的和改进的功能以及它们的习惯用法的文档产生。Rust编程语言书籍已经完全在过去18个月内重新编写,并将在全年更新为功能到达稳定的编译器。生锈示例同样会经历今年进行改造。还有很多第三方书籍,比如编程生锈,也达到了印刷。

语言改进

正在进行的最突出的语言工作源于2017年人体工程学主动权。几乎所有接受的倡议RFC都可用在今天晚上,并将在接下来的几天里得到打磨和稳定月。在这些生产力改进中,有几个“头条新闻”将构成发布的主干:

  • 所有权制度改进包括使借贷更加灵活通过“非词汇寿命”、改进的模式匹配集成等等。
  • 特性系统改进包括期待已久的impl特性语法抽象地处理类型。
  • 模块系统改进,专注于提高清晰度和减少复杂性。
  • 发电机/异步/等待:一级异步的工作进展迅速编程支持。

此外,我们预计在Rust 2018发布,包括SIMD(单指令多数据),自定义分配器、和宏2.0.

编译器改进

截止日期锈蚀1.24,增量重新编译可用,并且默认情况下在stable上启用编译器。此功能已经使重建速度明显快于刷新速度构建,但在这一年中,我们预计将继续改进二者都新鲜和重建。编译器性能不应成为Rust 2018的生产力。

工具改进

Rust 2018将发布高质量的1.0版本Rust语言服务器(“RLS”,这是我们IDE集成故事的基础)和生锈(标准Rust代码的格式化工具)。我们将通过稳定自定义注册表、公共依赖项和修订的配置文件系统。我们也是期待进一步的工作货物建造系统集成,Xargo集成,自定义测试框架虽然目前还不清楚有多少人会在Rust 2018之前完成。

图书馆改进

建筑于我们去年的工作,我们将发布1.0版本的这个防锈API指南手册,继续将重要库推到1.0状态,通过改进食谱工作提高可发现性,并使我们将在下文中看到,对特定领域的图书馆进行了大量投资。

网站改进

作为Rust 2018的一部分,我们将彻底检修Rust网站对CTO和工程师都很有用。查找信息应该容易得多帮助评估您的用例的Rust,并了解最新的工具和生态系统改进。

四个目标域

我们在Rust 2018的部分目标是展示Rust在特定的使用领域。我们选择了四个这样的领域进行投资今年的亮点:

  • 网络服务.铁锈的可靠性和低占地面积使其成为非常适合网络服务和基础设施,尤其是在高比例尺。
  • 命令行应用程序(CLI)。Rust的便携性、可靠性、人体工程学和生成静态二进制文件对编写CLI应用程序有很大的影响。
  • Web程序集。“wasm”网络标准允许传送类似本机的二进制文件对所有主要浏览器的支持,但GC支持仍需数年时间。生锈位置极佳以此为目标域,并为来自JS的程序员提供了一个合理的入口。
  • 嵌入式设备.Rust有可能进行编程资源受限的设备更加高效有趣!我们希望嵌入今年计划达到一流水平。

这些领域每年都有一个专门的工作组。这些工作组将以交叉方式工作,与语言、工具、库、,和文档工作。

跨版本兼容性

TL;DR:锈蚀将继续其稳定性保证属于新版本的无障碍更新.

版本对编译器有意义。您将能够书写:

edition=“2018”

在您的Cargo.toml中选择加入给你的箱子换新版本。这样做可能引入新关键字或需要对代码进行调整。然而:

  • 您可以使用古老的无限期版本新的编译器;版本为选择进入.
  • 版本设置在按比率可混搭;可以与依赖项位于不同的版本上.
  • 一个版本中的无警告代码必须在下一个。
  • 与版本相关的警告,例如标识符将成为下一个版本,必须可以通过自动迁移工具轻松修复(锈修复)。只有少数板条箱需要任何选择加入新版本的手动工作而手工作业必须最小值。
  • 大多数新功能都是edition-independent,并且可以在新编译器上使用即使选择了旧版本。

换句话说,新编译器版本的进展与版本;你可以在空闲时迁移,不必担心生态系统兼容性;而版本迁移通常是微不足道的。

2018年其他目标

虽然Rust 2018发布是我们今年的主要关注点,但仍有一些我们希望关注的其他持续关注点。

更好地服务于中级Rustaceans

我们从生产用户那里听到的最强烈的信息之一,以及2017年调查,人们需要更多的资源来理解了解如何使用Rust的概念有效地路线图没有明确规定这些资源的外观-也许应该有几种-但我们承诺社区向这个领域投入大量工作,并以一些坚固的新材料。

社区

连接并授权Rust的全球社区.我们将继续国际化是头等大事,积极打造Rust子社区之间的联系,目前按语言、地理或文化。我们将在全球范围内启动并支持Rust活动,包括进一步RustBridge项目的增长。

培养Rust的团队和团队中的新领导.我们将重构Rust团队结构,以支持更大的规模、灵活性和领导力增长。我们将通过创造更多的启动资源和通过直接的导师关系。

行动号召

与往常一样,在Rust世界中,这里列出的目标最终将是这是包括你在内的全社会共同努力的结果!以下是一些我们最需要帮助的团队。请注意,所有IRC通道均指irc.mozilla.org网络。

  • WebAssembly工作组。将Rust编译到WebAssembly应该是这个Web上快速代码的最佳选择。结账rust-lang-nursery/rust-wasm学习更多并参与其中!
  • CLI工作组在Rust中编写CLI应用程序应该是一种无摩擦的体验——从找到合适的库、编写简明的集成测试到跨平台发布。加入我们rust-lang-nursery/cli-wg帮助我们实现目标!
  • 嵌入式设备工作组.质量、生产力、可访问性:锈蚀可以更好地改变嵌入式行业。让我们在2018年开始这一进程!加入我们https://github.com/rust-lang-nursery/embedded-wg
  • 生态系统工作组我们将为整个生态系统中的重要板条箱提供指导和支持。放入WG-生态系统室我们会把你带到需要帮助的地方!
  • 开发工具团队。开发人员工具(IDE、Cargo、rustdoc、Clippy、Rustfmt、自定义测试框架等)总是有一些有趣的东西需要处理。请访问#rust-dev-tools并与团队聊天!
  • Rustdoc团队。在您的帮助下,我们可以为每个人提供更好的文档。请加入我们IRC上的#rustdoc,我们可以帮助您开始!
  • 发布团队.访问IRC上的#rust-release,参与回归分类和发布生产!
  • 社区团队。我们在社区团队中启动了几个新团队并渴望增加新成员:活动、内容、交换机、RustBridge、调查、,和本地化!查看我们的团队回购或者通过我们的IRC频道#rust-community,了解更多并参与其中!