Hacker News new | ask | show | jobs
by thesuperbigfrog 1002 days ago
>> What would a non-anemic STD look like?

More like the standard libraries found in C++, Ada, Go, or Python.

Why can't Rust do something like C++ does with Boost?

If everyone is using a given crate (for example, serde) why not "adopt" it into the standard library? Give the maintainer a plaque that looks cool and a small fee for initial adoption and a recurring stipend for continued maintenance.

The crate becomes official, gets guaranteed maintenance and there is less need to reinvent the wheel or worry that a good crate will go unmaintained or have issues.

1 comments

Note that boost is also not the C++ standard library.

A few people have tried to make boost-like meta-packages in Rust over the years, but in practice, people don’t use them, and they die out.

Also, like, serde's main maintainer is also a member of the libs team, so it being moved into the standard library meaning more maintenance doesn't really make sense to me.

>> Note that boost is also not the C++ standard library.

I know, but many components that are now in the C++ standard library were previously in Boost or were heavily influenced by / inspired by Boost:

https://stackoverflow.com/questions/59912393/boost-libraries...

Similar events also happened in Java 8 with the Joda time library:

https://www.joda.org/joda-time/

>> serde's main maintainer is also a member of the libs team, so it being moved into the standard library meaning more maintenance doesn't really make sense to me.

I did not know that.

I was just using serde as an example of a widely-used crate that feels essential enough to be included in the Rust standard library.

At what point does a third-party crate become so useful that it might be considered for inclusion in the Rust standard library?

Is there a process for adding crates to the Rust standard library?

If so, how do such crates get nominated and approved?

The process is roughly the same as the boost one: the rust project maintains a number of packages outside the standard library, such as regex. Projects may graduate from the community to being owned by the project. And then, if the team decides that it's a good decision, a package owned by the project can move into the standard library.

It happens pretty rarely because there is not much advantage to doing so, but the path does exist.