Ranked awesome lists, all in one place
This list is a copy of rust-unofficial/awesome-rust with ranks
Awesome Rust
A curated list of Rust code and resources.
If you want to contribute, please read this.
Table of contents
- Applications
- Development tools
-
Libraries
- Astronomy
- Asynchronous
- Audio
- Authentication
- Bioinformatics
- Caching
- Cloud
- Command-line
- Compression
- Computation
- Concurrency
- Configuration
- Cryptography
- Database
- Data processing
- Data structures
- Data visualization
- Date and time
- Distributed systems
- Encoding
- Filesystem
- Game development
- Geospatial
- Graphics
- Graph processing
- GUI
- Image processing
- Industrial automation
- Language specification
- Logging
- Machine learning
- Macro
- Markup language
- Mobile
- Network programming
- Parser
- Platform specific
- Scripting
- Template engine
- Text processing
- Text search
- Virtualization
- Web programming
- Resources
- License
Applications
See also Friends of Rust (organizations running Rust in production).
-
andschwa/rust-genetic-algorithm ★46 — a genetic algorithm for academic benchmark problems
-
azerupi/mdBook ★1173 — a command line utility to create books from markdown files
-
bluejekyll/trust-dns ★838 — a DNS-server
-
ivanceras/diwata ★238 — a database administration tool for postgresql
- runconduit/conduit ★1984 - Ultralight service mesh for Kubernetes.
-
danielrangel/rsign [rsign] — A simple command-line tool used to generate/sign/verify digital signatures designed to be compatible with Minisign
- darrint/device-blocker ★14 — Limit screen time to children’s various mobile devices by blocking internet access on the family Wifi router.
-
dlecan/generic-dns-update ★3 ⏳1Y — a tool to update DNS zonefiles with your IP address
-
Factotum ★101 — A system to programmatically run data pipelines
- fcsonline/drill ★193 — a HTTP load testing application inspired by Ansible syntax
- Fractalide ★443 — Simple Rust Microservices
- habitat — An tool created by Chef to build, deploy, and manage applications.
- imjacobclark/Herd ★73 ⏳2Y — an experimental HTTP load testing application
-
intecture/api ★21 — an API-driven server management and configuration tool
- jedisct1/flowgger ★329 — a fast, simple and lightweight data collector
- jwilm/alacritty ★10970 — a cross-platform, GPU enhanced terminal emulator
-
kbknapp/docli ★26 ⏳2Y — a command line utility for managing DigitalOcean infrastructure
- MaidSafe — a decentralized platform.
-
nicohman/eidolon ★42 — a steam and drm-free game registry and launcher for linux and macosx
- notty ★1719 ⏳1Y — A new kind of terminal
- Pijul — a patch-based distributed version control system
-
qmx/limonite ★27 ⏳1Y — static blog/website generator
- Sandstorm Collections App ★12 ⏳1Y
- Servo ★11900 — a prototype web browser engine
-
Weld ★58 — Full fake REST API generator
Audio
-
indiscipline/zrtstr ★6 ⏳1Y — a command line utility for checking if stereo wav files are faux-stereo (i.e. have identical channels) and converting such files to mono.
Cryptocurrencies
-
ethaddrgen ★42 — Custom Ethereum vanity address generator made in Rust
- Parity ★4463 — Fast, light, and robust Ethereum implementation
-
parity-bitcoin ★385 — The Parity Bitcoin client
Database
-
pingcap/tikv ★3313 — a distributed KV database in Rust
-
PumpkinDB ★1015 — an event sourcing database engine
-
seppo0010/rsedis ★1138 ⏳1Y — a Redis reimplementation in Rust
Emulators
See also crates matching keyword ‘emulator’.
- Commodore 64
- Gameboy
- NES
- Playstation
- ZX Spectrum
- Virtual Boy
- Emulator Development tools
- SNES
- ioncodes/snesutilities ★4 ⏳1Y — ROM analyser/extractor
- SNES
Games
See also Games Made With Piston.
-
lifthrasiir/angolmois-rust ★71 ⏳2Y — a minimalistic music video game which supports the BMS format
- swatteau/sokoban-rs ★81 — a Sokoban implementation
-
Zone of Control ★261 — a turn-based hexagonal strategy game
- rhex ★85 — hexagonal ascii roguelike
- citybound ★1247 — The city sim you deserve
-
ozkriff/zemeroth ★258 — a small 2D turn-based hexagonal strategy game
- rsaarelm/magog ★144 - A roguelike game in Rust
-
cristicbz/rust-doom ★1651 - A renderer for Doom, may progress to being a playable game
- Thinkofname/rust-quake ★14 - Quake map renderer in Rust
Graphics
-
Limeth/euclider ★60 — a real-time 4D CPU ray tracer
-
ivanceras/svgbobrus ★620 — converts ASCII diagrams into SVG graphics
- RazrFalcon/svgcleaner ★625 — tidies SVG graphics
-
Twinklebear/tray_rust ★268 — a ray tracer
- Image processing
-
spejss/Image-Processing-CLI-in-Rust ★6 — CLI for processing images, generating histograms.
-
spejss/Image-Processing-CLI-in-Rust ★6 — CLI for processing images, generating histograms.
Industrial automation
-
slowtec/tokio-modbus ★20 - A tokio-based modbus library.
- locka99/opcua ★27 - A pure rust OPC UA library.
-
BiancoRoyal/modbus-iiot-rust ★1 - A pure rust modbus library with no or less dependencies.
Operating systems
See also A comparison of operating systems written in Rust ★170.
-
redox-os/redox ★10012 —
-
thepowersgang/rust_os ★270 —
- tock/tock ★913 — A secure embedded operating system for Cortex-M based microcontrollers
- nebulet/nebulet ★1225 — A microkernel that implements a WebAssembly “usermode” that runs in Ring 0.
System tools
-
Aaronepower/tokei ★1040 — counts the lines of code
-
buster/rrun ★70 — a command launcher for Linux, similar to gmrun
-
cristianoliveira/funzzy ★74 — a configurable filesystem watcher inspired by entr
-
jhspetersson/fselect ★390 [fselect] — Find files with SQL-like queries
-
k0pernicus/zou ★61 — a download accelerator
-
lotabout/skim ★441 — A fuzzy finder in pure rust
- mmstick/concurr ★47 — Alternative to GNU Parallel w/ a client-server architecture
- mmstick/fontfinder ★145 — GTK3 application for previewing and installing Google’s fonts
- mmstick/parallel ★924 — Reimplementation of GNU Parallel
- mmstick/systemd-manager ★463 — a systemd service manager written in Rust using GTK-rs.
-
mmstick/tv-renamer ★105 ⏳1Y — a tv series renaming application with an optional GTK3 frontend.
-
ogham/exa ★4477 — a replacement for ‘ls’
-
Ralvke/logram ★7 — Push log files’ updates to Telegram
-
redox-os/ion ★612 — Next-generation system shell
-
sharkdp/fd ★5805 — A simple, fast and user-friendly alternative to find.
-
sitkevij/hex ★11 — A colorized hexdump terminal utility.
-
m4b/bingrep ★1009 — Greps through binaries from various OSs and architectures, and colors them.
-
uutils/coreutils ★4120 — a cross-platform Rust rewrite of the GNU coreutils
-
mattgreen/watchexec ★540 — Executes commands in response to file modifications
Text editors
-
gchp/iota ★1128 — a simple text editor
-
mathall/rim ★397 — Vim-like text editor written in Rust
- xi-editor ★12897 — a modern editor with a backend written in Rust.
Text processing
-
BurntSushi/ripgrep ★9312 — combines the usability of The Silver Searcher with the raw speed of grep
-
BurntSushi/xsv ★1926 — a fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)
- whitfin/runiq ★12 [runiq] - an efficient way to filter duplicate lines from unsorted input.
Utilities
- arthrp/quick-skeleton ★3 — Project scaffolding tool, similar to Yeoman and Slush.
-
yaa110/rubigo ★41 — Golang dependency tool and package manager, written in Rust
- amar-laksh/workstation ★6 - A commandline tool to help you manage your workstation by distancing you from your screen, locking your screen when you aren’t there among other things with OPENCV!
Virtualization
-
tailhook/vagga ★1410 — a containerization tool without daemons
Window managers
-
way-cooler/way-cooler ★1607 — a customizable Wayland compositor (window manager)
Web
-
OUISRC/muro ★45 — A new Forum use rust, rocket, diesel, postgresql, and responsive design
Web Servers
-
thecoshman/http ★31 — Host These Things Please - a basic http server for hosting a folder fast and simply
-
svenstaro/miniserve ★129 — a small, self-contained cross-platform CLI tool that allows you to just grab the binary and serve some file(s) via HTTP
- TheWaWaR/simple-http-server ★94 - simple static http server
Development tools
-
Clippy ★2233 [clippy] — Rust lints
-
clog-tool/clog-cli ★419 ⏳1Y — generates a changelog from git metadata (conventional changelog)
-
dan-t/rusty-tags ★188 — create ctags/etags for a cargo project and all of its dependencies
- frewsxcv/crate-deps ★16 — generates images of dependency graphs for crates hosted on crates.io
-
git-journal ★250 — The Git Commit Message and Changelog Generation Framework
-
rust-lang-nursery/rustfix ★303 — automatically applies the suggestions made by rustc
-
just ★599 — A handy command runner for project-specific tasks
-
Module Linker — Extension that adds
<a>
links to references inmod
,use
andextern crate
statements at GitHub. -
ptags ★16 — A parallel universal-ctags wrapper for git repository
-
Racer ★2481 — code completion for Rust
-
rustfmt ★1667 — a Rust code formatter
-
Rustup ★1836 — the Rust toolchain installer
- Rust Language Server ★1590 — a server that runs in the background, providing IDEs, editors, and other tools with information about Rust programs
-
artifact ★336 — the design doc tool made for developers
-
semantic-rs ★108 ⏳1Y — automatic crate publishing
Build system
-
Cargo — the Rust package manager
-
BurntSushi/cargo-benchcmp ★129 [cargo-benchcmp] — utility to compare Rust micro-benchmarks
-
cardoe/cargo-bitbake ★11 [cargo-bitbake] - cargo extension that can generate BitBake recipes utilizing the classes from meta-rust
-
rsolomo/cargo-check ★93 ⏳1Y [cargo-check] — a wrapper around
cargo rustc -- -Zno-trans
which can be helpful for running a faster compile if you only need correctness checks -
kbknapp/cargo-count ★80 [cargo-count] — lists source code counts and details about cargo projects, including unsafe statistics
-
mmstick/cargo-deb ★226 — generate binary Debian packages
-
pwoolcoc/cargo-do ★11 [cargo-do] — run multiple cargo commands in a row
-
maxsnew/cargo-dot ★32 ⏳2Y — generate graphs of a Cargo project’s dependencies
-
cardoe/cargo-ebuild ★24 [cargo-ebuild] - cargo extension that can generate ebuilds using the in-tree eclasses
-
killercup/cargo-edit ★469 [cargo-edit] — allows you to add and list dependencies by reading/writing to your Cargo.toml file from the command line
-
Ralvke/cargo-find ★6 [cargo-find] — Find crates from command line
-
kbknapp/cargo-graph ★112 [cargo-graph] — updated fork of
cargo-dot
with additional features -
imp/cargo-info [cargo-info] — queries crates.io for crates details from command line
-
sagiegurari/cargo-make ★142 [cargo-make] — Rust task runner and build tool.
-
regexident/cargo-modules ★123 [cargo-modules] — A cargo plugin for showing a tree-like overview of a crate’s modules.
-
imp/cargo-multi [cargo-multi] — runs specified cargo command on multiple crates
-
kbknapp/cargo-outdated ★206 [cargo-outdated] — displays when newer versions of Rust dependencies are available, or out of date
-
sunng87/cargo-release ★141 [cargo-release] — tool for releasing git-managed cargo project, build, tag, publish, doc and push
-
DanielKeep/cargo-script ★251 [cargo-script] — lets people quickly and easily run Rust “scripts” which can make use of Cargo’s package ecosystem
-
greyblake/cargo-testify ★45 [cargo-testify] — watches files changes, runs tests and notifies about the result with friendly OS notification
-
nabijaczleweli/cargo-update ★156 [cargo-update] — cargo subcommand for checking and applying updates to installed executables
-
passcod/cargo-watch ★417 [cargo-watch] — utility for cargo to compile projects when sources change
-
BurntSushi/cargo-benchcmp ★129 [cargo-benchcmp] — utility to compare Rust micro-benchmarks
- CMake
-
SiegeLord/RustCMake ★65 — an example project showing usage of CMake with Rust
-
SiegeLord/RustCMake ★65 — an example project showing usage of CMake with Rust
- Webpack
- Ralvke/rust-loader ★26 — Webpack Rust loader (wasm)
Debugging
- GDB
- rust-gdb
-
gdbgui ★5482 — Browser based frontend for gdb to debug C, C++, Rust, and go.
- LLDB
- lldb_batchmode.py — allows to use LLDB in a way similar to GDB’s batch mode.
- CodeLLDB — a LLDB extension for Visual Studio Code.
- rr
- rr — rr is a lightweight tool for recording and replaying execution of applications
Deployment
- Docker
- emk/rust-musl-builder ★329 — Docker images for compiling static Rust binaries using musl-libc and musl-gcc, with static versions of useful C libraries
-
kpcyrd/mini-docker-rust ★67 — An example project for very small rust docker images
- liuchong/docker-rustup ★25 — a multiple version (with musl tools) Rust Docker image
-
messense/rust-musl-cross ★34 - Docker images for compiling static Rust binaries using musl-cross
- rust-lang-nursery/docker-rust ★68 — the official Rust Docker image
- Google App Engine
- DenisKolodin/rust-app-engine ★22 ⏳2Y — App Engine Rust boilerplate
- Heroku
- emk/heroku-buildpack-rust ★170 — a buildpack for Rust applications on Heroku
Embedded
- Cross compiling
-
japaric/rust-cross ★874 — everything you need to know about cross compiling Rust programs
-
japaric/xargo ★528 — effortless cross compilation of Rust programs to custom bare-metal targets like ARM Cortex-M
-
japaric/rust-cross ★874 — everything you need to know about cross compiling Rust programs
- Raspberry Pi
- Ogeon/rust-on-raspberry-pi ★262 ⏳1Y — instructions for how to cross compile Rust projects for the Raspberry Pi .
FFI
See also Foreign Function Interface, The Rust FFI Omnibus (a collection of examples of using code written in Rust from other languages) and FFI examples written in Rust ★291.
- C
-
rlhunt/cbindgen ★195 — generates C header files from Rust source files. Used in Gecko for WebRender
-
Sean1708/rusty-cheddar ★181 ⏳1Y — generates C header files from Rust source files
-
rlhunt/cbindgen ★195 — generates C header files from Rust source files. Used in Gecko for WebRender
- C++
- rust-lang-nursery/rust-bindgen ★720 — a Rust bindings generator
- Erlang
-
hansihe/Rustler ★947 — safe Rust bridge for creating Erlang NIF functions
-
hansihe/Rustler ★947 — safe Rust bridge for creating Erlang NIF functions
- Haskell
- mgattozzi/curryrs ★180 — Bridge the gap between Haskell and Rust
- mgattozzi/haskellrs ★12 ⏳1Y — Rust in Haskell FFI Example
- mgattozzi/rushs ★0 ⏳1Y — Haskell in Rust FFI Example
- Java
-
bennettanderson/rjni ★35 ⏳1Y — use Java from Rust
-
drrb/java-rust-example ★204 — use Rust from Java
-
kud1ing/rucaja ★27 [rucaja] — use Java from Rust
-
prevoty/jni-rs ★96 [jni] — use Rust from Java
-
rawrasaur/rust-jdbc ★6 — uses JDBC from Rust
-
sfackler/rust-jni-sys ★23 [jni-sys] — Rust definitions corresponding to jni.h
-
bennettanderson/rjni ★35 ⏳1Y — use Java from Rust
- Lua
-
jcmoyer/rust-lua53 ★90 — Lua 5.3 bindings for Rust
-
kballard/rust-lua ★102 ⏳1Y — Safe Rust bindings to Lua 5.1
-
tickbh/td_rlua ★22 — Zero-cost high-level lua 5.3 wrapper for Rust
-
tomaka/hlua ★367 — Rust library to interface with Lua
-
jcmoyer/rust-lua53 ★90 — Lua 5.3 bindings for Rust
- mruby
-
anima-engine/mrusty ★177 ⏳1Y — mruby safe bindings for Rust
-
anima-engine/mrusty ★177 ⏳1Y — mruby safe bindings for Rust
- Node.js
-
neon-bindings/neon ★2599 — use Rust from Node.js
-
neon-bindings/neon ★2599 — use Rust from Node.js
- Objective-C
- SSheldon/rust-objc ★135 — Objective-C Runtime bindings and wrapper for Rust
- Perl
- vickenty/mi-rust ★2 ⏳1Y - Adds support to M::I for building modules with Cargo
-
vickenty/perl-xs ★21 - Create Perl XS modules using Rust
- Python
- getsentry/milksnake ★379 - extension for python setuptools that allows you to distribute dynamic linked libraries in Python wheels in the most portable way imaginable.
-
dgrunwald/rust-cpython ★780 — Python bindings
-
PyO3/PyO3 ★772 — Rust bindings for the Python interpreter
- R
-
rustr/rustr ★111 — use Rust from R, and use R in Rust
-
rustr/rustr ★111 — use Rust from R, and use R in Rust
- Ruby
-
d-unseductable/ruru ★697 — native Ruby extensions written in Rust
-
tildeio/helix ★1633 — write Ruby classes in Rust
-
d-unseductable/ruru ★697 — native Ruby extensions written in Rust
- Web Assembly
-
ashleygwilliams/wasm-pack —
pack up the wasm and publish it to npm!
-
rustwasm/wasm-bindgen ★911 — A project for facilitating high-level interactions between wasm modules and JS.
-
ashleygwilliams/wasm-pack —
IDEs
See also Are we (I)DE yet? and Rust and IDEs.
- Atom
- Eclipse
-
Emacs
- rust-mode ★341 — Rust Major Mode
- flycheck-rust — Rust support for Flycheck ★1579
- emacs-racer — Autocompletion (see also company and auto-complete ★1441)
- lsp-rust - Add rls support to lsp-mode ★748
- gnome-builder native support for rust and cargo since Version 3.22.2
-
Kakoune
- ul/kak-lsp ★35 — LSP client. Implemented in Rust and supports rls out of the box.
- NetBeans
-
IntelliJ
-
intellij-rust/intellij-rust ★1854 —
- intellij-rust/intellij-toml ★26 — basic Toml support
-
intellij-rust/intellij-rust ★1854 —
-
Ride ★135 —
- SolidOak — a simple IDE for Rust, based on GTK+ and Neovim ★27534
-
Sublime Text
- rust-lang/rust-enhanced ★341 — official Rust package
- sublimehq/packages — native Sublime support (already installed)
-
Vim — the ubiquitous text editor
- rust.vim ★1044 — provides file detection, syntax highlighting, formatting, Syntastic integration, and more.
- vim-cargo ★23 — command bindings to quickly run cargo stuff from vim.
- vim-racer — allows vim to use Racer ★2481 for Rust code completion and navigation.
- autozimu/LanguageClient-neovim ★1171 — LSP client. Implemented in Rust and supports rls out of the box.
- Visual Studio
-
PistonDevelopers/VisualRust ★635 — a Visual Studio extension for Rust
-
PistonDevelopers/VisualRust ★635 — a Visual Studio extension for Rust
-
Visual Studio Code
- rust-lang-nursery/rls-vscode - Rust support for Visual Studio Code
- CodeLLDB — a LLDB extension
-
crates - crates is an extension for crates.io dependencies.
★6
- KalitaAlexey/vscode-rust — a fork of RustyCode
- saviorisdead/RustyCode (unmaintained)
Pattern recognition
-
sfikas/rusteval ★12 — A tool used to evaluate the output of retrieval algorithms
Profiling
-
performancecopilot/hornet ★12 — a Performance Co-Pilot memory-mapped values instrumentation library
-
ellisonch/rust-stopwatch ★40 — a stopwatch library
- FlameGraphs
- mrhooray/torch ★88 — generates FlameGraphs based on DWARF Debug Info
-
TyOverby/flame ★270 —
Static analysis
-
nvzqz/static-assertions-rs ★55 [static_assertions] Compile-time assertions to ensure that invariants are met
Testing
[testing]
-
llogiq/mutagen ★218 [mutagen] — A source-level mutation testing framework (nightly only)
-
AlKass/polish ★32 — Mini Testing/Test-Driven Framework
-
altsysrq/proptest ★176 [proptest] — property testing framework inspired by the Hypothesis framework for Python
-
BurntSushi/quickcheck ★803 [quickcheck] — a Rust implementation of QuickCheck
-
Mockito ★60 [mockito] — HTTP mocking
- utkarshkukreti/speculate.rs ★6 [speculate] — An RSpec inspired minimal testing framework for Rust
-
rust-fuzz/afl.rs ★647 — a Rust fuzzer, using AFL
- trust ★538 - A Travis CI and AppVeyor template to test your Rust crate on 5 architectures and publish binary releases of it for Linux, macOS and Windows
-
xd009642/tarpaulin ★293 [tarpaulin] — A code coverage tool designed for Rust
Libraries
Astronomy
-
saurvs/astro-rust ★69 — astronomy for Rust
-
mindriot101/rust-fitsio ★2 [fitsio] — fits interface library wrapping cfitsio
-
flosse/rust-sun ★10 — A rust port of the JS library suncalc
Asynchronous
-
zonyitoo/coio-rs ★369 — a coroutine I/O library with a working-stealing scheduler
-
dpc/mioco ★94 — Scalable, coroutine-based, asynchronous IO handling library
-
rust-lang-nursery/futures-rs ★2052 — Zero-cost futures in Rust
-
carllerche/mio ★2578 — MIO is a lightweight IO library for Rust with a focus on adding as little overhead as possible over the OS abstractions
Audio
[audio]
-
GuillaumeGomez/rust-fmod ★25 — FMOD bindings
-
jhasse/ears ★49 — a simple library to play Sounds and Musics, on top of OpenAL and libsndfile
-
jpernst/alto ★45 — OpenAL 1.1 bindings
-
musitdev/portmidi-rs ★41 ⏳1Y — PortMidi bindings
-
ruuda/hound ★107 [Hound] — A WAV encoding and decoding library
-
tomaka/rodio ★189 - A Rust audio playback library
-
RustAudio
-
RustAudio/rust-portaudio ★175 — PortAudio bindings
-
RustAudio/rust-portaudio ★175 — PortAudio bindings
Authentication
-
hngnaig/rust-accountkit ★6 — An implementation Facebook AccountKit for Rust
-
Keats/jsonwebtoken ★151 — JSON Web Token lib in rust
Bioinformatics
- Rust-Bio — bioinformatics libraries in Rust.
Caching
-
jaysonsantos/bmemcached-rs ★14 — Memcached library written in pure rust
- jaemk/cached ★58 — Simple function caching/memoization
-
aisk/rust-memcache ★21 - Memcached client library
Concurrency
-
crossbeam-rs/crossbeam ★956 – Support for parallelism and low-level concurrency in Rust
-
Rayon ★2000 – A data parallelism library for Rust
-
rustcc/coroutine-rs ★309 – Coroutine Library in Rust
-
zonyitoo/coio-rs ★369 – Coroutine I/O for Rust
Cloud
- AWS [aws]
- DigitalOcean
-
kbknapp/doapi ★24 ⏳1Y — DigitalOcean v2 API bindings
-
kbknapp/doapi ★24 ⏳1Y — DigitalOcean v2 API bindings
Command-line
- Argument parsing
-
kbknapp/clap-rs ★1954 [clap] — a simple to use, full featured command-line argument parser
-
docopt/docopt.rs ★570 [docopt] — a Rust implementation of DocOpt
-
TeXitoi/structopt ★504 [structopt] — parse command line argument by defining a struct
-
killercup/quicli ★227 [quicli] — quickly build cool CLI apps in Rust
-
kbknapp/clap-rs ★1954 [clap] — a simple to use, full featured command-line argument parser
- Human-centered design
-
yoshuawuyts/human-panic ★214 — panic messages for humans
-
yoshuawuyts/human-panic ★214 — panic messages for humans
- Line editor
- srijs/rust-copperline ★22 ⏳1Y [copperline] — pure-Rust command line editing library
-
MovingtoMars/liner ★61 [liner] — a library offering readline-like functionality
-
kkawakam/rustyline ★177 [rustyline] — readline implementation in Rust
- Pipeline
-
imp/pager-rs [pager] — pipe your output through an external pager
-
hniksic/rust-subprocess ★38 [subprocess] — facilities for interaction with external pipelines
-
philippkeller/rexpect ★21 [rexpect] — automate interactive applications such as ssh, ftp, passwd, etc
-
imp/pager-rs [pager] — pipe your output through an external pager
- Progress
- mitsuhiko/indicatif ★601 [indicatif] — indicate progress to users
- a8m/pb ★174 [pbr] — console progress bar for Rust
- FGRibreau/spinners ★167 [spinners] — 60+ elegant terminal spinners
- Prompt
-
hashmismatch/terminal_cli.rs ★19 [terminal_cli] — build an interactive command prompt
-
hashmismatch/terminal_cli.rs ★19 [terminal_cli] — build an interactive command prompt
- Style
-
ogham/rust-ansi-term ★136 [ansi_term] — control colours and formatting on ANSI terminals
-
LukasKalbertodt/term-painter ★45 [term-painter] — cross-platform styled terminal output
- vitiral/termstyle ★10 [termstyle] — build (and test) formatted and styled command line applications
- SergioBenitez/yansi ★32 [yansi] — a dead simple ANSI terminal color painting library
-
ogham/rust-ansi-term ★136 [ansi_term] — control colours and formatting on ANSI terminals
- TUI
- TimonPost/crossterm ★22 [crossterm] — crossplatform terminal library
-
gyscos/Cursive ★709 [cursive] — build rich TUI applications
-
ticki/termion ★796 [termion] — bindless library for controlling terminals/TTY
-
fdehau/tui-rs [tui] — a TUI library inspired by blessed-contrib and termui ★7516
- BearLibTerminal
-
cfyzium/bearlibterminal ★11 [bear-lib-terminal] — BearLibTerminal bindings
-
cfyzium/bearlibterminal ★11 [bear-lib-terminal] — BearLibTerminal bindings
- ncurses
-
jeaye/ncurses-rs ★363 [ncurses] — ncurses bindings
-
ihalila/pancurses ★121 [pancurses] — curses library, supports linux and windows
-
jeaye/ncurses-rs ★363 [ncurses] — ncurses bindings
- Termbox
-
gchp/rustbox [rustbox] — bindings to Termbox ★1261
-
gchp/rustbox [rustbox] — bindings to Termbox ★1261
Compression
-
Brotli
- ende76/brotli-rs ★49 ⏳2Y — implementation of Brotli compression
- dropbox/rust-brotli ★232 — Brotli decompressor in Rust that optionally avoids the stdlib
- bzip2
-
alexcrichton/bzip2-rs ★19 — libbz2 bindings
-
alexcrichton/bzip2-rs ★19 — libbz2 bindings
- gzip
- carols10cents/zopfli — implementation of the Zopfli ★2233 compression algorithm for higher quality deflate or zlib compression
- miniz
-
alexcrichton/flate2-rs ★163 — miniz bindings
-
alexcrichton/flate2-rs ★163 — miniz bindings
- snappy
-
JeffBelgum/rust-snappy — snappy ★2806 bindings
-
JeffBelgum/rust-snappy — snappy ★2806 bindings
- tar
-
alexcrichton/tar-rs ★125 — tar archive reading/writing in Rust
-
alexcrichton/tar-rs ★125 — tar archive reading/writing in Rust
- zip
-
mvdnes/zip-rs ★109 — read and write ZIP archives
-
mvdnes/zip-rs ★109 — read and write ZIP archives
Computation
-
BLAS [blas]
- mikkyang/rust-blas ★65 — BLAS bindings
-
stainless-steel/blas ★25 — BLAS bindings
-
Conjugate Gradient
- noshu/cg-sys ★1 ⏳2Y — Rust binding of fortran CG+ subroutine
-
GMP
-
fizyk20/rust-gmp ★23 — libgmp bindings
-
fizyk20/rust-gmp ★23 — libgmp bindings
-
GSL
-
GuillaumeGomez/rust-GSL — GSL bindings
-
GuillaumeGomez/rust-GSL — GSL bindings
-
LAPACK
-
stainless-steel/lapack ★36 — LAPACK bindings
-
stainless-steel/lapack ★36 — LAPACK bindings
-
L-BFGS-B
- noshu/lbfgsb-sys ★2 ⏳2Y — Rust binding of fortran L-BFGS-B subroutine
-
sebcrozet/nalgebra ★718 — low-dimensional linear algebra library
- Parallel
- arrayfire/arrayfire-rust ★274 — Arrayfire bindings
-
autumnai/collenchyma ★395 ⏳2Y — An extensible, pluggable, backend-agnostic framework for parallel, high-performance computations on CUDA, OpenCL and common host CPU.
-
luqmana/rust-opencl ★150 ⏳1Y — OpenCL bindings
- Scirust
-
indigits/scirust ★156 — scientific computing library in Rust
-
indigits/scirust ★156 — scientific computing library in Rust
- Statrs
-
boxtown/statrs ★97 — Robust statistical computation library in Rust
-
boxtown/statrs ★97 — Robust statistical computation library in Rust
- Rustimization [rustimization]
- noshu/rustimization ★15 — A rust optimization library which includes L-BFGS-B and Conjugate Gradient algorithm
Configuration
-
mehcode/config-rs ★257 [config] — Layered configuration system for Rust applications (with strong support for 12-factor applications).
Cryptography
-
briansmith/ring ★904 — Safe, fast, small crypto using Rust and BoringSSL’s cryptography primitives.
-
briansmith/webpki ★125 — Web PKI TLS X.509 certificate validation in Rust.
- ctz/rustls ★725 — a Rust implementation of TLS
-
DaGenix/rust-crypto ★734 — cryptographic algorithms in Rust
-
dnaq/sodiumoxide — libsodium ★5760 bindings
-
doublify/libblockchain ★24 — A Blockchain implementation
-
exonum/exonum ★633 [exonum] — extensible framework for blockchain projects
- klutzy/suruga ★120 ⏳2Y — a Rust implementation of TLS 1.2
-
libOctavo/octavo ★123 — Modular hash and crypto library in Rust
-
rustindia/mpw-rs ★19 — Pure Rust implementation of the Master Password password manager
-
racum/rust-djangohashers ★28 — A Rust port of the password primitives used in the Django Project. It doesn’t require Django, only hashes and validates passwords according to its style.
- RNCryptor/rncryptor-rs ★4 ⏳1Y — Pure Rust implementation of the RNCryptor AES file format
- sfackler/rust-native-tls ★110 — Bindings for native TLS libraries
-
sfackler/rust-openssl ★383 — OpenSSL bindings
- sfackler/rust-security-framework ★16 — Bindings for Security Framework (OSX native crypto)
- steffengy/schannel-rs ★7 — Bindings for Schannel (Windows native TLS)
- zebradil/rustotpony ★3 — CLI manager of one-time password generators aka Google Authenticator (TOTP)
Database
[database]
-
sfackler/r2d2 ★337 — generic connection pool
- NoSQL [nosql]
-
Cassandra [cassandra, cql]
-
AlexPikalov/cdrs ★129 [cdrs] — native client written in Rust
-
Metaswitch/cassandra-rs ★2 — bindings to the DataStax C/C++ client
-
AlexPikalov/cdrs ★129 [cdrs] — native client written in Rust
- CouchDB [couchdb]
-
chill-rs/chill ★20 ⏳1Y [couchdb] — a Rust client for the CouchDB REST API
-
chill-rs/chill ★20 ⏳1Y [couchdb] — a Rust client for the CouchDB REST API
- Elasticsearch [elasticsearch]
-
benashford/rs-es ★145 [rs-es] — a Rust client for the Elastic REST API
-
elastic-rs/elastic-reqwest ★5 [elastic_reqwest] — a lightweight implementation of the Elasticsearch API based on Reqwest
-
benashford/rs-es ★145 [rs-es] — a Rust client for the Elastic REST API
- etcd
-
jimmycuadra/rust-etcd ★75 [etcd] — A client library for CoreOS’s etcd.
-
jimmycuadra/rust-etcd ★75 [etcd] — A client library for CoreOS’s etcd.
- ForestDB
-
vhbit/sherwood — ForestDB ★860 bindings
-
vhbit/sherwood — ForestDB ★860 bindings
-
InfluxDB
-
panoptix-za/influxdb-rs ★6 — asynchronous interface
-
driftluo/InfluxDBClient-rs ★12 - Synchronization interface
-
panoptix-za/influxdb-rs ★6 — asynchronous interface
- LevelDB
-
skade/leveldb — LevelDB ★14117 bindings
-
skade/leveldb — LevelDB ★14117 bindings
- LMDB [lmdb]
-
vhbit/lmdb-rs ★80 [lmdb-rs] — LMDB bindings
-
vhbit/lmdb-rs ★80 [lmdb-rs] — LMDB bindings
- MongoDB [mongodb]
-
mongodb-labs/mongo-rust-driver-prototype ★256 [mongodb] — MongoDB bindings
-
mongodb-labs/mongo-rust-driver-prototype ★256 [mongodb] — MongoDB bindings
- Neo4j [cypher, neo4j]
- Redis [redis]
-
mitsuhiko/redis-rs ★796 — Redis library in Rust
-
mitsuhiko/redis-rs ★796 — Redis library in Rust
-
RocksDB
-
spacejam/rust-rocksdb ★226 — RocksDB bindings
-
spacejam/rust-rocksdb ★226 — RocksDB bindings
-
UnQLite
-
zitsen/unqlite.rs ★37 — UnQLite bindings
-
zitsen/unqlite.rs ★37 — UnQLite bindings
-
ZooKeeper
-
bonifaido/rust-zookeeper ★61 [zookeeper] — A client library for Apache ZooKeeper.
-
bonifaido/rust-zookeeper ★61 [zookeeper] — A client library for Apache ZooKeeper.
-
Cassandra [cassandra, cql]
- SQL [sql]
- Microsoft SQL
- MySql [mysql]
-
AgilData/mysql-proxy-rs ★111 ⏳1Y — a MySQL Proxy
-
blackbeam/mysql_async ★52 [mysql_async] — asyncronous Rust Mysql driver based on Tokio.
-
blackbeam/rust-mysql-simple ★221 [mysql] — a native MySql client
-
AgilData/mysql-proxy-rs ★111 ⏳1Y — a MySQL Proxy
- PostgreSql [postgres, postgresql]
-
sfackler/rust-postgres ★970 [postgres] — a native PostgreSQL client
-
sfackler/rust-postgres ★970 [postgres] — a native PostgreSQL client
- Sqlite [sqlite]
-
jgallagher/rusqlite ★333 — Sqlite3 bindings
-
jgallagher/rusqlite ★333 — Sqlite3 bindings
- ORM [orm]
-
diesel-rs/diesel ★2787 — an ORM and Query builder for Rust
-
ivanceras/rustorm ★20 — an ORM for Rust
-
diesel-rs/diesel ★2787 — an ORM and Query builder for Rust
Data processing
- bluss/ndarray ★533 — N-dimensional array with array views, multidimensional slicing, and efficient operations
- kernelmachine/utah ★65 ⏳1Y — Dataframe structure and operations in Rust
- weld-project/weld ★883 - High-performance runtime for data analytics applications
Data structures
-
bluss/rust-itertools ★449 —
- contain-rs — Extension of Rust’s std::collections
-
danielpclark/array_tool ★33 — Array helpers for Rust. Some of the most common methods you would use on Arrays made available on Vectors. Polymorphic implementations for handling most of your use cases.
-
fizyk20/generic-array ★101 – a hack to allow for arrays sized by typenums
-
Nemo157/roaring-rs ★58 ⏳1Y – Roaring Bitmaps in Rust
-
orium/rpds ★236 [rpds] — Persistent data structures in Rust.
-
garro95/priority-queue ★7[priority-queue] - A priority queue that implements priority changes.
-
reem/rust-typemap ★87 —
-
xfix/enum-map ★20 [enum-map] — An optimized map implementation for enums using an array to store values.
Data visualization
Date and time
Distributed systems
- Antimony
-
antimonyproject/antimony ★27 [antimony] — stream processing / distributed computation platform
-
antimonyproject/antimony ★27 [antimony] — stream processing / distributed computation platform
- Apache Kafka
-
fede1024/rust-rdkafka [rdkafka] — librdkafka ★2002 bindings
-
spicavigo/kafka-rust ★271 —
-
fede1024/rust-rdkafka [rdkafka] — librdkafka ★2002 bindings
- Beanstalkd
-
schickling/rust-beanstalkd — Beanstalkd ★4612 bindings
-
schickling/rust-beanstalkd — Beanstalkd ★4612 bindings
- HDFS
-
hyunsik/hdfs-rs ★17 ⏳2Y — libhdfs bindings
-
hyunsik/hdfs-rs ★17 ⏳2Y — libhdfs bindings
-
GildedHonour/atarashii_imap ★37 — 新しい (atarashii/new) IMAP client in Rust. It supports plain and secure connections
-
gsquire/sendgrid-rs ★13 — unofficial Rust library for SendGrid API
-
lettre/lettre ★243 — an SMTP-library for Rust
-
staktrace/mailparse ★28 [mailparse] — a library for parsing real-world email files
Encoding
[encoding]
- ASN.1
-
alex/rust-asn1 ★44 — a Rust ASN.1 (DER) serializer
-
alex/rust-asn1 ★44 — a Rust ASN.1 (DER) serializer
- Bencode
-
arjantop/rust-bencode ★22 ⏳1Y — Bencode implementation in Rust
-
arjantop/rust-bencode ★22 ⏳1Y — Bencode implementation in Rust
- Binary
-
arcnmx/nue ★31 ⏳2Y — I/O and binary data encoding for Rust
-
TyOverby/bincode ★387 — a binary encoder/decoder in Rust
-
m4b/goblin ★201 [goblin] — cross-platform, zero-copy, and endian-aware binary parsing
-
arcnmx/nue ★31 ⏳2Y — I/O and binary data encoding for Rust
- BSON
- Byte swapping
-
BurntSushi/byteorder ★298 — Supports big-endian, little-endian and native byte orders
-
BurntSushi/byteorder ★298 — Supports big-endian, little-endian and native byte orders
- Cap’n Proto
- CBOR
-
BurntSushi/rust-cbor ★67 — Supports JSON conversion and type-based encoding/decoding
-
BurntSushi/rust-cbor ★67 — Supports JSON conversion and type-based encoding/decoding
- Character Encoding
-
hsivonen/encoding_rs ★74 [encoding_rs] — A Gecko-oriented implementation of the Encoding Standard in Rust
-
lifthrasiir/rust-encoding ★164 —
-
hsivonen/encoding_rs ★74 [encoding_rs] — A Gecko-oriented implementation of the Encoding Standard in Rust
- CRC
- CSV
- HTML
-
servo/html5ever ★642 — High-performance browser-grade HTML5 parser
-
veddan/rust-htmlescape ★18 — encoding/decoding HTML entities
-
servo/html5ever ★642 — High-performance browser-grade HTML5 parser
- JSON
- pikkr/pikkr ★455 [pikkr] — JSON parser which picks up values directly without performing tokenization in Rust
-
serde-rs/json [serde_json] — JSON support for Serde ★1522 framework
-
maciejhirsz/json-rust ★233 [json] — JSON implementation in Rust
- Jsonnet
- MsgPack
-
3Hren/msgpack-rust ★263 — a pure Rust low/high level MessagePack implementation
-
3Hren/msgpack-rust ★263 — a pure Rust low/high level MessagePack implementation
- PEM
-
jcreekmore/pem-rs ★4 [pem] - a Rust based way to parse and encode PEM-encoded data
-
jcreekmore/pem-rs ★4 [pem] - a Rust based way to parse and encode PEM-encoded data
- ProtocolBuffers
- RON (Rusty Object Notation)
- Tnetstring
- TOML
- XML
-
Florob/RustyXML ★69 ⏳2Y — an XML parser written in Rust
-
shepmaster/sxd-document ★87 — An XML library in Rust
-
shepmaster/sxd-xpath ★49 — An XPath library in Rust
-
netvl/xml-rs ★213 — a streaming XML library
-
Florob/RustyXML ★69 ⏳2Y — an XML parser written in Rust
- YAML
-
chyh1990/yaml-rust ★215 — The missing YAML 1.2 implementation for Rust.
-
dtolnay/serde-yaml [serde_yaml] — YAML support for Serde ★1522 framework
-
kimhyunkang/libyaml-rust ★17 ⏳1Y — libyaml bindings
-
vitiral/stfu8 ★5 — Sorta Text Format in UTF-8
-
media-io/yaserde ★3 — Yet Another Serializer/Deserializer specialized for XML
-
chyh1990/yaml-rust ★215 — The missing YAML 1.2 implementation for Rust.
Filesystem
- Operations
-
vitiral/path_abs ★19 — Absolute serializable path types and associated methods.
-
webdesus/fs_extra ★28 — expanding opportunities standard library std::fs and std::io
-
vitiral/path_abs ★19 — Absolute serializable path types and associated methods.
- Temporary Files
-
rust-lang-nursery/tempdir ★112 — temporary directory library
-
Stebalien/tempfile ★118 — temporary file library
-
Stebalien/xattr ★6 [xattr] — list and manipulate unix extended file attributes
-
zboxfs/zbox ★781 [zbox] — Zero-details, privacy-focused embeddable file system.
-
rust-lang-nursery/tempdir ★112 — temporary directory library
Game development
See also Are we game yet?
- Allegro
-
SiegeLord/RustAllegro ★43 — Allegro 5 bindings
-
SiegeLord/RustAllegro ★43 — Allegro 5 bindings
- Challonge
-
vityafx/challonge-rs ★0 ⏳1Y [challonge] — Client library for the Challonge REST API. Helps to organize tournaments.
-
vityafx/challonge-rs ★0 ⏳1Y [challonge] — Client library for the Challonge REST API. Helps to organize tournaments.
- Corange
- lucidscape/corange-rs — Corange ★788 ⏳1Y bindings
- Entity-Component Systems (ECS)
-
slide-rs/specs ★633 — Specs Parallel ECS
-
slide-rs/specs ★633 — Specs Parallel ECS
- Game Engines
-
SDL [sdl]
-
brson/rust-sdl ★165 ⏳3Y — SDL1 bindings
-
Rust-SDL2/rust-sdl2 ★751 — SDL2 bindings
-
brson/rust-sdl ★165 ⏳3Y — SDL1 bindings
- SFML
-
jeremyletang/rust-sfml ★318 — SFML bindings
-
jeremyletang/rust-sfml ★318 — SFML bindings
- Tcod-rs
- tomassedovic/tcod-rs ★106 — Libtcod bindings for Rust.
- Voxlap
- bbodi/rust-voxlap ★9 ⏳3Y — Voxlap bindings
Geospatial
- Georust — geospatial tools and libraries written in Rust
- rust-reverse-geocoder ★20 — a fast, offline reverse geocoder in Rust, inspired by https://github.com/thampiman/reverse-geocoder
Graphics
[graphics]
-
gfx-rs/gfx ★1782 — A high-performance, bindless graphics API for Rust.
- Font
-
redox-os/rusttype ★383 — a pure Rust alternative to libraries like FreeType
-
redox-os/rusttype ★383 — a pure Rust alternative to libraries like FreeType
- OpenGL [opengl]
-
brendanzab/gl-rs ★339 —
-
glium/glium ★1589 — safe OpenGL wrapper for the Rust language.
-
Kiss3d — draw simple geometric figures and play with them with one-liners
-
PistonDevelopers/glfw-rs ★285 —
-
tomaka/glutin ★906 — Rust alternative to GLFW
-
brendanzab/gl-rs ★339 —
- PDF
-
kaj/rust-pdf ★41 ⏳1Y —
-
fschutt/printpdf ★134 — PDF writing library
-
J-F-Liu/lopdf ★71 — PDF document manipulation
-
kaj/rust-pdf ★41 ⏳1Y —
-
Vulkan [vulkan]
-
vulkano ★1273 [vulkano] —
-
vulkano ★1273 [vulkano] —
Graph processing
-
kud1ing/tinkerpop-rs ★7 — an example how to use Apache TinkerPop from Rust
GUI
[gui]
-
PistonDevelopers/conrod ★1667 — An easy-to-use, immediate-mode, 2D GUI library written entirely in Rust
- Cocoa
-
GTK+ [gtk]
-
gtk-rs/gtk ★735 — GTK+ bindings
-
relm ★891 — Asynchronous, GTK+-based, GUI library, inspired by Elm
-
gtk-rs/gtk ★735 — GTK+ bindings
-
ImGui ★11251
-
imgui-rs ★370 — Rust bindings for ImGui
-
imgui-rs ★370 — Rust bindings for ImGui
-
IUP
- clear-coat ★12 ⏳1Y — Clear Coat is a Rust wrapper for the IUP GUI library
-
dcampbell24/iup-rust ★28 ⏳2Y — IUP bindings
-
Kiss-ui ★311 — a simple UI framework built on IUP
-
libui ★7365
-
pcwalton/libui-rs — libui bindings
. Abandoned project. The most updated fork is LeoTindall/libui-rs ★165.
-
pcwalton/libui-rs — libui bindings
-
Nuklear ★10355
-
nuklear-rust ★155 — Rust bindings for Nuklear
-
nuklear-rust ★155 — Rust bindings for Nuklear
-
Qt
-
cyndis/qmlrs ★389 ⏳2Y — QtQuick bindings
-
kitech/qt.rs ★25 ⏳2Y — Qt5 bindings
- Rust Qt Binding Generator — Binding generator hosted by KDE.
- rust-qt —
-
White-Oak/qml-rust ★147 — QML bindings.
-
cyndis/qmlrs ★389 ⏳2Y — QtQuick bindings
- saurvs/nfd-rs — nativefiledialog ★553 bindings
-
Sciter
-
sciter-sdk/rust-sciter ★186 — Sciter bindings
-
sciter-sdk/rust-sciter ★186 — Sciter bindings
Image processing
- abonander/img_hash ★65 — Perceptual image hashing and comparison for equality and similarity.
-
chyh1990/imageproc ★77 ⏳2Y — An advanced image processing library for Rust.
-
PistonDevelopers/image ★727 — Basic imaging processing functions and methods for converting to and from image formats
-
kali/opencv-rust ★126 — Rust bindings for OpenCV
-
teovoinea/steganography ★24 [steganography] — A simple steganography library
Language specification
-
shnewto/bnf ★21 — A library for parsing Backus–Naur form context-free grammars.
Logging
[log]
-
rust-lang-nursery/log ★357 — Logging implementation for Rust
-
slog-rs/slog ★483 — Structured, composable logging for Rust
-
sfackler/log4rs ★179 — highly configurable logging framework modeled after Java’s Logback and log4j libraries
Machine learning
See also About Rust’s Machine Learning Community.
-
AtheMathmo/rusty-machine ★692 — Machine learning library for Rust
-
avinashshenoy97/RusticSOM ★3 - Rust library for Self Organising Maps (SOM).
-
autumnai/leaf ★5286 — Open Machine Intelligence framework.
. Abandoned project. The most updated fork is spearow/juice.
-
tensorflow/rust ★1199 — Rust language bindings for TensorFlow.
-
maciejkula/rustlearn ★282 — Machine learning crate for Rust.
Macro
- cute
-
mattgathu/cute ★123 - Macro for Python-esque list comprehensions in Rust.
-
mattgathu/cute ★123 - Macro for Python-esque list comprehensions in Rust.
- hado
- ludat/hado-rs ★19 ⏳1Y - A little macro for writing haskell-like do expressions without too much ceremony
Markup language
- CommonMark
- google/pulldown-cmark ★495 — CommonMark parser in Rust
Mobile
- Android
-
tomaka/android-rs-glue ★645 — glue between Rust and Android
-
tomaka/android-rs-glue ★645 — glue between Rust and Android
- iOS
-
TimNN/cargo-lipo ★83 — a cargo lipo subcommand which automatically creates a universal library for use with your iOS application.
-
vhbit/ObjCrust ★38 ⏳3Y — using Rust to create an iOS static library
-
TimNN/cargo-lipo ★83 — a cargo lipo subcommand which automatically creates a universal library for use with your iOS application.
- Pebble
- andars/pebble.rs ★40 ⏳2Y — a crate that allows Rust to be used to develop Pebble applications.
Network programming
- FTP
-
mattnenterprise/rust-ftp ★54 — an FTP client for Rust
-
mattnenterprise/rust-ftp ★54 — an FTP client for Rust
- IPNetwork
-
achanda/ipnetwork ★17 — A library to work with IP networks in pure Rust
-
achanda/ipnetwork ★17 — A library to work with IP networks in pure Rust
- Low level
-
libpnet/libpnet ★657 — a cross-platform, low level networking
- tokio-rs/tokio ★1879 — a network application framework for rapid development and highly scalable production deployments of clients and servers.
- dylanmckay/protocol ★34 — Custom TCP/UDP protocol definitions
-
actix/actix ★1355 — Actor library for Rust
-
libpnet/libpnet ★657 — a cross-platform, low level networking
- NanoMsg
-
thehydroimpulse/nanomsg.rs ★293 — nanomsg bindings
-
thehydroimpulse/nanomsg.rs ★293 — nanomsg bindings
- NNTP
-
mattnenterprise/rust-nntp ★10 ⏳1Y — an NNTP client for Rust
-
mattnenterprise/rust-nntp ★10 ⏳1Y — an NNTP client for Rust
- POP3
-
mattnenterprise/rust-pop3 ★12 — a POP3 client for Rust
-
mattnenterprise/rust-pop3 ★12 — a POP3 client for Rust
- SSH
-
alexcrichton/ssh2-rs ★112 — libssh2 bindings
- Thrussh ★9 ⏳1Y — an SSH library written from scratch in Rust, backed by libsodium
-
alexcrichton/ssh2-rs ★112 — libssh2 bindings
- Stomp
-
zslayton/stomp-rs ★56 — a STOMP 1.2 client implementation in Rust
-
zslayton/stomp-rs ★56 — a STOMP 1.2 client implementation in Rust
- uTP
-
meqif/rust-utp ★77 — a uTP (Micro Transport Protocol) library for Rust.
-
meqif/rust-utp ★77 — a uTP (Micro Transport Protocol) library for Rust.
- ZeroMQ
-
erickt/rust-zmq ★306 — ZeroMQ bindings
-
erickt/rust-zmq ★306 — ZeroMQ bindings
- CoAP
-
Covertness/coap-rs ★40 — A Constrained Application Protocol(CoAP) library for Rust.
-
Covertness/coap-rs ★40 — A Constrained Application Protocol(CoAP) library for Rust.
Parser
-
Geal/nom ★2174 — parser combinator library
-
ivanceras/inquerest ★16 ⏳1Y — an URL parameter parser for rest filter inquiry
- kevinmehall/rust-peg ★463 — Parsing Expression Grammar (PEG) parser generator
-
m4rw3r/chomp ★171 – A fast monadic-style parser combinator
-
Marwes/combine ★468 — parser combinator library
-
lalrpop/lalrpop ★709 — LR(1) parser generator for Rust
-
nrc/zero ★24 ⏳1Y — zero-allocation parsing of binary data
-
pest-parser/pest ★824 — The Elegant Parser
- ptal/oak ★105 — a typed PEG parser generator (compiler plugin)
-
rustless/queryst ★35 — a query string parsing library for Rust inspired by https://github.com/ljharb/qs
Platform specific
- Linux
-
inotify-rs/inotify ★86 — inotify bindings
-
yaa110/rust-iptables ★14 ⏳1Y — iptables bindings
-
inotify-rs/inotify ★86 — inotify bindings
- Unix-like
-
nix-rust/nix ★694 — Unix-like API bindings
-
zargony/rust-fuse — FUSE ★1373 bindings
-
nix-rust/nix ★694 — Unix-like API bindings
- Windows
-
retep998/winapi-rs ★456 — Windows API bindings
-
retep998/winapi-rs ★456 — Windows API bindings
Scripting
- PistonDevelopers/dyon ★618 — A rusty dynamically typed scripting language
- gluon-lang/gluon ★1291 — A small, statically-typed, functional programming language
- murarth/ketos ★305 — A Lisp dialect functional programming language serving as a scripting and extension language for rust
- JohnBSmith/moss ★4 [moss] — A dynamically typed scripting language
- jonathandturner/rhai ★250 — A tiny and fast embedded scripting language resembling a combination of JS and Rust
Template engine
- Handlebars
-
sunng87/handlebars-rust ★254 — Handlebars template engine with inheritance, custom helper support.
-
sunng87/handlebars-rust ★254 — Handlebars template engine with inheritance, custom helper support.
- HTML
-
lfairy/maud ★369 — compile-time HTML templates
-
Stebalien/horrorshow-rs ★121 — compile-time HTML templates
-
kaj/ructe ★45 — HTML template system for Rust
-
Keats/tera ★537 — template engine based on Jinja2 and the Django template language.
-
djc/askama ★415 — template rendering engine based on Jinja
-
lfairy/maud ★369 — compile-time HTML templates
- Mustache
- tailhook/marafet ★8 ⏳2Y — Compiler for Jade-like template language to cito.js-based virtual dom
Text processing
-
BurntSushi/suffix ★87 ⏳1Y — Linear time suffix array construction (with Unicode support)
-
BurntSushi/tabwriter ★90 — Elastic tab stops (i.e., text column alignment)
-
dguo/strsim-rs ★72 [strsim-rs] — String similarity metrics
-
mgeisler/textwrap ★30 [textwrap] — Word wrap text (with support for hyphenation)
-
pwoolcoc/ngrams ★10 ⏳1Y — Construct n-grams from arbitrary iterators
-
rust-lang/regex ★786 — Regular expressions (RE2 style)
-
greyblake/whatlang-rs ★136 — Natural language detection library based on trigrams
-
yaa110/rake-rs ★6 — Multilingual implementation of RAKE algorithm for Rust
Text search
-
BurntSushi/fst ★449 [fst] —
-
CurrySoftware/perlin ★52 [perlin] —
-
tantivy-search/tantivy ★887 [tantivy] —
Virtualization
-
beneills/quantum ★81 ⏳1Y — Advanced Rust quantum computer simulator
- ekse/unicorn-rs ★40 — Rust bindings for the unicorn CPU emulator
- saurvs/hypervisor-rs ★25 ⏳1Y — Hardware-accelerated virtualization on OS X
Web programming
See also Are we web yet? and Rust web framework comparison ★758.
- Client-side / WASM
- DenisKolodin/yew ★4395 [yew] — Rust framework for making client web apps
-
koute/cargo-web ★423 [cargo-web] — A Cargo subcommand for the client-side Web
-
koute/stdweb ★1893 [stdweb] — A standard library for the client-side Web
- HTTP Client
-
alexcrichton/curl-rust ★410 — libcurl bindings
-
hyperium/hyper ★3624 — an HTTP implementation
-
seanmonstar/reqwest ★712 — an ergonomic HTTP Client for Rust.
-
alexcrichton/curl-rust ★410 — libcurl bindings
- HTTP Server
-
Gotham ★915 — A flexible web framework that does not sacrifice safety, security or speed.
-
hyperium/hyper ★3624 — an HTTP implementation
-
GildedHonour/frank_jwt ★142 — JSON Web Token implementation in Rust.
-
Iron ★4921 — a middleware-based server framework
-
sunng87/handlebars-iron — Handlebars-rust ★254 as an Iron web framework middleware.
-
Nickel ★2137 — inspired by Express
-
Ogeon/rustful ★847 — a RESTful web framework for Rust
-
Rocket ★4715 — Rocket is web framework for Rust (nightly) with a focus on ease-of-use, expressability, and speed
-
Rustless — a REST-like API micro-framework inspired by Grape and Hyper ★3624
-
sappworks/sapper ★522 — A lightweight web framework built on async hyper, implemented in Rust language.
-
tiny-http ★289 — Low level HTTP server library
-
tomaka/rouille ★344 — Web framework in Rust
-
oltdaniel/zap ★38 - A lightning fast http framework for Rust
-
actix/actix-web ★1713 — A lightweight async web framework for Rust with websocket support
-
mitum/sincere ★50 — A micro web framework for Rust(stable) based on hyper and multithreading.
-
Gotham ★915 — A flexible web framework that does not sacrifice safety, security or speed.
-
WebSocket
-
cyderize/rust-websocket ★511 — a framework for dealing with WebSocket connections (both clients and servers)
-
housleyjk/ws-rs ★604 — lightweight, event-driven WebSockets for Rust
- snapview/tungstenite-rs ★90 — Lightweight stream-based WebSocket implementation for Rust.
-
actix/sockjs ★32 — SockJS server for Rust
-
vityafx/urlshortener-rs ★5 [urlshortener] — A very simple urlshortener library for Rust.
-
cyderize/rust-websocket ★511 — a framework for dealing with WebSocket connections (both clients and servers)
- Miscellaneous
- cargonauts ★171 — A web framework intended for building maintainable, well-factored web apps.
-
doublifyapis/toolkit-rust ★4 ⏳1Y — Doublify API toolkit for Rust
- pyros2097/rust-embed ★55 — A macro to embed static assets into the rust binary
- Reverse Proxy
-
sozu-proxy/sozu ★586 [sozu] - A HTTP reverse proxy.
-
sozu-proxy/sozu ★586 [sozu] - A HTTP reverse proxy.
- Static Site Generators
-
Keats/gutenberg ★924 [gutenberg] — An opinionated static site generator with everything built-in.
-
cobalt-org/cobalt.rs ★612 - Static site generator written in Rust
- FuGangqiang/mdblog.rs ★11 — Static site generator from markdown files.
-
quadrupleslap/leven ★47 [leven] — a simple, parallelized blog generator.
-
Keats/gutenberg ★924 [gutenberg] — An opinionated static site generator with everything built-in.
Resources
- Benchmarks
-
TeXitoi/benchmarksgame-rs ★38 — Rust implementations for the The Computer Language Benchmarks Game
-
TeXitoi/benchmarksgame-rs ★38 — Rust implementations for the The Computer Language Benchmarks Game
- Decks & Presentations
- Learning systems programming with Rust — Presented by Julia Evans @ Rustconf 2016.
- Shipping a Solid Rust Crate — Presented by Michael Gattozzi @ RustConf 2017
- Rust: Hack Without Fear! — Presented by Nicholas Matsakis @ C++Now 2018
- Learning
- Programming Community Curated Resources for Learning Rust - A list of recommended resources voted by the programming community.
- exercism.io — programming exercises that help you learn new concepts in Rust.
- Idiomatic Rust ★638 — A peer-reviewed collection of articles/talks/repos which teach idiomatic Rust.
- Learning Rust With Entirely Too Many Linked Lists — in-depth exploration of Rust’s memory management rules, through implementing a few different types of list structures.
- Rust by Example
- Rust Cookbook — a collection of simple examples that demonstrate good practices to accomplish common programming tasks, using the crates of the Rust ecosystem.
- rust-learning ★3247 — a collection of useful resources to learn Rust
- Rustlings ★2563 — small exercises to get you used to reading and writing Rust code
- stdx ★957 — Learn these crates first as an extension to std
- University of Pennsylvania’s Comp Sci Rust Programming Course
- Podcasts
- New Rustacean — a podcast about learning Rust
- RustCamp 2015 Talks
- Rust Design Patterns ★1563
- Rust Guidelines
- RustBooks ★312 — list of RustBooks
License
This list is a copy of rust-unofficial/awesome-rust with ranks