mirror of
https://github.com/rust-unofficial/awesome-rust.git
synced 2024-11-21 10:45:55 +02:00
16 KiB
16 KiB
Awesome Rust
A curated list of awesome Rust code and resources. Inspired by the other awesome lists.
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.
Applications
- gchp/iota — a simple text editor written in Rust
- uutils/coreutils — cross-platform Rust rewrite of the GNU coreutils
- Servo — a prototype web browser engine written in Rust
Games
- Coeuvre/rust-2048
- lifthrasiir/angolmois-rust — a minimalistic music video game which supports the BMS format
Frameworks
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
- 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
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
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
- Redis
- mitsuhiko/redis-rs — Redis library in Rust
- RethinkDB
- Redis
- SQL
- MySql
- blackbeam/rust-mysql-simple — a native MySql client
- PostgreSql
- sfackler/rust-postgres — a native PostgreSQL client
- Sqlite
- linuxfood/rustsqlite — Sqlite3 bindings
- MySql
Date and time
Encoding
- TyOverby/bincode — a binary encoder/decoder in Rust
- Bencode
- arjantop/rust-bencode — Bencode implementation in Rust
- Cap'n Proto
- 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+
- JeremyLetang/rgtk — 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
- SFML
- jeremyletang/rust-sfml — SFML bindings
- Termbox
- gchp/rustbox — a Rust implementation of termbox
- wxWidgets
Image processing
- 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
- Low level
- libpnet/libpnet — Cross-platform, low level networking
- NanoMsg
- thehydroimpulse/nanomsg.rs — a modern messaging library that is the successor to ZeroMQ
- SSH
- alexcrichton/ssh2-rs — libssh2 bindings
- Stomp
- zslayton/stomp-rs — STOMP 1.2 client implementation in Rust
- ZeroMQ
Platform specific
- Linux
- carllerche/nix-rust — Linux API bindings
Template engine
- Mustache
Testing
- BurntSushi/quickcheck — a Rust implementation of QuickCheck
- farcaller/shiny — a fancy syntax similar to ruby's rspec or Objective-C's kiwi
Web programming
See also http://arewewebyet.com/
- Core
- chris-morgan/rust-http — will be replaced by Teepee
- 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