.github/workflows | ||
results | ||
src | ||
.gitattributes | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
README.md |
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
- Artificial Intelligence
- Astronomy
- Asynchronous
- Audio and Music
- Authentication
- Automotive
- Bioinformatics
- Caching
- Cloud
- Command-line
- Compression
- Computation
- Concurrency
- Configuration
- Cryptography
- Data processing
- Data structures
- Data visualization
- Database
- Date and time
- Distributed systems
- Encoding
- Filesystem
- Functional Programming
- Game development
- Geospatial
- Graph processing
- Graphics
- GUI
- Image processing
- Language specification
- Logging
- Macro
- Markup language
- Mobile
- Network programming
- Packaging formats
- Parsing
- Peripherals
- Platform specific
- Scripting
- Simulation
- Task scheduling
- Template engine
- Text processing
- Text search
- Unsafe
- Virtualization
- Web programming
- Registries
- Resources
- License
Applications
See also Rust — Production organizations running Rust in production.
- alacritty — A cross-platform, GPU enhanced terminal emulator
- AnderEnder/s3find-rs — A command line utility to walk an Amazon S3 hierarchy, an analog of find for Amazon S3
- andschwa/rust-genetic-algorithm — A genetic algorithm for academic benchmark problems
- asm-cli-rust — An interactive assembly shell written in rust.
- ballista — PoC of distributed compute platform using Rust, Apache Arrow, and Kubernetes!
- cloudflare/boringtun — A Userspace WireGuard VPN Implementation
- darrint/device-blocker — Limit screen time to children's various mobile devices by blocking internet access on the family Wifi router.
- denoland/deno — A secure JavaScript/TypeScript runtime built with V8, Rust, and Tokio
- dlecan/generic-dns-update — A tool to update DNS zonefiles with your IP address
- Factotum — A system to programmatically run data pipelines
- fcsonline/drill — A HTTP load testing application inspired by Ansible syntax
- Fractalide — Simple Rust Microservices
- habitat — An tool created by Chef to build, deploy, and manage applications.
- Herd — an experimental HTTP load testing application
- intecture/api — an API-driven server management and configuration tool
- ivanceras/diwata — A database administration tool for postgresql
- jedisct1/flowgger — A fast, simple and lightweight data collector
- kbknapp/docli — A command line utility for managing DigitalOcean infrastructure
- kytan — High Performance Peer-to-Peer VPN
- limonite — static blog/website generator
- linkerd/linkerd2-proxy — Ultralight service mesh for Kubernetes.
- MaidSafe — A decentralized platform.
- mdBook — A command line utility to create books from markdown files
- nicohman/eidolon — A steam and drm-free game registry and launcher for linux and macosx
- notty — A new kind of terminal
- Pijul — A patch-based distributed version control system
- rsign — A simple command-line tool used to generate/sign/verify digital signatures designed to be compatible with Minisign
- Rudr — A Kubernetes implementation of the Open Application Model specification
- rx — Vi inspired Modern Pixel Art Editor
- Sandstorm Collections App
- Servo — A prototype web browser engine
- tiny — A terminal IRC client
- trust-dns — A DNS-server
- updns — DNS proxy tool
- Weld — Full fake REST API generator
- wezterm — A GPU-accelerated cross-platform terminal emulator and multiplexer
Audio and Music
- enginesound — A GUI and command line application used to procedurally generate semi-realistic engine sounds. Featuring in-depth configuration, variable sample rate and a frequency analysis window.
- indiscipline/zrtstr — A command line utility for checking if stereo wav files are faux-stereo (i.e. have identical channels) and converting such files to mono.
- Lyriek — A multi-threaded GTK 3 application for fetching the lyrics of the current playing song.
- Phate6660/musinfo — A program to query music info from mpd and display it in a notification.
- Phate6660/rsmpc — An implementation of mpc, but not directly as there will be a few differences.
- Phate6660/rsmpc-gui — A gtk frontend for mpd.
- Polaris — A music streaming application.
- Spotify TUI — A Spotify client for the terminal written in Rust.
- Spotifyd — An open source Spotify client running as a UNIX daemon.
Cryptocurrencies
- Bitcoin Satoshi's Vision — A Rust library for working with Bitcoin SV .
- cardano-cli — Cardano Command Line Interface (CLI)
- ChainX — Fully Decentralized Interchain Crypto Asset Management on Polkadot.
- CITA — A high performance blockchain kernel for enterprise users.
- coinbase-pro-rs — Coinbase pro client in Rust, supports sync/async/websocket
- Diem — Diem’s mission is to enable a simple global currency and financial infrastructure that empowers billions of people.
- ethaddrgen — Custom Ethereum vanity address generator made in Rust
- Grin — Evolution of the MimbleWimble protocol
- hdwallet — BIP-32 HD wallet related key derivation utilities.
- Holochain — Scalable P2P alternative to blockchain for all those distributed apps you always wanted to build. The link to the old repo is this which is no longer maintained.
- ibc-rs - Rust implementation of the Interblockchain Communication protocol
- infincia/bip39-rs — Rust implementation of BIP39.
- Joystream — A user governed video platform
- Lighthouse — Rust Ethereum 2.0 Client
- near/nearcore — decentralized smart-contract platform for low-end mobile devices.
- Nervos CKB — Nervos CKB is a public permissionless blockchain, the common knowledge layer of Nervos network.
- Nimiq — Rust implementation of Nimiq node
- Parity-Bitcoin — The Parity Bitcoin client
- Parity-Bridge — Bridge between any two ethereum-based networks
- Parity-Ethereum — Fast, light, and robust Ethereum client
- Parity-Zcash — Rust implementation of the Zcash protocol
- Phala-Network/phala-blockchain — Confidential smart contract blockchain based on Intel SGX and Substrate
- Polkadot — Heterogeneous multi‑chain technology with pooled security
- rbtc — Convert BTC to any currency and vice-versa.
- rust-cardano — Rust implementation of Cardano primitives, helpers, and related applications
- Substrate — Generic modular blockchain template written in Rust
- tendermint-rs - Rust implementation of Tendermint blockchain data structures and clients
- wagyu [wagyu] — Rust library for generating cryptocurrency wallets
- YeeCo yeeroot — YeeCo yeeroot is a permissionless, secure, high performance and scalable public blockchain platform powered by full sharding technology on PoW consensus written in Rust
- zcash — Zcash is an implementation of the "Zerocash" protocol.
Database
- indradb — Rust based graph database
- Lucid — High performance and distributed KV store accessible through a HTTP API.
- Materialize - Streaming SQL database powered by Timely Dataflow 💲
- noria — Dynamically changing, partially-stateful data-flow for web application backends
- ParityDB — Fast and reliable database, optimised for read operation
- PumpkinDB — an event sourcing database engine
- seppo0010/rsedis — A Redis reimplementation in Rust
- Skytable — A multi-model NoSQL database
- sled — A (beta) modern embedded database [](https://github.com/spacejam/s led/actions?workflow=Rust)
- TerminusDB - open source graph database and document store
- tikv — A distributed KV database in Rust
Emulators
See also crates matching keyword 'emulator'.
- Commodore 64
- Emulator Development tools
- SNES
- ioncodes/snesutilities — ROM analyser/extractor
- SNES
- Flash Player
- Ruffle — Ruffle is an Adobe Flash Player emulator written in the Rust programming language. Ruffle targets both the desktop and the web using WebAssembly.
- Gameboy
- Gekkio/mooneye-gb —
- mohanson/gameboy — Full featured Cross-platform GameBoy emulator. Forever boys!.
- mvdnes/rboy —
- NivenT/RGB —
- Gameboy Advance
- michelhe/rustboyadvance-ng - RustboyAdvance-ng is a Gameboy Advance emulator with desktop, android and WebAssembly support.
- Intel 8080 CPU
- mohanson/i8080 — Intel 8080 cpu emulator by Rust
- NES
- Amjad50/plastic — plastis is a full featured NES emulator built in Rust.
- iamsix/oxidenes
- koute/pinky —
- pcwalton/sprocketnes
- Playstation
- rustation-ng — Playstation emulator using Rust
- Virtual Boy
- ZX Spectrum
- pacmancoder/rustzx —
- rodrigorc/raze — For WebAssembly, live version here
Games
See also Games Made With Piston.
- aleshaleksey/TGWM — An RPG with turned-based mechanics (work in progress)
- citybound — The city sim you deserve
- cristicbz/rust-doom — A renderer for Doom, may progress to being a playable game
- doukutsu-rs — A Rust reimplementation of Cave Story engine with some enhancements.
- garkimasera/rusted-ruins — Extensible open world rogue like game with pixel art
- lifthrasiir/angolmois-rust — A minimalistic music video game which supports the BMS format
- ozkriff/zemeroth — A small 2D turn-based hexagonal strategy game
- phantomion/snake_game - Simple terminal snake game written in Rust.
- rhex — hexagonal ascii roguelike
- rsaarelm/magog — A roguelike game in Rust
- schulke-214/connect-four — A simple connect four implementation.
- schulke-214/rsnake — Snake written in Rust.
- soydos — A wasm implementation of Pusoy Dos
- swatteau/sokoban-rs — A Sokoban implementation
- Thinkofname/rust-quake — Quake map renderer in Rust
- Veloren — An open world, open source multiplayer voxel RPG game currently in alpha development
- Zone of Control — A turn-based hexagonal strategy game
Graphics
- Image processing:
- mikigraf/Image-Processing-CLI-in-Rust — CLI for processing images, generating histograms.
- ivanceras/svgbob — converts ASCII diagrams into SVG graphics
- Limeth/euclider — A real-time 4D CPU ray tracer
- RazrFalcon/resvg — An SVG rendering library.
- RazrFalcon/svgcleaner — tidies SVG graphics
- turnage/valora — A library for generative fine art
- Twinklebear/tray_rust — A ray tracer
Image processing
- Imager — Automated image optimization.
Industrial automation
- BiancoRoyal/modbus-iiot-rust — A pure rust modbus library with no or less dependencies.
- locka99/opcua — A pure rust OPC UA library.
- slowtec/tokio-modbus — A tokio-based modbus library.
Observability
- Mnwa/gtsa — A simple solution to proxy gelf messages (messages for Graylog) to Sentry
- OpenTelemetry — OpenTelemetry provides a single set of APIs, libraries, agents, and collector services to capture distributed traces and metrics from your application. You can analyze them using Prometheus, Jaeger, and other observability tools.
- timberio/vector — A High-Performance, Logs, Metrics, & Events Router.
Operating systems
See also A comparison of operating systems written in Rust.
- nebulet/nebulet — A microkernel that implements a WebAssembly "usermode" that runs in Ring 0.
- redox-os/redox —
- thepowersgang/rust_os —
- tock/tock — A secure embedded operating system for Cortex-M based microcontrollers
Productivity
- espanso — A cross-platform Text Expander written in Rust
- eureka — A CLI tool to input and store your ideas without leaving the terminal
- pier-cli/pier — A central repository to manage (add, search metadata, etc.) all your one-liners, scripts, tools, and CLIs
- subilo - A continuous deployment agent
Security tools
- arvancloud/libinjection-rs — Rust bindings for libinjection
- epi052/feroxbuster - A simple, fast, recursive content discovery tool written in Rust (
- kpcyrd/authoscope — A scriptable network authentication cracker
- kpcyrd/rshijack — A TCP connection hijacker, rust rewrite of shijack
- kpcyrd/sn0int — A semi-automatic OSINT framework and package manager
- kpcyrd/sniffglue — A secure multithreaded packet sniffer
- lethe — A secure cross-platform drive wiping utility
- phra/rustbuster — A Comprehensive Web Fuzzer and Content Discovery Tool
- ripasso — A password manager, filesystem compatible with pass
- rustscan/rustscan — Make Nmap faster with this port scanning tool
System tools
- ajeetdsouza/zoxide — A fast alternative to
cd
that learns your habits - bandwhich — Terminal bandwidth utilization tool
- brocode/fblog — Small command-line JSON Log viewer
- buster/rrun — A command launcher for Linux, similar to gmrun
- cocom - NTP client purely written in Rust.
- cristianoliveira/funzzy — A configurable filesystem watcher inspired by entr
- dalance/procs — A modern replacement for 'ps' written by Rust
- ddh — Fast duplicate file finder
- diskonaut — Terminal visual disk space navigator
- dust — A more intuitive version of du
- fselect — Find files with SQL-like queries
- gitui - Blazing fast terminal client for git written in Rust.
- jamesbirtles/hotkey-rs — A library to listen to global hotkeys in Rust
- k0pernicus/zou — A download accelerator
- Kondo - CLI & GUI tool for deleting software project artifacts and reclaiming disk space
- lotabout/rargs [rargs] — xargs + awk with pattern matching support
- lotabout/skim — A fuzzy finder in pure rust
- Luminarys/synapse — Flexible and fast BitTorrent daemon.
- m4b/bingrep — Greps through binaries from various OSs and architectures, and colors them.
- mitnk/cicada — A bash-like Unix shell
- mmstick/concurr — Alternative to GNU Parallel w/ a client-server architecture
- mmstick/fontfinder — GTK3 application for previewing and installing Google's fonts
- mmstick/parallel — Reimplementation of GNU Parallel
- mmstick/tv-renamer — A tv series renaming application with an optional GTK3 frontend.
- mxseev/logram — Push log files' updates to Telegram
- nivekuil/rip - A safe and ergonomic alternative to
rm
- ogham/exa — A replacement for 'ls'
- organize-rt — Organize files based on regex rules (file extensions by default).
- orhun/kmon — Linux Kernel Manager and Activity Monitor
- Peltoche/lsd — An ls with a lot of pretty colors and awesome icons
- pop-os/debrep — APT repository tool for building and managing an APT repo
- pop-os/popsicle — GTK3 & CLI utility for flashing multiple USB devices in parallel
- pop-os/system76-power — Linux power management daemon (DBus-interface) with CLI tool.
- pueue — Manage your long running shell commands.
- redox-os/ion — Next-generation system shell
- sharkdp/bat — A cat(1) clone with wings.
- sharkdp/fd — A simple, fast and user-friendly alternative to find.
- sitkevij/hex — A colorized hexdump terminal utility.
- slai11/goto — A simple and user-friendly way to jump to your indexed directories.
- uutils/coreutils — A cross-platform Rust rewrite of the GNU coreutils
- watchexec — Executes commands in response to file modifications
- XAMPPRocky/tokei — counts the lines of code
- yake — Yake is a task runner based on yaml files
- ytop - A TUI system monitor written in Rust
Text editors
- amp — Inspired by Vi/Vim.
- gchp/iota — A simple text editor
- ilai-deutel/kibi — A tiny (≤1024 LOC) text editor with syntax highlighting, incremental search and more.
- mathall/rim — Vim-like text editor written in Rust
- ox — An independent Rust text editor that runs in your terminal!
- Remacs — A community-driven port of Emacs to Rust.
- vamolessa/pepper [pepper] — An opinionated modal editor to simplify code editing from the terminal
- xi-editor — A modern editor with a backend written in Rust.
- xray — An experimental next-generation Electron-based text editor.
Text processing
- cpc - Parses and calculates strings of math with support for units and unit conversion, from
1+2
to1% of round(1 lightyear / 14!s to km/h)
. - dmerejkowsky/ruplacer — Find and replace text in source files
- grex — A command-line tool and library for generating regular expressions from user-provided test cases
- lavifb/todo_r — Find all your TODO notes with one command!
- Lisprez/so_stupid_search — A simple and fast string search tool for human beings
- phiresky/ripgrep-all — ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
- replicadse/complate — An in-terminal text templating tool designed for standardizing messages (like for GIT commits).
- ripgrep — combines the usability of The Silver Searcher with the raw speed of grep
- sd — Intuitive find & replace CLI
- vishaltelangre/ff — Find files (ff) by name!
- whitfin/bytelines — Read input lines as byte slices for high efficiency.
- whitfin/runiq — an efficient way to filter duplicate lines from unsorted input.
- xsv — A fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)
Utilities
- aleshaleksey/AZDice — A dice roll success distribution generator for tabletop homebrewers.
- amar-laksh/workstation — 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!
- arthrp/consoletimer — Simple timer for your terminal.
- arthrp/quick-skeleton — Project scaffolding tool, similar to Yeoman and Slush.
- barberousse — AWS Secrets Manager editor
- brycx/checkpwn — A Have I Been Pwned (HIBP) command-line utility tool that lets you easily check for compromised accounts and passwords.
- evansmurithi/cloak — A Command Line OTP (One Time Password) Authenticator application.
- fcsonline/tmux-thumbs — A lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator.
- gorros/s3-edit-rs — A command line tool to edit a file directly on Amazon S3.
- guoxbin/dtool — A useful command-line tool collection to assist development including conversion, codec, hashing, encryption, etc.
- mme — Command line tool to remember you commands that you sometimes forget.
- nomino — Batch rename utility for developers
- raftario/licensor — write licenses to stdout [](https://github.com/ raftario/licensor/actions?workflowID=Build)
- replydev/cotp - Trustworthy encrypted one time password authenticator app compatible with external backups.
- repoch — Convert epoch to datetime and datetime to epoch
- tversteeg/emplace — Synchronize installed packages on multiple machines
- unrelentingtech/freepass — The free password manager for power users.
- vamolessa/copycat [copycat] — A simple clipboard cli interface for windows with text and bmp support
- vamolessa/verco [verco] — A simple Git/Hg tui client focused on keyboard shortcuts
- whitfin/s3-concat — A command line tool to concatenate Amazon S3 files remotely using flexible patterns.
- whitfin/s3-meta — A command line tool to gather metadata about your Amazon S3 buckets.
- whitfin/s3-utils — A small tool containing utilities based around Amazon S3 to provide additional convenience APIs.
- yaa110/cb — Command line interface to manage clipboard
- yoannfleurydev/gitweb — Open the current remote repository in your browser.
Video
- Phate6660/rsmpv — A controller for MPV, requires IPC to be enabled in MPV.
- tgotwig/vidmerger — A wrapper around ffmpeg which simplifies merging multiple videos 🎞
- xiph/rav1e — The fastest and safest AV1 encoder.
- yuvadm/slingr — A simple CLI for streaming media files over a local network to UPnP media renderers
- yuvadm/streamlib — Play your favorite live video and audio streams from command line
Virtualization
- firecracker-microvm/firecracker — A lightweight virtual machine for container workload Firecracker Microvm
- oracle/railcar — Docker-like container OCI runtime implementation in Rust
- tailhook/vagga — A containerization tool without daemons
Web
- LemmyNet/lemmy — A link aggregator / reddit clone for the fediverse
- Plume-org/Plume — ActivityPub federating blogging application
Web Servers
- mufeedvh/binserve — A blazingly fast static web server with routing, templating, and security in a single binary you can set up with zero code
- ronanyeah/rust-hasura — A demonstration of how a Rust GraphQL server can be used as a remote schema with Hasura
- svenstaro/miniserve — A small, self-contained cross-platform CLI tool that allows you to just grab the binary and serve some file(s) via HTTP
- thecoshman/http — Host These Things Please — A basic http server for hosting a folder fast and simply
- TheWaWaR/simple-http-server — simple static http server
- wyhaya/see — Static HTTP file server
Development tools
- artifact — the design doc tool made for developers
- clippy — Rust lints
- clog-tool/clog-cli — generates a changelog from git metadata (conventional changelog)
- dan-t/rusty-tags — create ctags/etags for a cargo project and all of its dependencies
- datanymizer/datanymizer - Powerful database anonymizer with flexible rules
- delta — A syntax-highlighter for git and diff output
- dotenv-linter — Linter for
.env
files - frewsxcv/crate-deps — generates images of dependency graphs for crates hosted on crates.io
- fw — workspace productivity booster
- geiger — A program that list statistics related to usage of unsafe Rust code in a Rust crate and all its dependencies
- git-journal — The Git Commit Message and Changelog Generation Framework
- gstats — command line tool to print a developer handy summary of all git repositories below current directory
- just — A handy command runner for project-specific tasks
- mask — A CLI task runner defined by a simple markdown file
- Module Linker — Extension that adds
<a>
links to references inmod
,use
andextern crate
statements at GitHub. - ptags — A parallel universal-ctags wrapper for git repository
- Racer — code completion for Rust
- Rust Language Server — A server that runs in the background, providing IDEs, editors, and other tools with information about Rust programs
- Rust Regex Playground — Web tool to evaluate rust regular expressions
- Rust Search Extension — A handy browser extension to search crates and docs in address bar (omnibox).
- rust-lang/rustfix — automatically applies the suggestions made by rustc
- rustfmt — A Rust code formatter
- Rustup — the Rust toolchain installer
- scriptisto A language-agnostic "shebang interpreter" that enables you to write one file scripts in compiled languages.
- semantic-rs — automatic crate publishing
- tinyrick a basic task dependency tool emphasizing Rust functions over raw shell commands.
Build system
- Cargo — the Rust package manager
- cargo-benchcmp — A utility to compare Rust micro-benchmarks
- cargo-bitbake — A cargo extension that can generate BitBake recipes utilizing the classes from meta-rust
- cargo-cache — inspect/manage/clean your cargo cache (
~/.cargo/
/${CARGO_HOME}
), print sizes etc - cargo-check — A wrapper around
cargo rustc -- -Zno-trans
which can be helpful for running a faster compile if you only need correctness checks - cargo-count — lists source code counts and details about cargo projects, including unsafe statistics
- cargo-deb — Generates binary Debian packages
- cargo-deps — build dependency graphs of Rust projects
- cargo-do — run multiple cargo commands in a row
- cargo-ebuild — cargo extension that can generate ebuilds using the in-tree eclasses
- cargo-edit — allows you to add and list dependencies by reading/writing to your Cargo.toml file from the command line
- cargo-generate A generator of a rust project by leveraging a pre-existing git repository as a template.
- cargo-get - Cargo plugin to easily query information from Cargo.toml files
- cargo-graph — updated fork of
cargo-dot
with additional features. Unmaintained, seecargo-deps
- cargo-info — queries crates.io for crates details from command line
- cargo-license — A cargo subcommand to quickly view the licenses of all dependencies.
- cargo-make — Rust task runner and build tool.
- cargo-modules — A cargo plugin for showing a tree-like overview of a crate's modules.
- cargo-multi — runs specified cargo command on multiple crates
- cargo-outdated — displays when newer versions of Rust dependencies are available, or out of date
- cargo-release — tool for releasing git-managed cargo project, build, tag, publish, doc and push
- cargo-script — lets people quickly and easily run Rust "scripts" which can make use of Cargo's package ecosystem
- cargo-testify — watches files changes, runs tests and notifies about the result with friendly OS notification
- cargo-tree – Cargo subcommand that visualizes a crate's dependency graph in a tree-like format
- cargo-update — cargo subcommand for checking and applying updates to installed executables
- cargo-watch — utility for cargo to compile projects when sources change
- dtolnay/cargo-expand — Expand macros in your source code
- liuchong/cargo-x — A very simple third-party cargo subcommand to execute a custom command
- CMake
- Devolutions/CMakeRust — useful for integrating a Rust library into a CMake project
- SiegeLord/RustCMake — an example project showing usage of CMake with Rust
- Github actions
- icepuma/rust-action — rust github action
- peaceiris/actions-mdbook — GitHub Actions for mdBook
- GitHub webhooks
- snare — GitHub webhooks runner daemon
- Webpack
- mxseev/rust-loader — Webpack Rust loader (wasm)
Debugging
- GDB
- LLDB
- CodeLLDB — A LLDB extension for Visual Studio Code.
- lldb_batchmode.py — allows to use LLDB in a way similar to GDB's batch mode.
Deployment
- Docker
- emk/rust-musl-builder — Docker images for compiling static Rust binaries using musl-libc and musl-gcc, with static versions of useful C libraries
- kpcyrd/mini-docker-rust — An example project for very small rust docker images
- liuchong/docker-rustup — A multiple version (with musl tools) Rust Docker image
- messense/rust-musl-cross — Docker images for compiling static Rust binaries using musl-cross
- rust-lang-nursery/docker-rust — the official Rust Docker image
- Github Pages
- wasm-template-rust — A wasm template for Rust to publish to gh-pages without npm-deploy
- Google App Engine
- DenisKolodin/rust-app-engine — App Engine Rust boilerplate
- Heroku
- emk/heroku-buildpack-rust — A buildpack for Rust applications on Heroku
Embedded
- Arduino
- avr-rust/ruduino ^`^t Reusable components for the Arduino Uno.
- Cross compiling
- japaric/rust-cross — everything you need to know about cross compiling Rust programs
- japaric/xargo — effortless cross compilation of Rust programs to custom bare-metal targets like ARM Cortex-M
- Raspberry Pi
- Ogeon/rust-on-raspberry-pi — 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.
- C
- rlhunt/cbindgen — generates C header files from Rust source files. Used in Gecko for WebRender
- Sean1708/rusty-cheddar — generates C header files from Rust source files
- C++
- dtolnay/cxx — Safe interop between Rust and C++
- rust-cpp - Embed C++ code directly in Rust.
- rust-lang/rust-bindgen — A Rust bindings generator
- Erlang
- rusterlium/rustler — safe Rust bridge for creating Erlang NIF functions
- Haskell
- mgattozzi/curryrs — Bridge the gap between Haskell and Rust
- mgattozzi/haskellrs — Rust in Haskell FFI Example
- mgattozzi/rushs — Haskell in Rust FFI Example
- Java
- bennettanderson/rjni — use Java from Rust
- drrb/java-rust-example — use Rust from Java
- j4rs — use Java from Rust
- jni — use Rust from Java
- jni-sys — Rust definitions corresponding to jni.h
- rawrafox/rust-jdbc — uses JDBC from Rust
- rucaja — use Java from Rust
- Lua
- jcmoyer/rust-lua53 — Lua 5.3 bindings for Rust
- lilyball/rust-lua — Safe Rust bindings to Lua 5.1
- tickbh/td_rlua — Zero-cost high-level lua 5.3 wrapper for Rust
- tomaka/hlua — Rust library to interface with Lua
- mruby
- anima-engine/mrusty — mruby safe bindings for Rust
- Node.js
- infinyon/node-bindgen - Easy way to generate nodejs module using Rust
- neon-bindings/neon — Rust bindings for writing safe and fast native Node.js modules
- Objective-C
- SSheldon/rust-objc — Objective-C Runtime bindings and wrapper for Rust
- Perl
- vickenty/mi-rust — Adds support to M::I for building modules with Cargo
- vickenty/perl-xs — Create Perl XS modules using Rust
- Python
- dgrunwald/rust-cpython — Python bindings
- getsentry/milksnake — extension for python setuptools that allows you to distribute dynamic linked libraries in Python wheels in the most portable way imaginable.
- PyO3/PyO3 — Rust bindings for the Python interpreter
- Ruby
- d-unseductable/ruru — native Ruby extensions written in Rust
- danielpclark/rutie — native Ruby extensions written in Rust and vice versa
- tildeio/helix — write Ruby classes in Rust
- Web Assembly
- rhysd/wain - wain: WebAssembly INterpreter from scratch in Safe Rust with zero dependency
- rustwasm/wasm-bindgen — A project for facilitating high-level interactions between wasm modules and JS.
- rustwasm/wasm-pack — 📦 ✨ pack up the wasm and publish it to npm!
IDEs
See also Are we (I)DE yet? and Rust Tools.
- Atom
- rust-lang/atom-ide-rust — Rust IDE support for Atom, powered by the Rust Language Server (RLS)
- zargony/atom-language-rust
- Eclipse
- Emacs
- emacs-racer — Autocompletion (see also company and auto-complete)
- flycheck-rust — Rust support for Flycheck
- rust-mode — Rust Major Mode
- rustic - Rust development environment for Emacs
- gitpod.io — Online IDE with full Rust support based on Rust Language Server
- gnome-builder native support for rust and cargo since Version 3.22.2
- IntelliJ
- intellij-rust/intellij-rust —
- intellij-rust/intellij-toml — basic Toml support
- Kakoune
- kak-lsp/kak-lsp — LSP client. Implemented in Rust and supports rls out of the box.
- NetBeans
- Ride —
- SolidOak — A simple IDE for Rust, based on GTK+ and Neovim
- Sublime Text
- rust-lang/rust-enhanced — official Rust package
- sublimehq/packages — native Sublime support (already installed)
- Vim — the ubiquitous text editor
- autozimu/LanguageClient-neovim — LSP client. Implemented in Rust and supports rls out of the box.
- rust.vim — provides file detection, syntax highlighting, formatting, Syntastic integration, and more.
- vim-cargo — command bindings to quickly run cargo stuff from vim.
- vim-racer — allows vim to use Racer for Rust code completion and navigation.
- Visual Studio
- dgriffen/rls-vs2017 — Rust support for Visual Studio 2017 Preview
- PistonDevelopers/VisualRust — A Visual Studio extension for Rust
- Visual Studio Code
- CodeLLDB — A LLDB extension
- crates — crates is an extension for crates.io dependencies.
- rust-analyzer — An alternative rust language server to the RLS
- rust-lang/rls-vscode — Rust support for Visual Studio Code
Pattern recognition
- sfikas/rusteval — A tool used to evaluate the output of retrieval algorithms
Profiling
- bheisler/criterion.rs — Statistics-driven benchmarking library for Rust
- ellisonch/rust-stopwatch — A stopwatch library
- FlameGraphs
- llogiq/flame —
- mrhooray/torch — generates FlameGraphs based on DWARF Debug Info
- koute/memory-profiler — A memory profiler for Linux
- performancecopilot/hornet — A Performance Co-Pilot memory-mapped values instrumentation library
- sharkdp/hyperfine — A command-line benchmarking tool
Services
- deps.rs — Detect outdated or insecure dependencies
- docs.rs — Automatic documentation generation of crates
Static analysis
- facebookexperimental/MIRAI — an abstract interpreter operating on Rust's mid-level intermediate representation (MIR)
- static_assertions — Compile-time assertions to ensure that invariants are met
Testing
[testing]
- AlKass/polish — Mini Testing/Test-Driven Framework
- cargo-dinghy - A cargo extension to simplify running library tests and benches on smartphones and other small processor devices.
- cucumber-rust — An implementation of the Cucumber testing framework for Rust.
- demonstrate — Declarative Testing Framework
- fake-rs — A library for generating fake data
- goldenfile - A library providing a simple API for goldenfile testing.
- httpmock — HTTP mocking
- laboratory — A simple, expressive unit test framework for Rust
- mockiato — A strict, yet friendly mocking library for Rust 2018
- mockito — HTTP mocking
- mutagen — A source-level mutation testing framework (nightly only)
- proptest — property testing framework inspired by the Hypothesis framework for Python
- quickcheck — A Rust implementation of QuickCheck
- rstest — Fixture-based test framework for Rust
- ruspec — Write like Rspec testing framework with rust
- rust-fuzz/afl.rs — A Rust fuzzer, using AFL
- speculate — An RSpec inspired minimal testing framework for Rust
- tarpaulin — A code coverage tool designed for Rust
- trust — 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
Transpiling
- immunant/c2rust — C to Rust translator and cross checker built atop Clang/LLVM.
- jameysharp/corrode — A C to Rust translator written in Haskell.
Libraries
- Phate6660/nixinfo [crate] — A lib crate for gathering system info such as cpu, distro, environment, kernel, etc.
Artificial Intelligence
Genetic algorithms
- innoave/genevo — Execute genetic algorithm (GA) simulations in a customizable and extensible way.
- m-decoster/RsGenetic — Genetic Algorithm library in Rust. In maintenance mode.
- Martin1887/oxigen — Fast, parallel, extensible and adaptable genetic algorithm library. A example using this library solves the N Queens problem for N = 255 in only few seconds and using less than 1 MB of RAM.
- mneumann/evo-rs — Evolutionary Algorithm Library for Rust. Without changes for 3 years.
- pkalivas/radiate — A customizable parallel genetic programming engine capable of evolving solutions for supervised, unsupervised, and reinforcement learning problems. Comes with complete and customizable implementation of NEAT and Evtree.
- willi-kappler/darwin-rs — Evolutionary algorithms with Rust
- yurytsoy/revonet — Rust implementation of real-coded GA for solving optimization problems and training of neural networks.
Machine learning
See also About Rust’s Machine Learning Community and Are we learning yet?.
- AtheMathmo/rusty-machine — Machine learning library for Rust
- autumnai/leaf — Open Machine Intelligence framework. . Abandoned project. The most updated fork is spearow/juice.
- avinashshenoy97/RusticSOM — Rust library for Self Organising Maps (SOM).
- huggingface/tokenizers - Hugging Face's tokenizers for modern NLP pipelines written in Rust (original implementation) with bindings for Python.
- LaurentMazare/tch-rs — Rust language bindings for PyTorch.
- maciejkula/rustlearn — Machine learning crate for Rust.
- rust-ml/linfa — Machine learning framework.
- tensorflow/rust — Rust language bindings for TensorFlow.
Astronomy
- fitsio — fits interface library wrapping cfitsio
- flosse/rust-sun — A rust port of the JS library suncalc [](https://travis-ci.org/flosse/ rust-sun)
- saurvs/astro-rust — astronomy for Rust
Asynchronous
- dpc/mioco — Scalable, coroutine-based, asynchronous IO handling library
- mio — MIO is a lightweight IO library for Rust with a focus on adding as little overhead as possible over the OS abstractions
- rust-lang/futures-rs — Zero-cost futures in Rust
- rustasync/runtime — A runtime agnostic API designed to make async feel like its part of stdlib
- TeaEntityLab/fpRust — Monad/MonadIO, Handler, Coroutine/doNotation, Functional Programming features for Rust
- Xudong-Huang/may — rust stackful coroutine library
- zonyitoo/coio-rs — A coroutine I/O library with a working-stealing scheduler
Audio and Music
[audio]
- GuillaumeGomez/rust-fmod — FMOD bindings
- hound — A WAV encoding and decoding library
- jhasse/ears — A simple library to play Sounds and Musics, on top of OpenAL and libsndfile
- jpernst/alto — OpenAL 1.1 bindings
- MoAlyousef/soloud-rs — Rust bindings for the soloud audio engine library
- musitdev/portmidi-rs — PortMidi bindings
- ozankasikci/rust-music-theory — A Rust music theory library
- RustAudio
- RustAudio/cpal - Low-level cross-platform audio I/O library in pure Rust.
- RustAudio/rodio — A Rust audio playback library
- RustAudio/rust-portaudio — PortAudio bindings
Authentication
- Keats/jsonwebtoken — JSON Web Token lib in rust
- oauth2 — Extensible, strongly-typed Rust OAuth2 client library
- oxide-auth — A OAuth2 server library, for use in combination with actix or other frontends, featuring a set of configurable and pluggable backends
- sgrust01/jwtvault — Async library to manage and orchestrate JWT workflow
- yup-oauth2 — An oauth2 client implementation providing the Device, Installed and Service Account flows
Automotive
- canparse — A CAN signal and definition parser
- j2534 — J2534 PassThru bindings
- JulianSchmid/dlt_parse — Rust DLT (Diagnostic Log and Trace) packet parser
- JulianSchmid/someip_parse [someip_parse] — A library for parsing the SOME/IP network protocol (without payload interpretation)
- LibreTuner/tuneutils [tuneutils] — Utilities for interfacing with, diagnosing, and tuning car
- marcelbuesing/can-dbc [can-dbc] — A parser for the DBC format
- marcelbuesing/tokio-socketcan-bcm [tokio-socketcan-bcm] — Linux SocketCAN BCM support for tokio
- mbr/socketcan [socketcan] — Linux SocketCAN library
- oefd/tokio-socketcan [tokio-socketcan]] — Linux SocketCAN support for tokio based on the socketcan crate
- Sensirion/lin-bus [lin-bus] — LIN bus driver traits and protocol implementation
Bioinformatics
- nonnominandus/pdbtbx PDBTBX - PDB/mmCIF libary in Rust.
- Rust-Bio — bioinformatics libraries in Rust.
Caching
- aisk/rust-memcache — Memcached client library
- hit-box/hitbox — Asynchronous caching framework supporting multiple backends
- jaemk/cached — Simple function caching/memoization
- jaysonsantos/bmemcached-rs — Memcached library written in pure rust
- mozilla/sccache - Shared Compilation Cache, great for Rust compilation
Concurrency
- aymanmadkour/glock – Granular locking crate for Rust.
- crossbeam-rs/crossbeam – Support for parallelism and low-level concurrency in Rust
- orium/archery [archery] — Library to abstract from
Rc
/Arc
pointer types. - pop-os/bus-writer — Generic single-reader, multi-writer
- Rayon – A data parallelism library for Rust
- rustcc/coroutine-rs – Coroutine Library in Rust
- zonyitoo/coio-rs – Coroutine I/O for Rust
Cloud
- AWS [aws]
Command-line
- Argument parsing
- clap-rs [clap] — A simple to use, full featured command-line argument parser
- docopt/docopt.rs [docopt] — A Rust implementation of DocOpt
- killercup/quicli [quicli] — quickly build cool CLI apps in Rust
- ksk001100/seahorse [seahorse] — A minimal CLI framework written in Rust
- Data visualization
- nukesor/comfy-table [comfy-table] — Beautiful dynamic tables for your cli tools.
- reugn/rspark [rspark] — ▁▂▆▇▁▄█▁ Sparklines for Rust apps
- TeXitoi/structopt [structopt] — parse command line argument by defining a struct
- z5labs/pflag [pflag] — A port of @spf13's amazing POSIX compliant arg parsing library in Go.
- Human-centered design
- rust-cli/human-panic [human-panic] — panic messages for humans
- Line editor
- kkawakam/rustyline [rustyline] — readline implementation in Rust
- MovingtoMars/liner [liner] — A library offering readline-like functionality
- murarth/linefeed [linefeed] — Configurable, extensible, interactive line reader
- srijs/rust-copperline [copperline] — pure-Rust command line editing library
- Pipeline
- hniksic/rust-subprocess [subprocess] — facilities for interaction with external pipelines
- imp/pager-rs [pager] — pipe your output through an external pager
- oconnor663/duct.rs [duct] — A builder for subprocess pipelines and IO redirection
- philippkeller/rexpect [rexpect] — automate interactive applications such as ssh, ftp, passwd, etc
- Progress
- a8m/pb [pbr] — console progress bar for Rust
- FGRibreau/spinners [spinners] — 60+ elegant terminal spinners
- mitsuhiko/indicatif [indicatif] — indicate progress to users
- Prompt
- hashmismatch/terminal_cli.rs [terminal_cli] — build an interactive command prompt
- starship/starship [starship] — A minimal, blazing fast, and extremely customizable prompt for any shell
- Style
- LukasKalbertodt/term-painter [term-painter] — cross-platform styled terminal output
- mackwic/colored [colored] — Coloring terminal so simple, you already know how to do it!
- ogham/rust-ansi-term [ansi_term] — control colours and formatting on ANSI terminals
- SergioBenitez/yansi [yansi] — A dead simple ANSI terminal color painting library
- vitiral/termstyle [termstyle] — build (and test) formatted and styled command line applications
- TUI
- BearLibTerminal
- cfyzium/bearlibterminal [bear-lib-terminal] — BearLibTerminal bindings
- fdehau/tui-rs [tui] — A TUI library inspired by blessed-contrib and termui
- gyscos/Cursive [cursive] — build rich TUI applications
- ivanceras/titik - a crossplatform TUI widget library with the goal of providing interactive widgets
- ncurses
- ihalila/pancurses [pancurses] — curses library, supports linux and windows
- jeaye/ncurses-rs [ncurses] — ncurses bindings
- ogham/rust-term-grid [term_grid] — Rust library for putting things in a grid
- redox-os/termion [termion] — bindless library for controlling terminals/TTY
- Termbox
- gchp/rustbox [rustbox] — bindings to Termbox
- TimonPost/crossterm [crossterm] — crossplatform terminal library
- BearLibTerminal
Compression
- Brotli
- dropbox/rust-brotli — Brotli decompressor in Rust that optionally avoids the stdlib
- ende76/brotli-rs — implementation of Brotli compression
- bzip2
- alexcrichton/bzip2-rs — libbz2 bindings
- Columnar compression
- velvia/compressed-vec - SIMD Floating point and integer compressed vector library
- gzip
- carols10cents/zopfli — implementation of the Zopfli compression algorithm for higher quality deflate or zlib compression
- miniz
- rust-lang/flate2-rs — miniz bindings
- snappy
- JeffBelgum/rust-snappy — snappy bindings
- tar
- alexcrichton/tar-rs — tar archive reading/writing in Rust
- zip
- zip-rs/zip — read and write ZIP archives
Computation
- argmin-rs/argmin [argmin] — A pure Rust optimization library
- BLAS [blas]
- mikkyang/rust-blas — BLAS bindings
- stainless-steel/blas — BLAS bindings
- calebwin/emu — A language for GPGPU numerical computing from a Rust macro
- Conjugate Gradient
- noshu/cg-sys — Rust binding of fortran CG+ subroutine
- dimforge/nalgebra — low-dimensional linear algebra library
- GMP
- fizyk20/rust-gmp — libgmp bindings
- GSL
- GuillaumeGomez/rust-GSL — GSL bindings
- L-BFGS-B
- noshu/lbfgsb-sys — Rust binding of fortran L-BFGS-B subroutine
- LAPACK
- stainless-steel/lapack — LAPACK bindings
- Parallel
- arrayfire/arrayfire-rust — Arrayfire bindings
- autumnai/collenchyma — An extensible, pluggable, backend-agnostic framework for parallel, high-performance computations on CUDA, OpenCL and common host CPU.
- luqmana/rust-opencl — OpenCL bindings
- Rustimization [rustimization]
- noshu/rustimization — A rust optimization library which includes L-BFGS-B and Conjugate Gradient algorithm
- Scirust
- indigits/scirust — scientific computing library in Rust
- Statrs
- statrs-dev/statrs — Robust statistical computation library in Rust
Configuration
- andoriyu/uclicious [uclicious] — libUCL based feature-rich configuration library.
- ANtlord/yasec [Yasec] - full featured boilerplace-free configuration from environment variables.
- FlashSystems/justconfig - Easily extendable, layered configuration library that introduces no additional dependencies into your project.
- Kixunil/configure_me [configure_me] — library for processing application configuration easily
- mehcode/config-rs [config] — Layered configuration system for Rust applications (with strong support for 12-factor applications).
- theimpossibleastronaut/configster [configster] — Rust library for parsing configuration files
Cryptography
- briansmith/ring — Safe, fast, small crypto using Rust and BoringSSL's cryptography primitives.
- briansmith/webpki — Web PKI TLS X.509 certificate validation in Rust.
- conradkleinespel/rooster [rooster] — Simple password manager to use in your terminal
- cossacklabs/themis [themis] — a high-level cryptographic library for solving typical data security tasks, best fit for multi-platform apps.
- ctz/rustls — A Rust implementation of TLS
- DaGenix/rust-crypto — cryptographic algorithms in Rust
- dalek-cryptography/curve25519-dalek — Pure Rust implementation of Curve25519 operations
- dalek-cryptography/ed25519-dalek — Pure Rust implementation of Ed25519 digital signatures
- dalek-cryptography/x25519-dalek — Pure Rust implementation of X25519 key exchange
- debris/tiny-keccak — Pure Rust implementation of the Keccak family (SHA3)
- defund/pw — CLI password manager with no frills
- doublify/libblockchain — A Blockchain implementation
- exonum/exonum [exonum] — extensible framework for blockchain projects
- Fraunhofer-AISEC/rabe — Library providing several Attribute-Based Encryption (ABE) schemes
- klutzy/suruga — A Rust implementation of TLS 1.2
- kornelski/rust-security-framework — Bindings for Security Framework (OSX native)
- libOctavo/octavo — Modular hash and crypto library in Rust
- novifinancial/opaque-ke — Pure Rust implementation of the recent OPAQUE password-authenticated key exchange.
- orion-rs/orion — This library aims to provide easy and usable crypto. 'Usable' meaning exposing high-level API's that are easy to use and hard to misuse.
- racum/rust-djangohashers — 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 — Pure Rust implementation of the RNCryptor AES file format
- RustCrypto/hashes — Collection of cryptographic hash functions written in pure Rust
- rustindia/mpw-rs — Pure Rust implementation of the Master Password password manager
- sfackler/rust-native-tls — Bindings for native TLS libraries
- sfackler/rust-openssl — OpenSSL bindings
- sodiumoxide/sodiumoxide — libsodium bindings
- steffengy/schannel-rs — Bindings for Schannel (Windows native TLS)
- zebradil/rustotpony — CLI manager of one-time password generators aka Google Authenticator (TOTP)
Database
[database]
-
NoSQL [nosql]
- ArangoDB
- Rincon — An ArangoDB (NoSQL and Graph store) driver for Rust
- Cassandra [cassandra, cql]
- AlexPikalov/cdrs [cdrs] — native client written in Rust
- Metaswitch/cassandra-rs — bindings to the DataStax C/C++ client
- CouchDB [couchdb]
- chill-rs/chill [couchdb] — A Rust client for the CouchDB REST API
- Sofa — an interface to CouchDB HTTP REST API for stable rust
- Crux [crux]
- naomijub/transistor — A Crux Database Client.
- DynamoDB [dynamodb]
- softprops/dynomite - A library for strongly-typed and convenient interaction with
rusoto_dynamodb
- softprops/dynomite - A library for strongly-typed and convenient interaction with
- Elasticsearch [elasticsearch]
- benashford/rs-es [rs-es] — A Rust client for the Elastic REST API
- elastic-rs/elastic [elastic] — elastic is an efficient, modular API client for Elasticsearch written in Rust
- etcd
- jimmycuadra/rust-etcd [etcd] — A client library for CoreOS's etcd.
- luncj/etcd-rs — An asynchronous etcd client for rust
- ForestDB
- vhbit/sherwood — ForestDB bindings
- InfluxDB
- driftluo/InfluxDBClient-rs — Synchronization interface
- panoptix-za/influxdb-rs — asynchronous interface
- LevelDB
- skade/leveldb — LevelDB bindings
- LMDB [lmdb]
- vhbit/lmdb-rs [lmdb-rs] — LMDB bindings
- MHdb
- MHmorgan/mhdb [mhdb] — Pure rust embeddable key-value store database.
- MongoDB [mongodb]
- mongodb/mongo-rust-driver [mongodb] — MongoDB bindings
- Neo4j [cypher, neo4j]
- PickleDB
- seladb/pickledb-rs — a lightweight and simple key-value store, heavily inspired by Python's PickleDB.
- Redis [redis]
- mitsuhiko/redis-rs — Redis library in Rust
- RocksDB
- rust-rocksdb/rust-rocksdb — RocksDB bindings
- UnQLite
- zitsen/unqlite.rs — UnQLite bindings
- ZooKeeper
- bonifaido/rust-zookeeper [zookeeper] — A client library for Apache ZooKeeper.
- ArangoDB
-
ORM [orm]
- diesel-rs/diesel — an ORM and Query builder for Rust
- ivanceras/rustorm — an ORM for Rust
-
sfackler/r2d2 — generic connection pool
-
SQL [sql]
- Generic
- launchbadge/sqlx - async PostgreSQL/MySQL/SQLite connection pool with strong typing support
- Microsoft SQL
- MySql [mysql]
- AgilData/mysql-proxy-rs — A MySQL Proxy
- blackbeam/mysql_async [mysql_async] — asyncronous Rust Mysql driver based on Tokio.
- blackbeam/rust-mysql-simple [mysql] — A native MySql client
- PostgreSql [postgres, postgresql]
- sfackler/rust-postgres [postgres] — A native PostgreSQL client
- Sqlite [sqlite]
- Generic
Data processing
- amv-dev/yata — high perfomance technical analysis library
- bluss/ndarray — N-dimensional array with array views, multidimensional slicing, and efficient operations
- kernelmachine/utah — Dataframe structure and operations in Rust
- pola-rs/polars - Fast feature complete DataFrame library
- weld-project/weld — High-performance runtime for data analytics applications
Data structures
- billyevans/tst [tst] — Ternary search tree collection
- contain-rs — Extension of Rust's std::collections
- danielpclark/array_tool — 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 – a hack to allow for arrays sized by typenums
- garro95/priority-queue[priority-queue] — A priority queue that implements priority changes.
- mrhooray/kdtree-rs — K-dimensional tree in Rust for fast geospatial indexing and nearest neighbors lookup
- orium/rpds [rpds] — Persistent data structures in Rust.
- pop-os/progress-streams — Progress callbacks for types which implement
dyn io::Read
ordyn io::Write
. - RoaringBitmap/roaring-rs – Roaring Bitmaps in Rust
- rust-itertools/itertools —
- whitfin/usher [usher] — Parameterized routing for generic resources in Rust.
- xfix/enum-map [enum-map] — An optimized map implementation for enums using an array to store values.
Data visualization
- 38/plotters —
- igiagkiozis/plotly — Plotly for Rust.
- milliams/plotlib —
- saresend/gust —
Date and time
- chronotope/chrono —
- Mnwa/ms [ms-converter] — it's a library for converting human-like times to milliseconds
- yaa110/rust-persian-calendar —
Distributed systems
- Antimony
- antimonyproject/antimony [antimony] — stream processing / distributed computation platform
- Apache Hadoop
- whitfin/efflux — Easy Hadoop Streaming and MapReduce interfaces in Rust.
- Apache Kafka
- fede1024/rust-rdkafka [rdkafka] — librdkafka bindings
- gklijs/schema_registry_converter — to integrate with confluent schema registry
- kafka-rust/kafka-rust —
- Beanstalkd
- schickling/rust-beanstalkd — Beanstalkd bindings
- HDFS
- hyunsik/hdfs-rs — libhdfs bindings
- GildedHonour/atarashii_imap — 新しい (atarashii/new) IMAP client in Rust. It supports plain and secure connections
- gsquire/sendgrid-rs — unofficial Rust library for SendGrid API
- jdrouet/catapulte - A microservice to send emails using MRML templates.
- jdrouet/jolimail - A web application to build MRML templates.
- jdrouet/mrml - A library to generate nice email templates working on any mail client.
- lettre/lettre — an SMTP-library for Rust
- meli [meli] — terminal email client
- staktrace/mailparse [mailparse] — A library for parsing real-world email files
Encoding
[encoding]
- ASN.1
- alex/rust-asn1 — A Rust ASN.1 (DER) serializer
- Bencode
- arjantop/rust-bencode — Bencode implementation in Rust
- Binary
- arcnmx/nue — I/O and binary data encoding for Rust
- bincode-org/bincode — A binary encoder/decoder in Rust
- m4b/goblin [goblin] — cross-platform, zero-copy, and endian-aware binary parsing
- BSON
- mongodb/bson-rust — Encoding and decoding support for BSON in Rust
- Byte swapping
- BurntSushi/byteorder — Supports big-endian, little-endian and native byte orders
- Cap'n Proto
- CBOR
- serde_cbor — CBOR support for serde
- Character Encoding
- hsivonen/encoding_rs [encoding_rs] — A Gecko-oriented implementation of the Encoding Standard in Rust
- lifthrasiir/rust-encoding —
- CRC
- CSV
- BurntSushi/rust-csv — A fast and flexible CSV reader and writer, with support for Serde
- EDN
- naomijub/edn-rs — crate to parse and emit EDN format into Rust types.
- FlatBuffers
- frol/flatc-rust — FlatBuffers compiler (flatc) integration for Cargo build scripts
- HAR
- mandrean/har-rs — A HTTP Archive Format (HAR) serialization & deserialization library
- HTML
- servo/html5ever — High-performance browser-grade HTML5 parser
- veddan/rust-htmlescape — encoding/decoding HTML entities
- JSON
- importcjj/rust-ajson [ajson] — Get JSON values quickly
- maciejhirsz/json-rust [json] — JSON implementation in Rust
- pikkr/pikkr [pikkr] — JSON parser which picks up values directly without performing tokenization in Rust
- serde-rs/json [serde_json] — JSON support for Serde framework
- simd-lite/simd-json [simd-json] — High performance JSON parser based on a port of simdjson
- Jsonnet
- MsgPack
- 3Hren/msgpack-rust — A pure Rust low/high level MessagePack implementation
- PEM
- jcreekmore/pem-rs [pem] — A Rust based way to parse and encode PEM-encoded data
- Postman Collection
- mandrean/postman-collection-rs — A Postman Collection v1, v2 & v2.1 serialization & deserialization library
- ProtocolBuffers
- RON (Rusty Object Notation)
- Tnetstring
- TOML
- XML
- Florob/RustyXML — an XML parser written in Rust
- media-io/yaserde — Yet Another Serializer/Deserializer specialized for XML
- netvl/xml-rs — A streaming XML library
- shepmaster/sxd-document — An XML library in Rust
- shepmaster/sxd-xpath — An XPath library in Rust [](https://tr avis-ci.org/shepmaster/sxd-xpath)
- tafia/quick-xml — High performance XML pull reader/writer
- YAML
- chyh1990/yaml-rust — The missing YAML 1.2 implementation for Rust.
- dtolnay/serde-yaml [serde_yaml] — YAML support for Serde framework
- kimhyunkang/libyaml-rust — libyaml bindings
- vitiral/stfu8 — Sorta Text Format in UTF-8
Filesystem
- Libraries
- jonhkr/rust-file-seq -> Fail-safe sequence implementation that uses the file system as store
- Operations
- pop-os/dbus-udisks2 -> UDisks2 DBus API
- pop-os/sys-mount — High level abstraction for the
mount
/umount2
system calls. - vitiral/path_abs — Absolute serializable path types and associated methods.
- webdesus/fs_extra — expanding opportunities standard library std::fs and std::io
- Temporary Files
- rust-lang-deprecated/tempdir — temporary directory library
- Stebalien/tempfile — temporary file library
- Stebalien/xattr [xattr] — list and manipulate unix extended file attributes
- zboxfs/zbox [zbox] — Zero-details, privacy-focused embeddable file system.
Functional Programming
- Prelude
- JasonShin/fp-core.rs — A library for functional programming in Rust
Game development
See also Are we game yet?
- Allegro
- SiegeLord/RustAllegro — Allegro 5 bindings
- Awesome wgpu — A curated list of wgpu code and resources
- Challonge
- vityafx/challonge-rs [challonge] — Client library for the Challonge REST API. Helps to organize tournaments.
- Corange
- lucidscape/corange-rs — Corange bindings
- Entity-Component Systems (ECS)
- amethyst/specs — Specs Parallel ECS
- legion — A feature rich high performance ECS library with minimal boilerplate
- Game Engines
- Amethyst — Data-oriented game engine -
- Bevy is a refreshingly simple data-driven game engine built in Rust. -
- ggez — A lightweight game framework for making 2D games with minimum friction -
- harmony — A modern 3D/2D game engine that uses wgpu
- Kiss3d — A Keep It Simple, Stupid 3d graphics engine written with Rust
- oxidator — A real time strategy game/engine written with Rust and WebGPU
- Piston —
- Unrust — unrust — A pure rust based (webgl 2.0 / native) game engine
- Godot
- godot-rust/godot-rust [gdnative] - Rust bindings to the Godot game engine
- SDL [sdl]
- brson/rust-sdl — SDL1 bindings
- Rust-SDL2/rust-sdl2 — SDL2 bindings
- SFML
- jeremyletang/rust-sfml — SFML bindings
- Tcod-rs
- tomassedovic/tcod-rs — Libtcod bindings for Rust.
- Victorem
- VictoremWinbringer/Victorem [Victorem] — Easy UDP Game Server and UDP Client framework for creating simple 2D and 3D online game prototype
- Voxlap
- bbodi/rust-voxlap — Voxlap bindings
Geospatial
- DaveKram/coord_transforms [coord_transforms] — coordinate transformations (2-d, 3-d, and geospatial)
- Georust — geospatial tools and libraries written in Rust
- rust-reverse-geocoder — A fast, offline reverse geocoder in Rust, inspired by https://github.com/thampiman/reverse-geocoder
- vlopes11/geomorph [geomorph] — conversion between UTM, LatLon and MGRS coordinates
Graphics
[graphics]
- Font
- RazrFalcon/rustybuzz - An incremental harfbuzz port to Rust
- redox-os/rusttype — A pure Rust alternative to libraries like FreeType
- gfx-rs/gfx — A high-performance, bindless graphics API for Rust.
- gfx-rs/wgpu - Native WebGPU implementation based on gfx-hal.
- OpenGL [opengl]
- brendanzab/gl-rs —
- glium/glium — safe OpenGL wrapper for the Rust language.
- glutin — Rust alternative to GLFW
- Kiss3d — draw simple geometric figures and play with them with one-liners
- PistonDevelopers/glfw-rs —
- PDF
- fschutt/printpdf — PDF writing library
- J-F-Liu/lopdf — PDF document manipulation
- kaj/rust-pdf —
- WASM-PDF – Generates PDF files with JavaScript and WASM (WebAssembly)
- Vulkan [vulkan]
Graph processing
- kud1ing/tinkerpop-rs — an example how to use Apache TinkerPop from Rust
GUI
[gui]
- autopilot-rs/autopilot-rs — A simple, cross-platform GUI automation library for Rust.
- Cocoa
- Druid [druid] — Druid, a data-first Rust-native UI design toolkit.
- FLTK
- fltk-rs — FLTK Rust bindings
- Flutter
- flutter-rs — Build flutter desktop app in dart & rust.
- fschutt/azul — A free, functional, IMGUI-oriented GUI framework for rapid development of desktop applications written in Rust, supported by the Mozilla WebRender rendering engine.
- GTK+ [gtk]
- gtk-rs/gtk — GTK+ bindings
- relm — Asynchronous, GTK+-based, GUI library, inspired by Elm
- hecrj/iced — A cross-platform GUI library for Rust focused on simplicity and type-safety. Inspired by Elm.
- ImGui
- imgui-rs — Rust bindings for ImGui
- IUP
- clear-coat — Clear Coat is a Rust wrapper for the IUP GUI library
- dcampbell24/iup-rust — IUP bindings
- Kiss-ui — A simple UI framework built on IUP
- ivanceras/sauron-native - A truly native and cross platform GUI library. One unified code can be run as native GUI, Html Web and TUI.
- libui
- rust-native-ui/libui-rs — libui bindings .
- Nuklear
- nuklear-rust — Rust bindings for Nuklear
- OrbTk — The Orbital Widget Toolkit is a multi platform (G)UI toolkit using SDL2
- PistonDevelopers/conrod — An easy-to-use, immediate-mode, 2D GUI library written entirely in Rust
- Qt
- cyndis/qmlrs — QtQuick bindings
- kitech/qt.rs — Qt5 bindings
- Rust Qt Binding Generator — Binding generator hosted by KDE.
- rust-qt —
- White-Oak/qml-rust — QML bindings.
- woboq/qmetaobject-rs — Integrate Qml and Rust by building the QMetaObject at compile time.
- rise-ui — Simple component-based cross-Platform GUI Toolkit for developing beautiful and user-friendly interfaces.
- saurvs/nfd-rs — nativefiledialog bindings
- Sciter
- sciter-sdk/rust-sciter — Sciter bindings
- tauri-apps/tauri — Toolchain for building highly secure native apps that have tiny binaries and are very fast from HTML, JS and CSS layer, powered by webview.
Image processing
- abonander/img_hash — Perceptual image hashing and comparison for equality and similarity.
- image-rs/image — Basic imaging processing functions and methods for converting to and from image formats
- image-rs/imageproc — An image processing library, based on the
image
library. - teovoinea/steganography [steganography] — A simple steganography library
- twistedfall/opencv-rust — Rust bindings for OpenCV
Language specification
- shnewto/bnf — A library for parsing Backus–Naur form context-free grammars.
Logging
[log]
- estk/log4rs — highly configurable logging framework modeled after Java's Logback and log4j libraries
- rust-lang/log — Logging implementation for Rust
- seanmonstar/pretty-env-logger — A pretty, easy-to-use logger for Rust.
- slog-rs/slog — Structured, composable logging for Rust
- tokio-rs/tracing — An application level tracing framework for async-aware structured logging, error handling, metrics, and more
Macro
- cute
- mattgathu/cute — Macro for Python-esque list comprehensions in Rust.
- hado
- ludat/hado-rs — A little macro for writing haskell-like do expressions without too much ceremony
- Linq-in-Rust - Macro and methods for C#-LINQ-like expressions.
Markup language
- CommonMark
- raphlinus/pulldown-cmark — CommonMark parser in Rust
Mobile
- Android
- rust-windowing/android-rs-glue — glue between Rust and Android
- Android / iOS
- ivanschuetz/rust_android_ios — An example of using a shared Rust lib for Android and iOS using rust-swig and cbindgen respectively.
- iOS
- TimNN/cargo-lipo — A cargo lipo subcommand which automatically creates a universal library for use with your iOS application.
- vhbit/ObjCrust — using Rust to create an iOS static library
- Pebble
- andars/pebble.rs — A crate that allows Rust to be used to develop Pebble applications.
Network programming
- CoAP
- Covertness/coap-rs — A Constrained Application Protocol(CoAP) library for Rust.
- Docker
- fussybeaver/bollard — Docker daemon API in Rust
- FTP
- mattnenterprise/rust-ftp — an FTP client for Rust
- gRPC
- tikv/grpc-rs — The gRPC library for Rust built on C Core library and futures
- HTTP
- pop-os/parallel-getter — Download a file with parallel GET requests to maximize bandwidth usage.
- pop-os/url-crawler — A configurable parallel web crawler, designed to crawl a website for content.
- pop-os/url-scraper — Scrape URLs from HTML pages
- IPNetwork
- achanda/ipnetwork — A library to work with IP networks in pure Rust
- candrew/netsim — A Rust library for network simulation and testing
- JSON-RPC
- vlopes11/futures-jsonrpc [futures-jsonrpc] — Futures implementation for JSON-RPC
- Low level
- actix/actix — Actor library for Rust
- dylanmckay/protocol — Custom TCP/UDP protocol definitions
- libpnet/libpnet — A cross-platform, low level networking
- smoltcp-rs/smoltcp — A standalone, event-driven TCP/IP stack that is designed for bare-metal, real-time systems
- tokio-rs/tokio — A network application framework for rapid development and highly scalable production deployments of clients and servers.
- NanoMsg
- thehydroimpulse/nanomsg.rs — nanomsg bindings
- NATS
- nats-io/nats.rs — Rust client for NATS, the cloud native messaging system.
- Nng
- neachdainn/nng-rs [Nng] — Nng (nanomsg v2) bindings
- NNTP
- mattnenterprise/rust-nntp — an NNTP client for Rust
- P2P
- libp2p/rust-libp2p — The Rust Implementation of libp2p networking stack.
- POP3
- mattnenterprise/rust-pop3 — A POP3 client for Rust
- QUIC
- cloudflare/quiche — cloudflare implementation of the QUIC transport protocol and HTTP/3
- mozilla/neqo — an Implementation of QUIC written in Rust
- quinn-rs/quinn — Futures-based QUIC implementation in Rust
- RPC
- smallnest/rpcx-rs — A RPC library for Rust for developing microservices in easy and simple way.
- SSH
- alexcrichton/ssh2-rs — libssh2 bindings
- Thrussh — an SSH library written from scratch in Rust, backed by libsodium
- Stomp
- adwhit/tokio-stomp — An async STOMP v1.1 client for Rust, using the Tokio stack.
- zslayton/stomp-rs — A STOMP 1.2 client implementation in Rust
- uTP
- meqif/rust-utp — A uTP (Micro Transport Protocol) library for Rust.
- ZeroMQ
- erickt/rust-zmq — ZeroMQ bindings
Parsing
- aleshaleksey/libazdice — A parser for parsing dice strings for TTRPGs and TTRPG development
- Folyd/robotstxt - A native Rust port of Google's robots.txt parser and matcher C++ library
- freestrings/jsonpath — JsonPath engine written in Rust. Webassembly and Javascript support too
- Geal/nom — parser combinator library
- ivanceras/inquerest — an URL parameter parser for rest filter inquiry
- kevinmehall/rust-peg — Parsing Expression Grammar (PEG) parser generator
- lalrpop/lalrpop — LR(1) parser generator for Rust
- m4rw3r/chomp – A fast monadic-style parser combinator
- Marwes/combine — parser combinator library
- nrc/zero — zero-allocation parsing of binary data
- pest-parser/pest — The Elegant Parser
- ptal/oak — A typed PEG parser generator (compiler plugin)
- replicadse/wavefront_rs — A parser for the Wavefront OBJ format.
- s-panferov/queryst — A query string parsing library for Rust inspired by https://github.com/ljharb/qs
Packaging formats
- pop-os/debarchive Library for reading and extracting debian archives
Peripherals
- Serial Port
- Susurrus/serialport-rs [serialport] — A cross-platform library that provides access to a serial port
Platform specific
- Cross-platform
- svartalf/rust-battery — Cross-platform information about the notebook batteries
- FreeBSD
- dlrobertson/capsicum-rs — Rust bindings for the FreeBSD capsicum framework
- fubarnetes/libjail-rs — Rust implementation of a FreeBSD jail library
- Linux
- arvancloud/nginx-rs — Nginx bindings
- frol/cgroups-fs — Rust bindings to Linux Control Groups (cgroups)
- hannobraun/inotify-rs — inotify bindings [![Rust](https://github.com/hannobraun/inotify-rs/actions/workflows/rust.yml/
- pop-os/dbus-udisks2 — UDisks2 DBus API
- pop-os/distinst — Linux distribution installer librarybadge.svg?branch=master)](https://github.com/hannobraun/inotify-rs/actions/workflows/rust.yml)
- yaa110/rust-iptables — iptables bindings
- Unix-like
- nix-rust/nix — Unix-like API bindings
- zargony/fuse-rs — FUSE bindings
- Windows
- retep998/winapi-rs — Windows API bindings
Scripting
- duckscript — Simple, extendable and embeddable scripting language.
- gluon-lang/gluon — A small, statically-typed, functional programming language
- ippan/clover [clover] - A scripting language created in Rust
- moss — A dynamically typed scripting language
- mun — A compiled, statically-typed scripting language with first class hot reloading support
- murarth/ketos — A Lisp dialect functional programming language serving as a scripting and extension language for rust
- PistonDevelopers/dyon — A rusty dynamically typed scripting language
- rhaiscript/rhai — A tiny and fast embedded scripting language resembling a combination of JS and Rust
Simulation
- bigbang - Gravitational and collisional n-body simulation with optional GPU acceleration
- nyx-space - High fidelity, fast, reliable and validated astrodynamical toolkit library, used for spacecraft mission design and orbit determination
Task scheduling
- BinChengZhao/delay-timer — delay-timer is a task manager based on a time wheel algorithm, which makes it easy to manage timed tasks, or to periodically execute arbitrary tasks such as closures.
Template engine
- Handlebars
- botika/yarte — Yarte stands for Yet Another Rust Template Engine, is the fastest template engine.
- sunng87/handlebars-rust — Handlebars template engine with inheritance, custom helper support.
- HTML
- djc/askama — template rendering engine based on Jinja
- kaj/ructe — HTML template system for Rust
- Keats/tera — template engine based on Jinja2 and the Django template language.
- lambda-fairy/maud — compile-time HTML templates
- naomijub/hiccup — template engine inpired by Clojure's Hiccup.
- Stebalien/horrorshow-rs — compile-time HTML templates
- Mustache
- tailhook/marafet — Compiler for Jade-like template language to cito.js-based virtual dom
Text processing
- BurntSushi/suffix — Linear time suffix array construction (with Unicode support)
- BurntSushi/tabwriter — Elastic tab stops (i.e., text column alignment)
- Daniel-Liu-c0deb0t/triple_accel [triple_accel] - Rust edit distance routines accelerated using SIMD; supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein, etc. distance calculations and string search
- greyblake/whatlang-rs — Natural language detection library based on trigrams
- Lucretiel/joinery [joinery] – Generic string + iterable joining
- mgeisler/textwrap [textwrap] — Word wrap text (with support for hyphenation)
- ps1dr3x/easy_reader — A reader that allows forwards, backwards and random navigations through the lines of huge files without consuming iterators
- pwoolcoc/ngrams — Construct n-grams from arbitrary iterators
- rust-lang/regex — Regular expressions (RE2 style)
- strsim-rs — String similarity metrics
- yaa110/rake-rs — Multilingual implementation of RAKE algorithm for Rust
Text search
- andylokandy/simsearch-rs [simsearch] — A simple and lightweight fuzzy search engine that works in memory, searching for similar strings
- BurntSushi/fst [fst] —
- CurrySoftware/perlin [perlin]
- meilisearch/MeiliSearch — Ultra relevant, instant and typo-tolerant full-text search API.
- minio/minsql — High-performance log search engine.
- tantivy-search/tantivy [tantivy] —
Unsafe
- zerocopy — Utilities for safely reinterpreting arbitrary byte sequences as native Rust types
Virtualization
- beneills/quantum — Advanced Rust quantum computer simulator
- chromium/chromiumos/platform/crosvm CrOSVM — Enables Chrome OS to run Linux apps inside a fast, secure virtualized environment
- saurvs/hypervisor-rs — Hardware-accelerated virtualization on OS X
- unicorn-rs/unicorn-rs — Rust bindings for the unicorn CPU emulator
Web programming
See also Are we web yet? and Rust web framework comparison.
- Client-side / WASM
- HTTP Client
- alexcrichton/curl-rust — libcurl bindings
- async-graphql - A GraphQL server library implemented in Rust
- DoumanAsh/yukikaze — Beautiful and elegant Yukikaze is little HTTP client library based on hyper.
- graphql-client — Typed, correct GraphQL requests and responses in Rust.
- hyperium/hyper — an HTTP implementation
- seanmonstar/reqwest — an ergonomic HTTP Client for Rust.
- HTTP Server
- actix/actix-web — A lightweight async web framework for Rust with websocket support
- branca — A Pure Rust implementation of Branca for Authenticated and Encrypted API tokens.
- carllerche/tower-web [tower-web] — A fast, boilerplate free, web framework for Rust
- danclive/sincere — A micro web framework for Rust(stable) based on hyper and multithreading.
- daogangtang/sapper — A lightweight web framework built on async hyper, implemented in Rust language.
- GildedHonour/frank_jwt — JSON Web Token implementation in Rust.
- Gotham — A flexible web framework that does not sacrifice safety, security or speed.
- handlebars-rust — an Iron web framework middleware.
- hyperium/hyper — an HTTP implementation
- Iron — A middleware-based server framework
- Juniper — GraphQL server library for Rust
- Nickel — inspired by Express
- Ogeon/rustful — A RESTful web framework for Rust
- oltdaniel/zap — A lightning fast http framework for Rust
- Rocket — 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
- Saphir — A progressive web framework with low-level control, without the pain.
- tiny-http — Low level HTTP server library
- tomaka/rouille — Web framework in Rust
- Miscellaneous
- cargonauts — A web framework intended for building maintainable, well-factored web apps.
- osohq/oso [oso] - A policy engine for authorization that's embedded in your application.
- pwoolcoc/soup [soup] — A library similar to Python's BeautifulSoup, designed to enable quick and easy manipulation and querying of HTML documents.
- pyros2097/rust-embed — A macro to embed static assets into the rust binary
- softprops/openapi — A library for processing openapi spec files
- tbot - Make cool Telegram bots with Rust easily
- teloxide/teloxide - An elegant Telegram bots framework for Rust
- utkarshkukreti/select.rs [select] — A library to extract useful data from HTML documents, suitable for web scraping.
- Reverse Proxy
- sozu-proxy/sozu [sozu] — A HTTP reverse proxy.
- Static Site Generators
- cobalt-org/cobalt.rs — Static site generator written in Rust
- FuGangqiang/mdblog.rs — Static site generator from markdown files.
- getzola/zola [zola] — An opinionated static site generator with everything built-in.
- leven-the-blog/leven [leven] — A simple, parallelized blog generator.
- WebSocket
- actix/sockjs — A SockJS server for Rust
- bitwyre/websocket_core — Websocket generic server library for periodic message broadcast.
- housleyjk/ws-rs — lightweight, event-driven WebSockets for Rust
- rust-websocket — A framework for dealing with WebSocket connections (both clients and servers)
- snapview/tungstenite-rs — Lightweight stream-based WebSocket implementation for Rust.
- vi/websocat — CLI for interacting with WebSockets, with functionality of Netcat, Curl and Socat.
- vityafx/urlshortener-rs [urlshortener] — A very simple urlshortener library for Rust.
Registries
A registry allows you to publish your Rust libraries as crate packages, to share them with others publicly and privately.
- Cloudsmith 💲 — A fully managed package management SaaS, with first-class support for public and private Cargo/Rust registries (plus many others). Has a generous free-tier and is also completely free for open-source.
- Crates — The official public registry for Rust/Cargo.
Resources
- Benchmarks
- TeXitoi/benchmarksgame-rs — Rust implementations for the The Computer Language Benchmarks Game
- Decks & Presentations
- Learning systems programming with Rust — Presented by Julia Evans @ Rustconf 2016.
- Rust: Hack Without Fear! — Presented by Nicholas Matsakis @ C++Now 2018
- Shipping a Solid Rust Crate — Presented by Michael Gattozzi @ RustConf 2017
- Learning
- Awesome Rust Streaming - A community curated list of livestreams about Rust.
- awesome-rust-mentors — A list of helpful Rust mentors willing to take mentees and eductate them about Rust and programming.
- Build a language VM
- Code Playground - Interactively edit & play rust snippets on your iPhone and iPad devices.
- Easy Rust - Learn Rust in easy English.
- exercism.io — programming exercises that help you learn new concepts in Rust.
- Idiomatic Rust — 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.
- Programming Community Curated Resources for Learning Rust — A list of recommended resources voted by the programming community.
- Refactoring to Rust - A book that introduces to Rust language.
- 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 for professionals — A quick introduction to Rust for experienced software developers.
- Rust Gym - A big collection of coding interview problems solved in Rust.
- Rust in Motion — A video series by Carol Nichols and Jake Goulding (paid)
- Rust Online Courses at Classpert — A list of Rust online courses (paid) from Classpert Online Course Search
- rust-learning — A collection of useful resources to learn Rust
- Rustlings — small exercises to get you used to reading and writing Rust code
- stdx — 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
- Rustacean Station — A community project for creating podcast content for Rust
- Rust Design Patterns
- Rust Guidelines
- Rust Servers, Services and Apps - MEAP - Build backend servers, services, and front-ends in Rust to get fast, reliable, and maintainable applications.
- Rust Subreddit — A subreddit(forum) where rust related questions, articles and resources are posted and discussed
- RustBooks — list of RustBooks
- RustCamp 2015 Talks