2014-07-17 10:47:44 +00:00
# Awesome Rust
2014-07-17 13:05:35 +00: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 11:02:40 +00:00
2014-07-23 13:51:03 +00: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 removed.
2014-07-18 07:02:27 +00:00
2014-07-17 11:02:40 +00:00
- [Awesome Rust ](#awesome-rust )
2014-07-17 13:05:35 +00:00
- [Code ](#code )
2014-07-18 06:24:50 +00:00
- [Audio ](#audio )
2014-07-20 14:24:03 +00:00
- [Build system ](#build-system )
2014-07-26 10:38:16 +00:00
- [Command-line argument parsing ](#command-line-argument-parsing )
2014-07-17 14:34:35 +00:00
- [Compression ](#compression )
2014-07-18 06:35:28 +00:00
- [Computation ](#computation )
2014-07-17 14:34:35 +00:00
- [Cryptography ](#cryptography )
2014-07-20 14:06:24 +00:00
- [Database ](#database )
2014-07-20 12:56:41 +00:00
- [Encoding ](#encoding )
2014-07-21 06:21:16 +00:00
- [Game development ](#game-development )
2014-07-21 05:56:17 +00:00
- [Games ](#games )
2014-07-20 13:02:45 +00:00
- [GUI ](#gui )
2014-07-20 14:30:14 +00:00
- [Network programming ](#network-programming )
2014-07-20 14:31:40 +00:00
- [Template engine ](#template-engine )
2014-07-23 13:47:33 +00:00
- [Testing ](#testing )
2014-07-20 14:30:14 +00:00
- [Web programming ](#web-programming )
2014-07-17 13:05:35 +00:00
- [Resources ](#resources )
2014-07-17 11:02:40 +00:00
2014-07-17 10:47:44 +00:00
2014-07-17 13:05:35 +00:00
## Code
2014-07-18 06:24:50 +00:00
### Audio
* [bjz/openal-rs ](https://github.com/bjz/openal-rs/ ) — [OpenAL 1.1 ](http://www.openal.org/ ) bindings
2014-07-18 06:27:52 +00: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 06:28:37 +00: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 12:47:58 +00: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 06:24:50 +00:00
2014-07-20 14:24:03 +00:00
### Build system
* [Cargo ](http://crates.io ) — the Rust package manager
* CMake
2014-07-20 14:26:03 +00: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 14:24:03 +00:00
* Make
* [PistonDevelopers/rust-empty ](https://github.com/PistonDevelopers/rust-empty ) — a Makefile to get started with Rust
2014-07-26 10:38:16 +00:00
### Command-line argument parsing
2014-07-27 18:44:34 +00:00
* [BurntSushi/docopt.rs ](https://github.com/BurntSushi/docopt.rs ) — [DocOpt ](http://docopt.org ) for Rust [<img src="https://travis-ci.org/BurntSushi/docopt.rs.png?branch=master"> ](https://travis-ci.org/BurntSushi/docopt.rs )
2014-07-26 10:38:16 +00:00
* [wycats/hammer.rs ](https://github.com/wycats/hammer.rs ) —
2014-07-17 14:31:09 +00:00
### Compression
2014-07-20 12:48:54 +00: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 14:31:09 +00:00
2014-07-18 06:35:53 +00:00
### Computation
2014-07-18 06:35:28 +00: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 14:34:35 +00:00
### Cryptography
2014-07-20 12:46:09 +00: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-07-17 15:08:04 +00: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 14:34:35 +00:00
2014-07-20 14:06:24 +00:00
### Database
* SQL
* MySql
2014-07-20 14:08:45 +00: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 14:06:24 +00:00
* PostgreSql
2014-07-20 14:08:45 +00: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 14:06:24 +00:00
* Sqlite
* [linuxfood/rustsqlite ](https://github.com/linuxfood/rustsqlite ) — [Sqlite3 ](http://www.sqlite.org ) bindings [<img src="https://travis-ci.org/kud1ing/rustsqlite.png?branch=master"> ](https://travis-ci.org/kud1ing/rustsqlite )
2014-07-20 12:56:41 +00:00
### Encoding
* Cap'n Proto
* [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 )
* Character Encoding
2014-07-21 07:08:47 +00: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 12:56:41 +00:00
* CSV
* [BurntSushi/rust-csv ](https://github.com/BurntSushi/rust-csv ) — [<img src="https://api.travis-ci.org/BurntSushi/rust-csv.png"> ](https://travis-ci.org/BurntSushi/rust-csv )
* [Geal/rust-csv ](https://github.com/Geal/rust-csv ) — [<img src="https://travis-ci.org/Geal/rust-csv.png?branch=master"> ](https://travis-ci.org/Geal/rust-csv )
* 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-07-20 12:58:07 +00:00
* [alexcrichton/toml-rs ](https://github.com/alexcrichton/toml-rs ) —
2014-07-20 12:56:41 +00:00
* Tnetstring
* [erickt/rust-tnetstring ](https://github.com/erickt/rust-tnetstring ) — [<img src="https://travis-ci.org/erickt/rust-tnetstring.png?branch=master"> ](https://travis-ci.org/erickt/rust-tnetstring )
* XML
* [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-07-20 12:58:07 +00:00
* [DanielFath/xml-parser ](https://github.com/DanielFath/xml-parser ) — A hybrid pull, DOM parser written in pure Rust [![Build Status ](https://travis-ci.org/DanielFath/xml-parser.png?branch=master )](https://travis-ci.org/DanielFath/xml-parser)
2014-07-27 18:52:09 +00: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/RustyXML )
* [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 12:56:41 +00:00
2014-07-21 06:21:16 +00:00
### Game development
* [JeremyLetang/rustenstein3D/ ](https://github.com/JeremyLetang/rustenstein3D/ ) — a raycasting engine in rust
2014-07-21 05:59:17 +00:00
### Games
2014-07-21 05:56:17 +00:00
2014-07-21 06:21:16 +00:00
* [lifthrasiir/angolmois-rust ](https://github.com/lifthrasiir/angolmois-rust ) — a minimalistic music video game which supports the BMS format
2014-07-21 05:57:41 +00:00
2014-07-20 13:02:45 +00:00
### GUI
2014-07-20 12:56:41 +00:00
2014-07-20 13:02:45 +00:00
* Cocoa
* [mozilla-servo/rust-cocoa ](https://github.com/mozilla-servo/rust-cocoa ) —
* Gtk
2014-07-27 18:55:58 +00:00
* [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 13:02:45 +00:00
* ncurses
* [jeaye/ncurses-rs ](https://github.com/jeaye/ncurses-rs ) — [![Build Status ](https://travis-ci.org/jeaye/ncurses-rs.png?branch=master )](https://travis-ci.org/jeaye/ncurses-rs.png)
* Termbox
2014-07-23 13:57:47 +00:00
* [gchp/rustbox ](https://github.com/gchp/rustbox ) — a Rust implementation of [termbox ](http://github.com/nsf/termbox ).
2014-07-20 12:56:41 +00:00
2014-07-20 14:30:14 +00:00
### Network programming
* ZeroMQ
2014-07-27 18:46:09 +00: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 14:30:14 +00:00
2014-07-20 14:31:40 +00:00
### Template engine
* Mustache
2014-07-21 06:22:09 +00: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 14:31:40 +00:00
2014-07-23 13:47:33 +00:00
### Testing
* [farcaller/shiny ](https://github.com/farcaller/shiny ) — a fancy syntax similar to ruby's rspec or Objective-C's kiwi.
2014-07-20 14:30:14 +00:00
### Web programming
2014-07-17 10:47:44 +00:00
See also http://arewewebyet.com/
* core
2014-07-18 07:04:07 +00:00
* [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 )
2014-07-17 10:47:44 +00:00
* client
2014-07-17 15:08:04 +00:00
* [carllerche/curl-rust ](https://github.com/carllerche/curl-rust ) — [libcurl ](http://curl.haxx.se/libcurl/ ) bindings
2014-07-28 05:55:56 +00:00
* [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.png?branch=master"> ](https://travis-ci.org/vhbit/curl-rs )
2014-07-17 10:47:44 +00:00
* server
2014-07-20 12:50:45 +00:00
* [erickt/rust-mongrel2 ](https://github.com/erickt/rust-mongrel2 ) — [Mongrel2 ](http://mongrel2.org ) bindings [<img src="https://travis-ci.org/erickt/rust-mongrel2.png?branch=master"> ](https://travis-ci.org/erickt/rust-mongrel2 )
2014-07-18 07:17:52 +00:00
* [Iron ](http://ironframework.io/ ) — inspired by [Express ](http://expressjs.com/ ). [<img src="https://travis-ci.org/iron/iron.png?branch=master"> ](https://travis-ci.org/iron/iron )
2014-07-18 06:19:11 +00:00
* [Nickel ](http://nickel.rs/ ) — inspired by [Express ](http://expressjs.com/ ).
2014-07-18 06:16:18 +00:00
2014-07-17 13:05:35 +00:00
## Resources
2014-07-20 14:12:39 +00:00
2014-07-17 13:05:35 +00:00
* [Rust by Example ](http://rustbyexample.com/ )
2014-07-20 14:12:39 +00:00
* [Rust CI ](http://www.rust-ci.org ) — a [Travis CI ](https://travis-ci.com ) dashboard for Rust projects
2014-07-20 14:16:56 +00:00
* [Rust Guidelines ](http://aturon.github.io )