mirror of
https://github.com/rust-unofficial/awesome-rust
synced 2024-11-06 09:20:39 +00:00
README.md |
Awesome Rust
A curated list of awesome Rust code and resources. Inspired by the other awesome lists.
Ther goal is to have only projects that are mostly stable and useful to users. Projects that do not compile with Rust-nightly for a longer time should be removed.
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
- 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
Libraries
Audio
- bjz/openal-rs — OpenAL 1.1 bindings
- JeremyLetang/ears — a simple library to play Sounds and Musics, on top of OpenAL and libsndfile
- JeremyLetang/rust-portaudio — PortAudio 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
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
- lifthrasiir/rust-zip — read and write ZIP archives
Computation
- luqmana/rust-opencl — OpenCL bindings
- thestinger/rust-gmp — libgmp bindings
- GuillaumeGomez/rust-GSL - GSL bindings
- stainless-steel/blas - BLAS
- stainless-steel/lapack - BLAS
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
- LMDB
- vhbit/lmdb-rs — LMDB bindings
- Redis
- mitsuhiko/redis-rs — Redis library in Rust
- Cassandra
- SQL
- MySql
- blackbeam/rust-mysql-simple — a native MySql client
- PostgreSql
- sfackler/rust-postgres — a native PostgreSQL client
- Sqlite
- dckc/rust-sqlite3 — Sqlite3 bindings
- jgallagher/rusqlite — Sqlite3 bindings
- linuxfood/rustsqlite — Sqlite3 bindings
- MySql
Date and time
Data structures
Encoding
- TyOverby/bincode — a binary encoder/decoder in Rust
- Bencode
- arjantop/rust-bencode — Bencode implementation in Rust
- Byte swapping
- 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
- Character Encoding
- CSV
- HTML
- servo/html5ever — High-performance browser-grade HTML5 parser
- MsgPck
- ProtocolBuffers
- TOML
- Tnetstring
- XML
- Florob/RustyXML — an XML parser written in Rust
- netvl/xml-rs — a streaming XML library
- YAML
- kimhyunkang/libyaml-rust — libyaml bindings
Game development
- bbodi/rust-voxlap — Voxlap bindings
- PistonDevelopers/piston —
- SiegeLord/RustAllegro — Allegro 5 bindings
GUI
- Cocoa
- Gtk+
- rust-gnome/gtk — Gtk+ bindings
- ncurses
- OpenGL
- bjz/gl-rs —
- bjz/glfw-rs —
- servo/rust-glut
- tomaka/glutin — Rust alternative to GLFW
- Qt
- 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
- SFML
- jeremyletang/rust-sfml — SFML bindings
- Termbox
- gchp/rustbox — a Rust implementation of termbox
Image processing
- 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
- FTP
- mattnenterprise/rust-ftp — An FTP client for Rust
- Low level
- libpnet/libpnet — Cross-platform, low level networking
- NanoMsg
- thehydroimpulse/nanomsg.rs — a modern messaging library that is the successor to ZeroMQ
- NNTP
- mattnenterprise/rust-nntp — A NNTP client for Rust
- POP3
- mattnenterprise/rust-pop3 — A POP3 client for Rust
- SSH
- alexcrichton/ssh2-rs — libssh2 bindings
- Stomp
- zslayton/stomp-rs — STOMP 1.2 client implementation in Rust
- ZeroMQ
- erickt/rust-zmq — ZeroMQ bindings
Platform specific
- Linux
- carllerche/nix-rust — Linux API bindings
- Windows
- retep998/winapi-rs — Windows API bindings
Template engine
- lfairy/maud — compile-time HTML templates
- Mustache
- Stebalien/horrorshow-rs — compile-time HTML templates
- 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/
- Core
- hyperium/hyper — an HTTP implementation
- Client
- carllerche/curl-rust — libcurl bindings
- vhbit/curl-rs — libcurl bindings
- Server
Resources
- Rust by Example
- Rust CI — a Travis CI dashboard for Rust projects
- Rust Guidelines
Tools
- 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
- brson/multirust — manage multiple Rust installations