# Awesome Rust A curated list of awesome Rust code and resources. Inspired by the other [awesome lists](https://github.com/bayandin/awesome-awesomeness). Only projects that are more than a prototype should be added. Projects that do not compile with Rust-nightly for a long time have to be removed. - [Awesome Rust](#awesome-rust) - [Code](#code) - [Audio](#audio) - [Build system](#build-system) - [Compression](#compression) - [Computation](#computation) - [Cryptography](#cryptography) - [Database](#database) - [Encoding](#encoding) - [GUI](#gui) - [Web Programming](#web-programming) - [Resources](#resources) ## Code ### Audio * [bjz/openal-rs](https://github.com/bjz/openal-rs/) — [OpenAL 1.1](http://www.openal.org/) bindings * [JeremyLetang/ears](https://github.com/JeremyLetang/ears) — a simple library to play Sounds and Musics, on top of OpenAL and libsndfile [](https://travis-ci.org/JeremyLetang/ears) * [JeremyLetang/rust-portaudio](https://github.com/JeremyLetang/rust-portaudio) — [PortAudio](http://www.portaudio.com/) bindings [](https://travis-ci.org/JeremyLetang/rust-portaudio) * [musitdev/rust-portmidi](https://github.com/musitdev/rust-portmidi) — [PortMidi](http://portmedia.sourceforge.net/portmidi/) bindings [](https://travis-ci.org/musitdev/rust-portmidi) ### Build system * [Cargo](http://crates.io) — the Rust package manager * CMake * [SiegeLord/RustCMake](https://github.com/SiegeLord/RustCMake) — an example project showing usage of CMake with Rust [](https://travis-ci.org/SiegeLord/RustCMake) * Make * [PistonDevelopers/rust-empty](https://github.com/PistonDevelopers/rust-empty) — a Makefile to get started with Rust ### Compression * [lifthrasiir/rust-zip](https://github.com/lifthrasiir/rust-zip) — read and write ZIP archives [](https://travis-ci.org/lifthrasiir/rust-zip) ### Computation * [eholk/rust-opencl](https://github.com/eholk/rust-opencl) — [OpenCL](https://www.khronos.org/opencl/) bindings [](https://travis-ci.org/eholk/rust-opencl) ### Cryptography * [DaGenix/rust-crypto](https://github.com/DaGenix/rust-crypto) — cryptographic algorithms in Rust [](https://travis-ci.org/DaGenix/rust-crypto) * [sfackler/rust-openssl](https://github.com/sfackler/rust-openssl) — OpenSSL bindings [](https://travis-ci.org/sfackler/rust-openssl) ### Database * SQL * [wycats/rust-arel](https://github.com/wycats/rust-arel) — an in-progress port of the Ruby SQL building library arel * MySql * [blackbeam/rust-mysql-simple](https://github.com/blackbeam/rust-mysql-simple) — a native MySql client [](https://travis-ci.org/blackbeam/rust-mysql-simple) * PostgreSql * [sfackler/rust-postgres](https://github.com/sfackler/rust-postgres) — a native [PostgreSQL](http://www.postgresql.org) client [](https://travis-ci.org/sfackler/rust-postgres) * Sqlite * [linuxfood/rustsqlite](https://github.com/linuxfood/rustsqlite) — [Sqlite3](http://www.sqlite.org) bindings [](https://travis-ci.org/kud1ing/rustsqlite) ### Encoding * Cap'n Proto * [dwrensha/capnproto-rust](https://github.com/dwrensha/capnproto-rust) — [](https://travis-ci.org/dwrensha/capnproto-rust) * Character Encoding * [lifthrasiir/rust-encoding](https://github.com/lifthrasiir/rust-encoding) — [](https://travis-ci.org/lifthrasiir/rust-encoding) * CSV * [BurntSushi/rust-csv](https://github.com/BurntSushi/rust-csv) — [](https://travis-ci.org/BurntSushi/rust-csv) * [Geal/rust-csv](https://github.com/Geal/rust-csv) — [](https://travis-ci.org/Geal/rust-csv) * MsgPck * [mneumann/rust-msgpack](https://github.com/mneumann/rust-msgpack) — [](https://travis-ci.org/mneumann/rust-msgpack) * ProtocolBuffers * [stepancheg/rust-protobuf](https://github.com/stepancheg/rust-protobuf) — [](https://travis-ci.org/stepancheg/rust-protobuf) * TOML * [alexcrichton/toml-rs](https://github.com/alexcrichton/toml-rs) — * Tnetstring * [erickt/rust-tnetstring](https://github.com/erickt/rust-tnetstring) — [](https://travis-ci.org/erickt/rust-tnetstring) * XML * [bjz/sax-rs](https://github.com/bjz/sax-rs) — bindings to libxml2's SAX parser [](https://travis-ci.org/bjz/sax-rs) * [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) * [Florob/RustyXML](https://github.com/Florob/RustyXML) — an XML parser written in Rust * [netvl/rust-xml](https://github.com/netvl/rust-xml) — a streaming XML library ### GUI * Cocoa * [mozilla-servo/rust-cocoa](https://github.com/mozilla-servo/rust-cocoa) — * Gtk * [JeremyLetang/rgtk](https://github.com/JeremyLetang/rgtk) — [](https://travis-ci.org/jeremyletang/rgtk) * 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 * [gchp/rustbox](https://github.com/gchp/rustbox) — ### Web Programming See also http://arewewebyet.com/ * core * [chris-morgan/rust-http](https://github.com/chris-morgan/rust-http) — will be replaced by [Teepee](http://teepee.rs/). [](https://travis-ci.org/chris-morgan/rust-http) * client * [carllerche/curl-rust](https://github.com/carllerche/curl-rust) — [libcurl](http://curl.haxx.se/libcurl/) bindings * server * [erickt/rust-mongrel2](https://github.com/erickt/rust-mongrel2) — [Mongrel2](http://mongrel2.org) bindings [](https://travis-ci.org/erickt/rust-mongrel2) * [Iron](http://ironframework.io/) — inspired by [Express](http://expressjs.com/). [](https://travis-ci.org/iron/iron) * [Nickel](http://nickel.rs/) — inspired by [Express](http://expressjs.com/). ## Resources * [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)