Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List of foundational / core crates #22

Open
budziq opened this issue Jul 13, 2018 · 7 comments
Open

List of foundational / core crates #22

budziq opened this issue Jul 13, 2018 · 7 comments

Comments

@budziq
Copy link

budziq commented Jul 13, 2018

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 rust-lang-nursery/rust-cookbook#370

@AndyGauge
Copy link

AndyGauge commented Jul 17, 2018

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 vs rustls

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

@AndyGauge
Copy link

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

@budziq
Copy link
Author

budziq commented Jul 20, 2018

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.

@KodrAus
Copy link
Collaborator

KodrAus commented Jul 23, 2018

@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.

@AndyGauge
Copy link

AndyGauge commented Jul 23, 2018

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.

@budziq
Copy link
Author

budziq commented Jul 24, 2018

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.

@AndyGauge
Copy link

I'd like to add ansi_term

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants