Skip to content

Ownership of the standard library implementation post #626

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 2, 2020
Merged
18 changes: 18 additions & 0 deletions posts/inside-rust/2020-06-23-Ownership-Std-Implementation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
layout: post
title: "Ownership of the standard library implementation"
author: Ashley Mannix
team: The Libs team <https://www.rust-lang.org/governance/teams/library>
---

Our Rust project is a large and diverse one. Its activities are broadly coordinated by teams that give the community space to find and contribute to the things that matter to them. We’re trialing a reorganization of standard library activities between the Libs and Compiler teams. Going forward, the Libs team will own just the public API of the standard library, and the Compiler team will own its implementation. The goal of this separation of concerns is to better suit the interests of both teams to better support the needs of the standard library. Why do we think this is necessary?

The Libs team traditionally selects members who like to design APIs. A lot of bandwidth is spent supporting libraries in the wider Rust ecosystem and working to consolidate idioms into standard APIs. This leaves little room for development of the standard library itself, which takes a lot of consistent and dedicated attention.

As a codebase, the standard library is paradoxically specialized. It has privileged access to compiler internals, deep domain knowledge baked into algorithms (have you ever wondered what it takes to efficiently format a float as text for instance?), platform-specific integration, and a lot of tricky unsafe code.

The Compiler team is used to giving consistent and dedicated attention to big projects. The standard library is exactly the kind of codebase the Compiler team already has years of experience working on.

Teams aren’t bubbles though, and in practice API design and implementation are going to influence each other. This is just a shared understanding between the Libs and Compiler teams to make standard library activities more focused.

Do any of those activities appeal to you? Maybe you’re interested in identifying and capturing idioms as standard APIs. If so, you can find the Libs team [here](https://forge.rust-lang.org/libs/index.html). Maybe you’d like to work on a big codebase used by almost every Rust developer. If so, you can find the Compiler team [here](https://forge.rust-lang.org/compiler/index.html). Maybe you like the sound of both and anything in-between! Whatever the case, the standard library has something for you.