mirror of
				https://github.com/rust-unofficial/awesome-rust.git
				synced 2025-10-30 23:47:34 -04:00 
			
		
		
		
	
				
				A curated list of Rust code and resources.
				
			
		| README.md | ||
Awesome Rust
A curated list of awesome Rust code and resources. Inspired by the other awesome lists.
The goal is to have only projects that are mostly stable and useful to users.
Applications written in Rust
- buster/rrun — A command launcher for Linux, similar to gmrun  
- BurntSushi/xsv — A fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.) 
- gchp/iota — a simple text editor written in Rust 
- imjacobclark/Herd - an experimental HTTP load testing application written in Rust
- kbknapp/docli - a command line utility for managing DigitalOcean infrastructure 
- seppo0010/rsedis — Redis reimplementation in Rust. 
- Servo — a prototype web browser engine written in Rust
- thoughtram/clog — a conventional changelog port (generates a changelog from git metadata) 
- uutils/coreutils — cross-platform Rust rewrite of the GNU coreutils 
Games
- Coeuvre/rust-2048
- lifthrasiir/angolmois-rust — a minimalistic music video game which supports the BMS format 
- xojoc/snake-piston — a Snake game in Rust 
Libraries
Audio
- GuillaumeGomez/rust-fmod — FMOD bindings  
- JeremyLetang/ears — a simple library to play Sounds and Musics, on top of OpenAL and libsndfile 
- JeremyLetang/rust-portaudio — PortAudio bindings 
- jpernst/openal-rs — OpenAL 1.1 bindings 
- RustAudio
- samdoshi/portmidi-rs — PortMidi bindings 
Build system
- Cargo — the Rust package manager
- CMake
- SiegeLord/RustCMake — an example project showing usage of CMake with Rust 
 
- SiegeLord/RustCMake — an example project showing usage of CMake with Rust 
Command-line argument parsing
- docopt/docopt.rs — a Rust implementation of DocOpt 
- kbknapp/clap-rs — a simple to use, full featured command-line argument parser 
Compression
- alexcrichton/bzip2-rs — libbz2 bindings 
- alexcrichton/flate2-rs — miniz bindings 
- alexcrichton/tar-rs — tar archive reading/writing in Rust 
- slackito/zip — read and write ZIP archives 
Computation
- BLAS
- mikkyang/rust-blas - BLAS bindings
- stainless-steel/blas - BLAS bindings 
 
- GMP
- thestinger/rust-gmp — libgmp bindings 
 
- thestinger/rust-gmp — libgmp bindings 
- GSL
- GuillaumeGomez/rust-GSL - GSL bindings 
 
- GuillaumeGomez/rust-GSL - GSL bindings 
- LAPACK
- stainless-steel/lapack - LAPACK bindings 
 
- stainless-steel/lapack - LAPACK bindings 
- OpenCL
- luqmana/rust-opencl — OpenCL bindings 
 
- luqmana/rust-opencl — OpenCL bindings 
Cryptography
- DaGenix/rust-crypto — cryptographic algorithms in Rust 
- dnaq/sodiumoxide — libsodium bindings 
- klutzy/suruga — a Rust implementation of TLS 1.2
- seb-m/common.rs — Common Rust crypto utilities 
- sfackler/rust-openssl — OpenSSL bindings 
Database
- NoSQL
- Cassandra
- tupshin/cassandra-rust — Cassandra bindings
 
