ecosystem-wg
ecosystem-wg copied to clipboard
List of foundational / core crates
Hi,
Recently the rust-cookbook has started to gain traction again thanks to awesome work of @AndyGauge. Taking this into account I'd like to raise the issue that has already manifested several times in cookbook preparation.
Namely, what are the crates that are considered as the most idiomatic, cleanest, etc. solutions for given tasks that we can present to our community? I strongly feel that surveying and keeping up with the pulse of the community in this regard ought to be part of ecosystem-wg mandate.
cc https://github.com/rust-lang-nursery/rust-cookbook/issues/370
OK, so based on Recipes, I think these are the proposed crates for the next iteration:
-
nom
-
ndarray
-
rsqlite
-
postgres
-
xml-rs
-
num
-
diesel
(very limited scope, just a teaser then point to diesel.rs)
This would effectively add a Database and Science section.
There is recipes that need a crate like:
- using TLS client side/server side
-
native-tls
vsrustls
-
ndarray
vs nalgebra
there's no clear winner
Low level crates like libc
and winapi
and nix
may not be appropriate for the Cookbook audience
This is a very different direction than the cookbok was originally intended though. The Cookbook was supposed to follow the Lib Blitz evaluations. The crates that were upcoming from those evaluations would have been:
-
cfg-if
-
unicode-segmentation
Adding the crates from the Complete Recipe List
- base64
- bitflags
- byteorder
- cc
- chrono
- clap
- crossbeam
- csv
- data-encoding
- env_logger
- error-chain
- flate2
- glob
- image
- lazy_static
- log
- log4rs
- memmap
- num
- num_cpus
- petgraph
- rand
- rayon
- regex
- reqwest
- ring
- same-file
- select
- semver
- serde
- serde_derive
- serde_json
- std
- tar
- tempdir
- threadpool
- toml
- url
- walkdir
Cool, I'd like to have some form of consent from the wg-members before we add new crates. I hoped to establish some form of crate vetting and tagging as being "foundational" / "blessed" by the community. I think that discussion is essential on how to establish which crates are "foundational" and how do we send a message to the community about such list. Do we give badges? Mark these somehow in Cargo. Imho adding crates to cookbook is one of such badges and should not be taken lightly.
@budziq Library evaluations seem to be the way we've achieved this vetting in the past. I would like to come up with some scheme for getting those back on track that feeds from/into our idea of what a fundamental crate is.
The list of crates to evaluate in 2017 mostly came from the most dependend on and unstable libraries on crates.io. That's only going to identify the truly cross-cutting libraries though (which could be exactly how we want to define foundational). We could also broaden our input space a little and look at foundational crates identified within each of the other domain working groups.
I thought that the libs team provided significant input on that list.
I like the idea of reaching out to domain working groups and seeing what they feel is useful for evaluations. I don't think the cookbook should exclude crates that have already gone through stabilization outside of the blitz.
Library evaluations seem to be the way we've achieved this vetting in the past.
@KodrAus I feel that evaluations are a immediate second step after the initial selection. I hoped to establish some relatively lightweight procedure / guideline for choosing which crates get considered / included that we can agree on. We'd like for Cookbook to be expanded with real life uscases (database, xml, science) without needing to wait for full blown evaluations of separate crates. Moreover, the cookbook could be treated as part of the initial vetting procedure (gathering usecases with possible crate candidates from the community via redit/urlo/github issues/online polls)
I don't think the cookbook should exclude crates that have already gone through stabilization outside of the blitz.
@AndyGauge Certainly! On the other hand I do not think that we should limit cookbook to stabilized crates only. If there is a popular enough contender presenting a significant improvement in given usecase, it ought to be enough for cookbook inclusion even if it is not yet stabilized.
I'd like to add ansi_term