Looking at crates.io, regex looks pretty safe, as it’s authored by “The Rust Project Developers” and includes explicit future compatibility policies. Unfortunately, I can’t find an index of only the crates maintained by the Rust team.
Serde is obviously popular, but at first glance is a giant Swiss Army knife that will likely have lots of updates to keep track of that are completely unrelated to my project (whatever it is). If I search for JSON, I get an exact match result of the json crate, followed by a bunch of serde-adjacent crates, but not serde itself.
Request hasn’t been updated in 4 years, and has a total of less than 7000 downloads.
All these libraries are very well known within the community and are what I would come up with as a complete outsider (I don't think I've written more than a hundred lines of Rust code to this date).
You can also find some pointers here:
I agree that this should be better documented and probably more integrated with crates.io somehow.
Not everyone or every project will have the same desires, though. Sometimes, a fast-moving experimental library is the right choice. The trouble is figuring out which I’m looking at.
If you'll want to update to always be on the latest version of each crate, well that discomfort about them potentially not working is part of the price.
Not everyone does, and that’s fine. I just want to know what a library developer’s stance on it is before I try to use their library.
Because that is the biggest asset from stuff being in the standard library.
To clarify, there are different levels of support on different platforms.
The standard library and 3rd party crates generally have excellent compatibility across mainstream platforms.
libc is barely a standard library, it's almost nothing.
C++ surely does include regex, with serialisation and http scheduled for C++23, or with luck with a TR as intermediate delivery.
Although serialisation depends on static reflection being finalized as well.
I think the definition is meaningless. Rust spends huge amount of resources to test itself and its surrounding ecosystem on tier 1 platforms.
I'm fairly certain regex from c++ std will run like crap, if at all on something with 4MB of RAM.
I am fairly certain that without profiling and defining a test configuration for a set of specific C++ compilers / standard C++ library I won't assert anything about std::regex performance with 4 MB of RAM.
In other words, not all functions in the stdlib of Ada, Pascal, C and C++ can be used in all possible target environments? Sounds like a failure to quality gate those standard libraries.
There aren't an endless number of profiles.
Each platform has different levels of support. Primary being Windows, Mac and Linux, where every pure Rust crate runs.
Std lib makes certain reasonable assumptions, for which it works e.g. malloc exists and panic! is implenented.
The rust ecosystem has done well to converge on certain crates as sort of replacement for missing std features.
In practice (at least in the rust ecosystem), I only need to learn one interface for:
* regex (regex)
* serialization (serde)
* network requests (request)
There are de-facto base crates in the ecosystem.