标准库实现的归属权

2020 年 7 月 2 日 · Ashley Mannix 代表 Libs 团队

我们的 Rust 项目是一个庞大而多样化的项目。其活动由各个团队进行广泛协调,为社区提供空间,让他们能够发现并为对他们重要的事情做出贡献。我们正在试行 Libs 团队和 Compiler 团队之间关于标准库活动的重组。未来,Libs 团队将只拥有标准库的公共 API,而 Compiler 团队将拥有其实现。这种关注点分离的目标是更好地适应两个团队的利益,从而更好地支持标准库的需求。这很像 Lang 团队和 Compiler 团队之间现有的关系,其中 Lang 团队拥有 Rust 语言设计,而 Compiler 团队拥有实现该设计的代码。我们将在今年晚些时候重新评估试验的进展情况,并决定是否将此变更永久化。

Libs 团队传统上会选择那些喜欢设计 API 的成员。他们会花费大量时间支持更广泛的 Rust 生态系统中的库,并将惯用方法整合到标准 API 中。这使得标准库本身几乎没有发展空间,而这需要持续和专注的关注。

作为一个代码库,标准库的特点是矛盾的专业化。它拥有对编译器内部的特权访问权限,将深入的领域知识融入到算法中(例如,您是否想过高效地将浮点数格式化为文本需要什么?),平台特定的集成以及大量棘手的非安全代码。

Compiler 团队习惯于持续和专注地关注大型项目。标准库正是 Compiler 团队已经拥有多年工作经验的代码库类型。

但是,团队不是孤立的,在实践中,API 设计和实现将相互影响。这只是 Libs 团队和 Compiler 团队之间为使标准库活动更加集中的共同理解。

这些活动中是否有任何一项吸引您?也许您有兴趣将惯用方法识别并捕获为标准 API。如果是这样,您可以在这里找到 Libs 团队。也许您想在一个几乎每个 Rust 开发人员都使用的大型代码库上工作。如果是这样,您可以在这里找到 Compiler 团队。也许您喜欢两者,甚至介于两者之间的任何东西!无论如何,标准库总有适合您的东西。