Skip to content

Latest commit

 

History

History
268 lines (162 loc) · 2.81 KB

README.md

File metadata and controls

268 lines (162 loc) · 2.81 KB

A list of useful and relatively mature crates for various tasks, for you need a de-facto-standard way of doing stuff.

Basically, if there's an obvious answer to a common "how do I do X" question, or if someone might ask "Why isn't X in std?", X should go here. This shouldn't become awesome-rust, we have awesome-rust for that.

Another excellent source is stdx, check it out.

Rules:

  • At most two crates that do more or less the same thing
  • If there's no halfway decent docs and readme, leave it out
  • If it's not a go-to solution for the task it's doing, leave it out
  • If you're not sure, leave it out

If you have a suggestion, amendment, flames, or other communication, open an issue. Or better, a pull request.

To do: Short descriptions, links to crates, note whether or not it is pure rust, better tables, link to arewe*yet...

Async I/O

  • futures-rs
  • mio
  • tokio

Bit mongling/endianness stuff

  • bitflags
  • byteorder

Command line parsing

  • clap
  • docopt

Compression

  • bzip2
  • flate2
  • zip

Control flow abstraction

  • itertools

Cryptography

  • crypto
  • ring

Data structures

  • arrayvec
  • ndarray
  • vec_map
  • phf
  • typemap
  • petgraph
  • smallvec

Databases

  • diesel

File/directory stuff

  • seek_bufread
  • tempdir

Graphics

Low-level

  • gfx
  • glium

Higher-level

  • conrod?
  • imgui-rs?

Windowing/context creation

  • glfw
  • glutin
  • sdl2

Font loading/rendering

  • rusttype

Misc

  • genmesh

Image loading/saving

  • image

Kitchen sink

  • monster
  • odds

Languages

Lua

  • lua

Other

  • dyon
  • gluon

Logging

  • log
  • slog

log backends (needs sorting through)

  • emit
  • env_logger
  • fern
  • ulog

Other stuff:

  • log
  • loggerv
  • mowl
  • simplelog

Math

  • num (traits, complex/bigint/rational number types, iterators, all sorts of nice stuff)

Numerical traits/generics

  • try_from

Vector algebra/computer graphics/physics

  • nalgebra
  • cgmath

Misc

  • noise

Memory management

  • typed_arena

Misc stuff

  • semver

Parsing/formatting

JSON

  • json
  • serde_json

TOML

  • toml

Parser combinators

  • combine
  • nom

Parser generators

  • lalrpop

Platform-specific interfacing

Windows

  • winapi

Linux

Mac

Misc

  • num_cpus

Parallelism

  • threadpool
  • thread-scoped
  • rayon

Random numbers

  • rand

Reference/lifetime mongling

  • lazy_static
  • owning_ref
  • rental
  • thread_local

Serialization

  • rustc_serialize
  • serde

Sound

Decoding

Playing

  • alto
  • ears

Text/string/templating stuff

  • handlebars
  • regex
  • symtern
  • tera

Text/terminal user interface

  • rustyline
  • termion

Time

  • chrono
  • time

Web stuff

HTTP libraries

  • hyper

Client

  • reqwest

Web frameworks

  • iron
  • pencil

Misc

  • cookie
  • formdata
  • idna
  • url
  • mime
  • uuid