As Rust continues to grow and mature, should we empower the official team or the community to make more decisions?
For instance, there's the well-known case of the "request" package name being held by a crate that hasn't been updated for nine years, forcing the actually widely-used library to adopt "reqwest" as its name simply due to the uniqueness requirement of package names.
This situation seems rather absurd, and it's making it increasingly difficult for new package authors to choose concise and accurate names for their packages (regardless of how good their packages might be).
Therefore, I propose that we should establish certain mechanisms to reclaim these valuable package names that are currently unused or abandoned.
Therefore, I propose we should implement mechanisms to reclaim valuable package names.
I suggest that someone should be able to apply for name reclamation through the community when all of the following conditions are met:
:
Has not been updated for 12 months, or
Was created within the last 6 months and has fewer than five non-author Issues or PRs (these numbers are approximate, meant to indicate low activity)
The proposal demonstrates that the new crate is a superior successor to the original one
Other compelling evidence that supports the reclamation request
Rust consistently avoids carrying historical baggage, clearly, this should also be considered as.
It’s already notable IMO that for a while now, many of the name squatting crates do actually get deleted every so often; and since recently-ish crate authors can also delete crates themselves under certain conditions.
I think each such step should be small, and leave some time to observe the effects it has…
As a fun exercise, you can watch what crates were recently deleted in the crates index repo, which sometimes includes some concise/good names being reclaimed.
Interestingly, even in the single-letter crates category some apparently squatted, deleted and re-claimed crates are fairly recent actually ^^
No comment about how difficult it is to find good available names on crates.io but not publishing on crates.io has another downside. If your crate is not on crates.io, anyone using your crate as a dependency also cannot publish on crates.io. Since, as far as I know, crates.io does not allow external dependencies.
The decision might indeed appear somewhat drastic, but this firmness seems necessary - much like how we reclaimed "gen" as a reserved keyword in Rust 1.85.
When facing future possibilities, we should implement a garbage collection mechanism to ensure Rust's healthy development before ambiguities arise.
While original crate authors do have the right to claim those excellent names, there's a corresponding responsibility to maintain them properly. This imbalance between ownership and maintenance obligations doesn't align with Rust's philosophy of responsible stewardship.
There's still a tension here that literally any use of an "abandoned" package name, at any time means removing it is a breaking change; you should be able to check out your code as of 10 years ago and still build it. (Not to mention package mirrors/caches that can get arbitrarily large)
I'm impressed that it's already being looked at, therefore!
Crates.io has existed long before AWS knew about the existence of Rust and will continue to exist when AWS drops sponsoring. By the time AWS could potentially consider to stop sponsoring it, I expect https://github.com/rust-lang/rfcs/pull/3724 or something similar to be fully implemented making mirroring of crates.io possible without having to trust the entity mirroring it, which would significantly reduce load on upstream crates.io if other big players start mirroring crates.io for builds running on their CI platform.
Note that I can't think of a single thing that we do through community voting right now. They're just too prone to brigading or other kinds of popularity contests to use them to make decisions.
Surveys to collect feedback, FCPs to make sure anyone can weight in, etc? Absolutely. But deciding based on open polls? No.
Yes, what you say makes a lot of sense. My original intention was to solve the problem of crate name squatting. As for how to solve it, what I proposed is just a preliminary solution. If there is a more democratic method that is independent of status or position, that would naturally be the best.
Is there a formal theorem along the lines of "All the good names are taken"? The longer a system persists and accepts new users, the greater scarcity of good names.
This is a common experience across a number of sectors, not just crate names or user handles. Our local housing developers complain that all the good street names are taken.
This is an interesting concept, and definitely relevant. Although all the cases I had in mind fall under the human-readable value category. The dynamic I had in mind is more derivative of Malthusian scarcity, except the resource everybody is using, the set of available names, only shrinks and never grows. The more successful the system becomes (i.e. the more participation increases), the more likely it is that all the good names are taken.
Note that the private commercial sector wrestles very actively with this gorilla. If someone wanted to hire me as a speaker, they could offer to venmo me money for an uber to the airport, put me up in an air-bnb, and zoom my talk all over the world, and I would understand what they meant. Not to put a band-aid on the issue.