- Elastic (formerly Elasticsearch)
- [benashford/rs-es] (https://github.com/benashford/rs-es) - A Rust client for the [Elastic] (https://www.elastic.co/) REST API 
 
- [benashford/rs-es] (https://github.com/benashford/rs-es) - A Rust client for the [Elastic] (https://www.elastic.co/) REST API 
- ForestDB
- vhbit/sherwood — ForestDB bindings 
 
- vhbit/sherwood — ForestDB bindings 
- LMDB
- vhbit/lmdb-rs — LMDB bindings 
 
- vhbit/lmdb-rs — LMDB bindings 
- Redis
- mitsuhiko/redis-rs — Redis library in Rust 
 
- mitsuhiko/redis-rs — Redis library in Rust 
 
- Cassandra
- SQL
- MySql
- blackbeam/rust-mysql-simple — a native MySql client 
 
- blackbeam/rust-mysql-simple — a native MySql client 
- PostgreSql
- sfackler/rust-postgres — a native PostgreSQL client 
 
- sfackler/rust-postgres — a native PostgreSQL client 
- Sqlite
- dckc/rust-sqlite3 — Sqlite3 bindings 
- jgallagher/rusqlite — Sqlite3 bindings 
- linuxfood/rustsqlite — Sqlite3 bindings 
 
- dckc/rust-sqlite3 — Sqlite3 bindings 
 
- MySql
Date and time
Data structures
- bluss/rust-itertools — 
- reem/rust-typemap — 
- serde-rs/serde - a framework to generically serialize Rust data structures 
Encoding
- TyOverby/bincode — a binary encoder/decoder in Rust 
- Bencode
- arjantop/rust-bencode — Bencode implementation in Rust 
 
- arjantop/rust-bencode — Bencode implementation in Rust 
- Byte swapping
- BurntSushi/byteorder — Supports big-endian, little-endian and native byte orders 
 
- BurntSushi/byteorder — Supports big-endian, little-endian and native byte orders 
- Cap'n Proto
- CBOR
- BurntSushi/rust-cbor — Supports JSON conversion and type-based encoding/decoding 
 
- BurntSushi/rust-cbor — Supports JSON conversion and type-based encoding/decoding 
- Character Encoding
- CSV
- HTML
- servo/html5ever — High-performance browser-grade HTML5 parser 
 
- servo/html5ever — High-performance browser-grade HTML5 parser 
- MsgPack
- mneumann/rust-msgpack — 
- 3Hren/msgpack-rust - Pure Rust low/high level MessagePack implementation 
 
- mneumann/rust-msgpack — 
- ProtocolBuffers
- TOML
- Tnetstring
- XML
- Florob/RustyXML — an XML parser written in Rust 
- netvl/xml-rs — a streaming XML library 
 
- Florob/RustyXML — an XML parser written in Rust 
- YAML
- chyh1990/yaml-rust — The missing YAML 1.2 implementation for Rust. 
- kimhyunkang/libyaml-rust — libyaml bindings 
 
- chyh1990/yaml-rust — The missing YAML 1.2 implementation for Rust. 
Filesystem
- FUSE
- zargony/rust-fuse — FUSE bindings 
 
- zargony/rust-fuse — FUSE bindings 
Game development
- bbodi/rust-voxlap — Voxlap bindings
- PistonDevelopers/piston — 
- SiegeLord/RustAllegro — Allegro 5 bindings 
GUI
- Cocoa
- IUP
- dcampbell24/iup-rust — IUP bindings 
 
- dcampbell24/iup-rust — IUP bindings 
- GTK+
- rust-gnome/gtk — GTK+ bindings 
 
- rust-gnome/gtk — GTK+ bindings 
- ncurses
- jeaye/ncurses-rs — ncurses bindings 
 
- jeaye/ncurses-rs — ncurses bindings 
- OpenGL
- bjz/gl-rs — 
- bjz/glfw-rs — 
- servo/rust-glut
- tomaka/glutin — Rust alternative to GLFW 
 
- bjz/gl-rs — 
- Qt
- cyndis/qmlrs — QtQuick bindings 
 
- cyndis/qmlrs — QtQuick bindings 
- SDL
- AngryLawyer/rust-sdl2 — SDL2 bindings 
- brson/rust-sdl — SDL1 bindings 
- PistonDevelopers/conrod — An easy-to-use, immediate-mode, 2D GUI library written entirely in Rust 
 
- AngryLawyer/rust-sdl2 — SDL2 bindings 
- SFML
- jeremyletang/rust-sfml — SFML bindings 
 
- jeremyletang/rust-sfml — SFML bindings 
- Termbox
- gchp/rustbox — a Rust implementation of termbox 
 
- gchp/rustbox — a Rust implementation of termbox 
Image processing
- chyh1990/imageproc — An advanced image processing library for Rust. 
- cybergeek94/img-hash — Perceptual image hashing and comparison for equality and similarity. 
- PistonDevelopers/image — Basic imaging processing functions and methods for converting to and from image formats 
Mobile
- tomaka/android-rs-glue — glue between Rust and Android 
- vhbit/ObjCrust — using Rust to create an iOS static library 
Network programming
- Beanstalkd
- schickling/rust-beanstalkd — Beanstalkd bindings 
 
- schickling/rust-beanstalkd — Beanstalkd bindings 
- FTP
- mattnenterprise/rust-ftp — An FTP client for Rust 
 
- mattnenterprise/rust-ftp — An FTP client for Rust 
- Low level
- libpnet/libpnet — Cross-platform, low level networking 
 
- libpnet/libpnet — Cross-platform, low level networking 
- NanoMsg
- thehydroimpulse/nanomsg.rs — a modern messaging library that is the successor to ZeroMQ 
 
- thehydroimpulse/nanomsg.rs — a modern messaging library that is the successor to ZeroMQ 
- NNTP
- mattnenterprise/rust-nntp — A NNTP client for Rust 
 
- mattnenterprise/rust-nntp — A NNTP client for Rust 
- POP3
- mattnenterprise/rust-pop3 — A POP3 client for Rust 
 
- mattnenterprise/rust-pop3 — A POP3 client for Rust 
- SSH
- alexcrichton/ssh2-rs — libssh2 bindings 
 
- alexcrichton/ssh2-rs — libssh2 bindings 
- Stomp
- zslayton/stomp-rs — STOMP 1.2 client implementation in Rust 
 
- zslayton/stomp-rs — STOMP 1.2 client implementation in Rust 
- uTP
- meqif/rust-utp — A uTP (Micro Transport Protocol) library for Rust. 
 
- meqif/rust-utp — A uTP (Micro Transport Protocol) library for Rust. 
- ZeroMQ
- erickt/rust-zmq — ZeroMQ bindings 
 
- erickt/rust-zmq — ZeroMQ bindings 
Platform specific
- DigitalOcean
- kbknapp/doapi - DigitalOcean v2 API bindings 
 
- kbknapp/doapi - DigitalOcean v2 API bindings 
- Linux
- carllerche/nix-rust — Linux API bindings 
 
- carllerche/nix-rust — Linux API bindings 
- Windows
- retep998/winapi-rs — Windows API bindings 
 
- retep998/winapi-rs — Windows API bindings 
Template engine
- HTML
- lfairy/maud — compile-time HTML templates 
- Stebalien/horrorshow-rs — compile-time HTML templates 
 
- lfairy/maud — compile-time HTML templates 
- Mustache
- sunng87/handlebars-iron — Handlebars-rust as an Iron web framework middleware. 
- sunng87/handlebars-rust — Handlebars template engine with inheritance, custom helper support. 
Testing
- BurntSushi/quickcheck — a Rust implementation of QuickCheck 
- farcaller/shiny — a fancy syntax similar to Ruby's Rspec or Objective-C' kiwi 
Text processing
- BurntSushi/suffix — Linear time suffix array construction (with Unicode support) 
- BurntSushi/tabwriter — Elastic tab stops (i.e., text column alignment) 
- rust-lang/regex — Regular expressions (RE2 style) 
Web programming
See also http://arewewebyet.com/
- Client
- carllerche/curl-rust — libcurl bindings 
- hyperium/hyper — an HTTP implementation 
- vhbit/curl-rs — libcurl bindings 
 
- carllerche/curl-rust — libcurl bindings 
- Server
- hyperium/hyper — an HTTP implementation 
- Iron — a middleware-based server framework 
- Nickel — inspired by Express 
- Ogeon/rustful — a RESTful web framework for Rust  
- Rustless — a REST-like API micro-framework inspired by Grape and Hyper 
- tiny-http — Low level HTTP server library 
 
- hyperium/hyper — an HTTP implementation 
Resources
- Rust by Example
- Rust CI — a Travis CI dashboard for Rust projects
- Rust Guidelines
- rust-learning - a collection of useful resources to learn rust
Development Tools
- brson/multirust — manage multiple Rust installations 
- crabtw/rust-bindgen — a Rust bindings generator 
- dan-t/rusty-tags — create ctags/etags for a cargo project and all of its dependencies 
- kmcallister/afl.rs — a Rust fuzzer, using AFL 
- Manishearth/rust-clippy — a collection of lints that catch newbie mistakes and oversights during the build 
- nrc/rustfmt — a Rust code formatter 
- phildawes/racer — code completion for Rust 
IDEs
- PistonDevelopers/VisualRust — a Visual Studio extension for Rust 
- Ride — 
- RustDT — an Eclipse-based IDE for Rust 
- SolidOak — a simple IDE for Rust, based on GTK+ and Neovim 
- Vektah/idea-rust — an IntelliJ-based IDE for Rust 
- Visual Studio Code
 
			