/bikeshed

Initial rallying point for ideas and PRs around solving discoverability of Rust crates for production use.

Primary LanguageShell

prod

Join the chat at https://gitter.im/production-rs/Lobby

Top Level Categories
Core
Rust
Essentials
Network Essentials
Network
Security Essentials
Serialization and Deserialization
Common
Database
HPC and Data Science
Application Essentials
Testing

Core

Category Crate URL
Time chrono https://crates.io/crates/chrono
Static Global Variables lazy_static https://crates.io/crates/lazy_static
Data Parallelism rayon https://crates.io/crates/rayon
Concurrency Nominate
Asynchrony futures https://crates.io/crates/futures
Parallelism Nominate

Top

Rust

Category Crate URL
Cargo Outdated cargo-outdated https://crates.io/crates/cargo-outdated
Cargo Watch cargo-watch https://crates.io/crates/cargo-watch
Formatting Consistency rustfmt https://crates.io/crates/rustfmt
Linter clippy https://crates.io/crates/clippy

Top

Essentials

Category Crate URL
Logging log https://crates.io/crates/log
Structured Logging slog https://crates.io/crates/slog
Log File Appenders Nominate
Regex regex https://crates.io/crates/regex
Temporary File Handling tempfile https://crates.io/crates/tempfile
Random Numbers rand https://crates.io/crates/rand
Semver semver https://crates.io/crates/semver
IO Nominate
Scheduling/Timer/cron Nominate

Top

Network Essentials

Category Crate URL
URL Handling url https://crates.io/crates/url
HTTP Client reqwest https://crates.io/crates/reqwest
Bit handling Nominate
Non-blocking IO tokio-core https://crates.io/crates/tokio-core

Top

Network

Category Crate URL
Protocols Nominate
Servers Nominate
RPC Nominate

Top

Security Essentials

Category Crate URL
SSL/TLS native-tls https://crates.io/crates/native-tls
Cryptography ring https://crates.io/crates/ring
Authentication Nominate

Top

Serialization and Deserialization

Category Crate URL
Command Line Parsing clap https://crates.io/crates/clap
Command Line Parsing Alt docopt https://crates.io/crates/docopt
TOML Nominate
JSON serde_json https://crates.io/crates/serde_json
YAML serde_yaml https://crates.io/crates/serde_yaml
CSV csv https://crates.io/crates/csv
xml Nominate
mime Nominate
Parser Generators Nominate

Top

Common

Category Crate URL
Platform Bindings Nominate
Process Management Nominate
Memory Management Nominate
File and directory handling Nominate
Functional Programming and Control Flow Nominate
Compression Nominate
Web Frameworks Nominate
Template Engines Nominate

Top

Database

Category Crate URL
Database Connection Pooling r2d2 https://crates.io/crates/r2d2
ORM diesel https://crates.io/crates/diesel
MySQL Nominate
Postgresql postgres https://crates.io/crates/postgres
Elasticsearch elastic https://crates.io/crates/elastic

Top

HPC and Data Science

Category Crate URL
Machine Learning Nominate
Scientific Computing Nominate
Data Structures Nominate
Math Nominate
Statistics Nominate

Top

Application Essentials

Category Crate URL
Terminal termion https://crates.io/crates/termion
Image libraries image https://crates.io/crates/image
GUI Nominate
OpenGL Nominate
Sound Nominate

Top

Testing

Category Crate URL
Unit Testing Nominate
Test Frameworks Nominate
Integration Testing Nominate
Mocking Nominate

Top

About

All crates on this list are open for discussion and updating, if you have a compelling reason (based on production experience) to choose another crate for a category, please file an issue.

Have a look at the founding doc: https://github.com/production-rs/bikeshed/blob/master/INFO.md

Alternatives

If a crate is flagged as an 'alternative' crate for a given category it often means that it is an older crate with lots of established users that still enjoys widespread support, but is not necessarily the first choice for new projects. It can also indicate that the alternate approach or API of the crate appeals to large set developers that are interested in solving the same problem.

Nomination

Please file issues for now.

Todo

  • Align with https://crates.io/categories
  • Nomination process guidelines
  • Issue labels
  • Tighten up or extend categories
  • Establish Panel
  • Contribution guidelines, code of conduct
  • Project details (license, reasons, cargo-esr rating, etc)
  • Category detail/writeup
  • Other candidates for categories

Other Lists

TODO: Link to individual pages of data...