Is there a crate ranking system for me to find the best, the most reliable, and the most promising crates in each cateogry? If there is none, I think we may need one. Thanks.
Ranking systems are subjective and can be "gamed". Further, a well ranked crate, while good from a larger community perspective, may not be the best option for the specific use case at one's hand. In case there are multiple options, I'd rather inspect a few - their docs, public interface, outstanding tickets, performance among others - and take a call.
On the other hand, there already are well regarded crates for almost all typical use cases (Serde for serialization, tokio for async etc.) which one can learn of by just "hanging-out" in the community.
Personally I think such a ranking system would be detrimental. If it's even possible to make devise one that makes any sense at all. We certainly don't need one. How is one to even define categories? Or such simplistic things as "best"?
Engineering by "likes" is not, well, engineering.
The whole thing would end up like Stack Overflow where often I find the most highly rated answer to a question is sub-optimal, out of date or even down right wrong! Meanwhile a correct solution can have no votes at all!
cargo-crev is working (among other things) towards ranking crates, and collecting list of alternatives.
You can find crates matching given keyword, sorted by number of reviews:
[I] 11-27 14:39 dpc@futex ~/l/breeze (master)> cargo crev crate search slog 2 log 1 slog-term 1 slog-async 1 syslog 0 slog 0 slog-scope 0 slog-stdlog 0 slog-json 0 slog-envlogger 0 slog-extra
and also list alternatives to a given crate:
[I] 11-27 22:37 dpc@futex ~/l/c/cargo-crev (master) > cargo crev crate info term --- package: source: "https://crates.io" name: term version: 0.6.1 details: verified: false loc: 2262 geiger-count: 125 has-custom-build: false unmaintained: true recursive-details: verified: false loc: 280287 geiger-count: 2196 has-custom-build: true unmaintained: true dependencies: - source: "https://crates.io" name: winapi version: 0.3.7 - source: "https://crates.io" name: dirs version: 2.0.2 rev-dependencies: - source: "path+file:///home/dpc/lab/crev-dev/cargo-crev/cargo-crev" name: cargo-crev version: 0.13.0 alternatives: - source: "https://crates.io" name: yansi - source: "https://crates.io" name: termcolor - source: "https://crates.io" name: crossterm
Note: these features are still quite new, not many crates have been annotated yet, and there will be many improvements in the future.
It already exists, and IMHO works very well:
Is there perhaps some "well respected" authority who is watching and curating crates for specific uses? For example, I would love to find someone who I can trust who is maintaining a blog/recommendation web site on all crates related to network programming / web programming and the new async/.await capability to make suggestions on the best path forward. As rust continues to gain steam, each developer having to evaluate all competing crates will apply negative pressure to its adoption IMO.
Not that I know of. That would be a lot of work, especially considering it would probably be done in free time. That's why I believe this sort of stuff can only be done collaboratively, and mostly by collecting pieces of information prepared by many, many people.
I would rather see a curated site with pros and cons listed for crates, and the crates then organized based on functionality.
Now, to keep this list non-partial, that's another story.
I tried to shepherd an RFC for this; the best we could come to a consensus on was "more badges and default sort by the number of downloads in the last 90 days".