1
0
Fork 0
mirror of https://github.com/rust-unofficial/awesome-rust.git synced 2024-11-27 11:44:52 -05:00
rust/README.md

153 lines
10 KiB
Markdown
Raw Normal View History

2014-07-17 06:47:44 -04:00
# Awesome Rust
2014-07-17 09:05:35 -04:00
A curated list of awesome Rust code and resources. Inspired by the other [awesome lists](https://github.com/bayandin/awesome-awesomeness).
2014-07-17 07:02:40 -04:00
2014-07-28 02:08:24 -04:00
Only projects that are stable and useful to users are added. Projects that do not compile with Rust-nightly for a longer time are moved to `UNSTABLE.md`.
2014-07-17 07:02:40 -04:00
- [Awesome Rust](#awesome-rust)
2014-07-17 09:05:35 -04:00
- [Code](#code)
2014-07-18 02:24:50 -04:00
- [Audio](#audio)
2014-07-20 10:24:03 -04:00
- [Build system](#build-system)
2014-07-26 06:38:16 -04:00
- [Command-line argument parsing](#command-line-argument-parsing)
2014-07-17 10:34:35 -04:00
- [Compression](#compression)
2014-07-18 02:35:28 -04:00
- [Computation](#computation)
2014-07-17 10:34:35 -04:00
- [Cryptography](#cryptography)
2014-07-20 10:06:24 -04:00
- [Database](#database)
2014-07-20 08:56:41 -04:00
- [Encoding](#encoding)
2014-07-21 02:21:16 -04:00
- [Game development](#game-development)
2014-07-21 01:56:17 -04:00
- [Games](#games)
2014-07-20 09:02:45 -04:00
- [GUI](#gui)
2014-07-20 10:30:14 -04:00
- [Network programming](#network-programming)
2014-07-20 10:31:40 -04:00
- [Template engine](#template-engine)
2014-07-23 09:47:33 -04:00
- [Testing](#testing)
2014-07-20 10:30:14 -04:00
- [Web programming](#web-programming)
2014-07-17 09:05:35 -04:00
- [Resources](#resources)
2014-07-17 07:02:40 -04:00
2014-07-17 09:05:35 -04:00
## Code
2014-10-11 09:02:35 -04:00
2014-07-18 02:24:50 -04:00
### Audio
* [bjz/openal-rs](https://github.com/bjz/openal-rs/) — [OpenAL 1.1](http://www.openal.org/) bindings
2014-07-18 02:27:52 -04:00
* [JeremyLetang/ears](https://github.com/JeremyLetang/ears) — a simple library to play Sounds and Musics, on top of OpenAL and libsndfile [<img src="https://travis-ci.org/jeremyletang/ears.png?branch=master">](https://travis-ci.org/JeremyLetang/ears)
2014-07-18 02:28:37 -04:00
* [JeremyLetang/rust-portaudio](https://github.com/JeremyLetang/rust-portaudio) — [PortAudio](http://www.portaudio.com/) bindings [<img src="https://travis-ci.org/jeremyletang/rust-portaudio.png?branch=master">](https://travis-ci.org/JeremyLetang/rust-portaudio)
2014-07-20 08:47:58 -04:00
* [musitdev/rust-portmidi](https://github.com/musitdev/rust-portmidi) — [PortMidi](http://portmedia.sourceforge.net/portmidi/) bindings [<img src="https://travis-ci.org/musitdev/rust-portmidi.png?branch=master">](https://travis-ci.org/musitdev/rust-portmidi)
2014-07-18 02:24:50 -04:00
2014-07-20 10:24:03 -04:00
### Build system
* [Cargo](http://crates.io) — the Rust package manager
* CMake
2014-07-20 10:26:03 -04:00
* [SiegeLord/RustCMake](https://github.com/SiegeLord/RustCMake) — an example project showing usage of CMake with Rust [<img src="https://travis-ci.org/SiegeLord/RustCMake.png?branch=master">](https://travis-ci.org/SiegeLord/RustCMake)
2014-07-20 10:24:03 -04:00
* Make
* [PistonDevelopers/rust-empty](https://github.com/PistonDevelopers/rust-empty) — a Makefile to get started with Rust
2014-07-26 06:38:16 -04:00
### Command-line argument parsing
2014-10-11 09:02:35 -04:00
* [docopt/docopt.rs](https://github.com/docopt/docopt.rs) — a [DocOpt](http://docopt.org) port to Rust
* [wycats/hammer.rs](https://github.com/wycats/hammer.rs)
2014-07-26 06:38:16 -04:00
2014-07-17 10:31:09 -04:00
### Compression
2014-07-20 08:48:54 -04:00
* [lifthrasiir/rust-zip](https://github.com/lifthrasiir/rust-zip) — read and write ZIP archives [<img src="https://travis-ci.org/lifthrasiir/rust-zip.png?branch=master">](https://travis-ci.org/lifthrasiir/rust-zip)
2014-07-17 10:31:09 -04:00
2014-07-18 02:35:53 -04:00
### Computation
2014-10-11 09:02:35 -04:00
2014-07-18 02:35:28 -04:00
* [eholk/rust-opencl](https://github.com/eholk/rust-opencl) — [OpenCL](https://www.khronos.org/opencl/) bindings [<img src="https://travis-ci.org/eholk/rust-opencl.png?branch=master">](https://travis-ci.org/eholk/rust-opencl)
2014-07-17 10:34:35 -04:00
### Cryptography
2014-07-20 08:46:09 -04:00
* [DaGenix/rust-crypto](https://github.com/DaGenix/rust-crypto) — cryptographic algorithms in Rust [<img src="https://travis-ci.org/DaGenix/rust-crypto.png?branch=master">](https://travis-ci.org/DaGenix/rust-crypto)
2014-10-07 14:50:15 -04:00
* [dnaq/sodiumoxide](https://github.com/dnaq/sodiumoxide) — [libsodium](https://github.com/jedisct1/libsodium) bindings
2014-10-12 06:13:56 -04:00
* [klutzy/suruga](https://github.com/klutzy/suruga) — Rust implementation of [TLS 1.2](http://tools.ietf.org/html/rfc5246)
2014-10-12 06:20:43 -04:00
* [seb-m/common.rs](https://github.com/klutzy/suruga) — Common Rust crypto utilities
2014-07-17 11:08:04 -04:00
* [sfackler/rust-openssl](https://github.com/sfackler/rust-openssl) — OpenSSL bindings [<img src="https://travis-ci.org/sfackler/rust-openssl.png?branch=master">](https://travis-ci.org/sfackler/rust-openssl)
2014-07-17 10:34:35 -04:00
2014-07-20 10:06:24 -04:00
### Database
* SQL
* MySql
2014-07-20 10:08:45 -04:00
* [blackbeam/rust-mysql-simple](https://github.com/blackbeam/rust-mysql-simple) — a native MySql client [<img src="https://travis-ci.org/blackbeam/rust-mysql-simple.png?branch=master">](https://travis-ci.org/blackbeam/rust-mysql-simple)
2014-07-20 10:06:24 -04:00
* PostgreSql
2014-10-11 09:02:35 -04:00
* [sfackler/rust-postgres](https://github.com/sfackler/rust-postgres) — a native [PostgreSQL](http://www.postgresql.org) client [<img src="https://travis-ci.org/sfackler/rust-postgres.png?branch=master">](https://travis-ci.org/sfackler/rust-postgres)
2014-07-20 10:06:24 -04:00
* Sqlite
2014-10-11 09:02:35 -04:00
* [linuxfood/rustsqlite](https://github.com/linuxfood/rustsqlite) — [Sqlite3](http://www.sqlite.org/) bindings
2014-07-20 10:06:24 -04:00
2014-07-20 08:56:41 -04:00
### Encoding
* Cap'n Proto
2014-10-11 09:02:35 -04:00
* [dwrensha/capnproto-rust](https://github.com/dwrensha/capnproto-rust) — [<img src="https://travis-ci.org/dwrensha/capnproto-rust.png?branch=master">](https://travis-ci.org/dwrensha/capnproto-rust)
2014-07-20 08:56:41 -04:00
* Character Encoding
2014-10-11 09:02:35 -04:00
* [lifthrasiir/rust-encoding](https://github.com/lifthrasiir/rust-encoding) — [<img src="https://travis-ci.org/lifthrasiir/rust-encoding.png?branch=master">](https://travis-ci.org/lifthrasiir/rust-encoding)
2014-07-20 08:56:41 -04:00
* CSV
2014-10-11 09:02:35 -04:00
* [BurntSushi/rust-csv](https://github.com/BurntSushi/rust-csv) — [<img src="https://api.travis-ci.org/BurntSushi/rust-csv.png?branch=master">](https://travis-ci.org/BurntSushi/rust-csv)
2014-07-20 08:56:41 -04:00
* MsgPck
* [mneumann/rust-msgpack](https://github.com/mneumann/rust-msgpack) — [<img src="https://travis-ci.org/mneumann/rust-msgpack.png?branch=master">](https://travis-ci.org/mneumann/rust-msgpack)
* ProtocolBuffers
* [stepancheg/rust-protobuf](https://github.com/stepancheg/rust-protobuf) — [<img src="https://travis-ci.org/stepancheg/rust-protobuf.png?branch=master">](https://travis-ci.org/stepancheg/rust-protobuf)
* TOML
2014-10-11 09:02:35 -04:00
* [alexcrichton/toml-rs](https://github.com/alexcrichton/toml-rs)
2014-07-20 08:56:41 -04:00
* Tnetstring
* XML
2014-10-11 09:02:35 -04:00
* [bjz/sax-rs](https://github.com/bjz/sax-rs) — bindings to libxml2's SAX parser [<img src="https://travis-ci.org/bjz/sax-rs.png?branch=master">](https://travis-ci.org/bjz/sax-rs)
2014-10-11 09:15:11 -04:00
* [DanielFath/xml-air](https://github.com/DanielFath/xml-air) — A hybrid pull, DOM parser written in pure Rust [<img src="https://travis-ci.org/DanielFath/xml-air.png?branch=master">](https://travis-ci.org/DanielFath/xml-air)
2014-10-11 09:02:35 -04:00
* [Florob/RustyXML](https://github.com/Florob/RustyXML) — an XML parser written in Rust [<img src="https://travis-ci.org/Florob/RustyXML.png?branch=master">](https://travis-ci.org/Florob/RustyXM)
* [netvl/rust-xml](https://github.com/netvl/rust-xml) — a streaming XML library [<img src="https://travis-ci.org/netvl/rust-xml.png?branch=master">](https://travis-ci.org/netvl/rust-xml)
2014-07-20 08:56:41 -04:00
2014-07-21 02:21:16 -04:00
### Game development
2014-10-11 09:02:35 -04:00
* [JeremyLetang/rustenstein3D](https://github.com/JeremyLetang/rustenstein3D/) — a raycasting engine in rust
2014-07-21 02:21:16 -04:00
2014-07-21 01:59:17 -04:00
### Games
2014-07-21 01:56:17 -04:00
2014-08-05 04:01:06 -04:00
* [lifthrasiir/angolmois-rust](https://github.com/lifthrasiir/angolmois-rust) — a minimalistic music video game which supports the BMS format [<img src="https://travis-ci.org/lifthrasiir/angolmois-rust.png?branch=master">](https://travis-ci.org/lifthrasiir/angolmois-rust)
2014-07-21 01:57:41 -04:00
2014-07-20 09:02:45 -04:00
### GUI
2014-07-20 08:56:41 -04:00
2014-07-20 09:02:45 -04:00
* Cocoa
2014-10-11 09:02:35 -04:00
* [mozilla-servo/rust-cocoa](https://github.com/mozilla-servo/rust-cocoa)
* Gtk+
* [JeremyLetang/rgtk](https://github.com/JeremyLetang/rgtk) — [Gtk+](http://www.gtk.org) bindings [<img src="https://travis-ci.org/jeremyletang/rgtk.png?branch=master">](https://travis-ci.org/jeremyletang/rgtk)
2014-07-20 09:02:45 -04:00
* ncurses
2014-10-11 09:02:35 -04:00
* [jeaye/ncurses-rs](https://github.com/jeaye/ncurses-rs) — [<img src="https://travis-ci.org/jeaye/ncurses-rs.png?branch=master">](https://travis-ci.org/jeaye/ncurses-rs)
2014-08-06 04:34:31 -04:00
* SDL
2014-10-11 09:02:35 -04:00
* [AngryLawyer/rust-sdl2](https://github.com/AngryLawyer/rust-sdl2) — [SDL2](http://www.libsdl.org/) bindings [<img src="https://travis-ci.org/AngryLawyer/rust-sdl2.png?branch=master">](https://travis-ci.org/AngryLawyer/rust-sdl2)
* [brson/rust-sdl](https://github.com/brson/rust-sdl) — [SDL1](http://www.libsdl.org/) bindings [<img src="https://travis-ci.org/brson/rust-sdl.png?branch=master">](https://travis-ci.org/brson/rust-sdl)
2014-07-20 09:02:45 -04:00
* Termbox
2014-10-11 09:02:35 -04:00
* [gchp/rustbox](https://github.com/gchp/rustbox) — a Rust implementation of [termbox]() http://github.com/nsf/termbox
2014-10-11 09:24:17 -04:00
* wxWidgets
2014-07-20 08:56:41 -04:00
2014-07-20 10:30:14 -04:00
### Network programming
* ZeroMQ
2014-07-27 14:46:09 -04:00
* [erickt/rust-zmq](https://github.com/erickt/rust-zmq) — [ZeroMQ](http://zeromq.org) bindings [<img src="https://travis-ci.org/erickt/rust-zmq.png?branch=master">](https://travis-ci.org/erickt/rust-zmq)
2014-07-20 10:30:14 -04:00
2014-07-20 10:31:40 -04:00
### Template engine
* Mustache
2014-07-21 02:22:09 -04:00
* [erickt/rust-mustache](https://github.com/erickt/rust-mustache) — [<img src="https://travis-ci.org/erickt/rust-mustache.png?branch=master">](https://travis-ci.org/erickt/rust-mustache)
2014-07-20 10:31:40 -04:00
2014-07-23 09:47:33 -04:00
### Testing
2014-10-11 09:02:35 -04:00
* [BurntSushi/quickcheck](https://github.com/BurntSushi/quickcheck) — property-based testing using randomly generated input [<img src="https://travis-ci.org/BurntSushi/quickcheck.png?branch=master">](https://travis-ci.org/BurntSushi/quickcheck)
* [farcaller/shiny](https://github.com/farcaller/shiny) — a fancy syntax similar to ruby's rspec or Objective-C's kiwi
2014-07-23 09:47:33 -04:00
2014-07-20 10:30:14 -04:00
### Web programming
2014-07-17 06:47:44 -04:00
2014-10-11 09:02:35 -04:00
See also [http://arewewebyet.com/](http://arewewebyet.com/)
2014-07-17 06:47:44 -04:00
2014-10-11 09:02:35 -04:00
* Core
* [chris-morgan/rust-http](https://github.com/chris-morgan/rust-http) — will be replaced by [Teepee](http://teepee.rs/) [<img src="https://travis-ci.org/chris-morgan/rust-http.png?branch=master">](https://travis-ci.org/chris-morgan/rust-http)
* [hyperium/hyper](https://github.com/hyperium/hyper) — [<img src="https://travis-ci.org/hyperium/hyper.png?branch=master">](https://travis-ci.org/hyperium/hyper)
* Client
* [carllerche/curl-rust](https://github.com/carllerche/curl-rust) — [libcurl](http://curl.haxx.se/libcurl/) bindings
* [vhbit/curl-rs](https://github.com/vhbit/curl-rs) — [libcurl](http://curl.haxx.se/libcurl/) bindings [<img src="https://travis-ci.org/vhbit/curl-rs">](https://travis-ci.org/vhbit/curl-rs.png?branch=master)
* Server
* [erickt/rust-mongrel2](https://github.com/erickt/rust-mongrel2) — [Mongrel2](http://mongrel2.org) bindings [<img src="https://travis-ci.org/erickt/rust-mongrel2">](https://travis-ci.org/erickt/rust-mongrel2.png?branch=master)
* [Iron](http://ironframework.io/) — inspired by [Express](http://expressjs.com/) [<img src="https://travis-ci.org/iron/iron">](https://travis-ci.org/iron/iron.png?branch=master)
* [Nickel](http://nickel.rs/) — inspired by [Express](http://expressjs.com/)
2014-07-18 02:16:18 -04:00
2014-07-17 09:05:35 -04:00
## Resources
2014-07-20 10:12:39 -04:00
2014-10-11 09:02:35 -04:00
* [Rust by Example](http://rustbyexample.com/)
* [Rust CI](http://www.rust-ci.org) — a [Travis CI](https://travis-ci.com) dashboard for Rust projects
* [Rust Guidelines](http://aturon.github.io)