A curated list of awesome Rust frameworks, libraries and software. Inspired by awesome-go.
Projects are selected using our curation criteria. See also related tools, archived projects, and entries awaiting review.
Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!
- Applications
- Development tools
- Libraries
- Artificial Intelligence
- Astronomy
- Asynchronous
- Audio
- Authentication
- Automotive
- Bioinformatics
- Caching
- Concurrency
- Cloud
- Command-line
- Compression
- Computation
- Configuration
- Cryptography
- Database
- Data processing
- Data structures
- Data visualization
- Date and time
- Distributed systems
- Encoding
- Filesystem
- Game development
- Geospatial
- Graphics
- GUI
- Image processing
- Language specification
- Logging
- Macro
- Markup language
- Mobile
- Network programming
- Parsing
- Packaging formats
- Peripherals
- Platform specific
- Robotics
- Scripting
- Template engine
- Text processing
- Text search
- Unsafe
- Virtualization
- Web programming
- Registries
- Resources
- License
See also Friends of Rust (Organizations running Rust in production) and Rust Companies (A curated list of companies using Rust in production).
- aegis-orchestrator — AEGIS by 100monkeys.ai: a self-hosted orchestrator that runs autonomous agents in isolated, policy-enforced runtimes with durable FSM state. AGPL-3.0, in beta.
- 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
- asm-cli-rust — interative assembly shell written in rust.
- cloudflare/boringtun — A Userspace WireGuard VPN Implementation
- Factotum — A system to programmatically run data pipelines
- faro — An unofficial Signal client for the terminal, built for tmux and SSH
- fcsonline/drill — A HTTP load testing application inspired by Ansible syntax
- ferrum-cli — Rust-native local LLM inference with Metal, CUDA, and OpenAI-compatible serving.
- gitside — A VS Code-inspired source-control panel for the terminal.
- habitat — An tool created by Chef to build, deploy, and manage applications.
- Herd — an experimental HTTP load testing application
- Hickory DNS — A DNS client, resolver and server; formerly Trust-DNS.
- Hyperconsciousness - Developer-alpha Rust CLI and MCP/HTTP server for encrypted, append-only knowledge with scoped, expiring grants.
- intecture/api — an API-driven server management and configuration tool
- jedisct1/flowgger — A fast, simple and lightweight data collector
- 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
- nika — Intent-as-code workflow engine for AI: reviewable YAML DAGs statically checked (schema, permits, honest cost floor) before any token is spent. Single binary.
- 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
- shaunlee/beanstalkd-rs — A drop-in replacement for beanstalkd: the same work-queue protocol byte for byte, with built-in TLS, Prometheus metrics and optional Raft replication
- Weld — Full fake REST API generator
- WezTerm — A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
- 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.
- rusty-amp — A complete guitar amp and pedalboard rig with external plugins support that runs right in your terminal.
- Conveyor — Fast, secure, local-first CI/CD pipelines with a real-time TUI. DAG workflows, cron triggers, and artifact management powered by Rust.
- Nucleus — A high-performance, minimalistic container engine in Rust
- Bitcoin Satoshi's Vision — A Rust library for working with Bitcoin SV .
- ChainX — Fully Decentralized Interchain Crypto Asset Management on Polkadot.
- coinbase-pro-rs — Coinbase pro client in Rust, supports sync/async/websocket
- ethaddrgen — Custom Ethereum vanity address generator made in Rust
- Grin — Evolution of the MimbleWimble protocol
- infincia/bip39-rs — Rust implementation of BIP39.
- nearprotocol/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.
- rbtc — Convert BTC to any currency and vice-versa.
- wagu — Generate a wallet for any cryptocurrency
- HelixDB — An open-source graph-vector database written in Rust
- indradb — Rust based graph database
- noria — Dynamically changing, partially-stateful data-flow for web application backends
- ParadeDB - A transactional alternative to Elasticsearch built on Postgres
- ParityDB — A fast and reliable database optimised for read operations.
- PumpkinDB — an event sourcing database engine
- SurrealDB — A scalable, distributed, document-graph database in Rust
- tikv — A distributed KV database in Rust
See also crates matching keyword 'emulator'.
- Commodore 64
- Gameboy
- Gekkio/mooneye-gb —
- mvdnes/rboy —
- mohanson/gameboy — Full featured Cross-platform GameBoy emulator. Forever boys!.
- Gekkio/mooneye-gb —
- NES
- Playstation
- simias/rustation-ng — A PlayStation emulator and the successor to Rustation.
- ZX Spectrum
- pacmancoder/rustzx —
- rodrigorc/raze — For WebAssembly, live version here
- pacmancoder/rustzx —
- Emulator Development tools
- SNES
- ioncodes/snesutilities — ROM analyser/extractor
- SNES
See also Games Made With Piston.
- lifthrasiir/angolmois-rust — A minimalistic music video game which supports the BMS format
- swatteau/sokoban-rs — A Sokoban implementation
- Zone of Control — A turn-based hexagonal strategy game
. Discontinued. There are no forks.
- rhex — hexagonal ascii roguelike
- citybound — The city sim you deserve
- GitType — A CLI code-typing game that turns your source code into typing challenges
- ozkriff/zemeroth — A small 2D turn-based hexagonal strategy game
- rsaarelm/magog — A roguelike game in Rust
- schulke-214/rsnake — Snake written in Rust.
- schulke-214/connect-four — A simple connect four implementation.
- cristicbz/rust-doom — A renderer for Doom, may progress to being a playable game
- Thinkofname/rust-quake — Quake map renderer in Rust
- aleshaleksey/TGWM — An RPG with turned-based mechanics (work in progress)
- garkimasera/rusted-ruins — Extensible open world rogue like game with pixel art
- Veloren — An open-world, open-source multiplayer voxel RPG.
- L4z3x/mal-cli — A TUI app for MyAnimelist.
- Graphite - Vector-based graphics editor
- Limeth/euclider — A real-time 4D CPU ray tracer
- monfa-red/lini [lini] — A small language for every kind of figure: diagrams, charts, sequences, schematics, technical drawings, compiled from plain text to themeable SVG
- ivanceras/svgbob — converts ASCII diagrams into SVG graphics
- Twinklebear/tray_rust — A ray tracer
- Image processing:
- spejss/Image-Processing-CLI-in-Rust — CLI for processing images, generating histograms.
- spejss/Image-Processing-CLI-in-Rust — CLI for processing images, generating histograms.
- slowtec/tokio-modbus — A tokio-based modbus library.
- locka99/opcua — A pure rust OPC UA library.
- BiancoRoyal/modbus-iiot-rust — A pure rust modbus library with no or less dependencies.
See also A comparison of operating systems written in Rust.
- thepowersgang/rust_os —
- tock/tock — A secure embedded operating system for Cortex-M based microcontrollers
- eureka — A CLI tool to input and store your ideas without leaving the terminal
- BenSchZA/pier — A central repository to manage (add, search metadata, etc.) all your one-liners, scripts, tools, and CLIs
- NeoPanic/Glim — A macOS file viewer built with Rust and GPUI Kit for Markdown, PDFs, images, JSON, CSV and source code in one workspace
- koruworks/mono - Koru, a local-first workspace for notes, docs and files with a native Rust UI (not Electron) that stores notes in a local database, for Windows and macOS
- kpcyrd/badtouch — A scriptable network authentication cracker
- replydev/cotp - Trustworthy, encrypted, command-line TOTP/HOTP authenticator app with import functionality.
- kpcyrd/sniffglue — A secure multithreaded packet sniffer
- kpcyrd/sn0int — A semi-automatic OSINT framework and package manager
- elicpeter/nyx — Local-first security scanner with browser UI. Cross-language taint analysis, flow visualiser, and offline triage. No cloud, no account.
- Ockam — A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices.
- RustNet - A cross platform real time network monitoring tool.
- brocode/fblog — Small command-line JSON Log viewer
- buster/rrun — A command launcher for Linux, similar to gmrun
- Causeway — A standalone Rust MCP server for controlling Chromium through the Chrome DevTools Protocol. [source]
- chiarorosa/claude-codex-taskbar — Windows 10/11 taskbar widget showing Claude Code and Codex usage limits next to CPU, RAM, GPU and disk activity (raw Win32 + Direct2D, single exe under 1 MB)
- cristianoliveira/funzzy — A configurable filesystem watcher inspired by entr
- dalance/procs — A modern replacement for 'ps' written by Rust
- ddh — Fast duplicate file finder
- dutradotdev/quokka — Terminal-native iPhone inspection and cleanup over USB for macOS. No jailbreak.
- eza-community/eza — A modern replacement for ls and the maintained successor to exa.
- fselect — Find files with SQL-like queries
- gblach/imge — Write disk images to physical drive or vice versa with on-the-fly compression/decompression.
- gblach/reflicate — Deduplicate data by creating reflinks between identical files.
- Glubiz/zirv - CLI for workflow automation via YAML/JSON/TOML scripts
- harry0703/MangoDisk — Safety-first disk cleaner and space analyzer for macOS and Windows, with visual storage maps, duplicate detection, app uninstall, and local review before deletion.
- hex22a/cidit - CIDR Inspection Tool
- j0ru/kickoff — Fast wayland program launcher
- lotabout/rargs [rargs] — xargs + awk with pattern matching support
- lotabout/skim — A fuzzy finder in pure rust
- m4b/bingrep — Greps through binaries from various OSs and architectures, and colors them.
- mitnk/cicada — A bash-like Unix shell
- mmstick/fontfinder — GTK3 application for previewing and installing Google's fonts
- mmstick/tv-renamer — A tv series renaming application with an optional GTK3 frontend.
- netscanner - TUI Network Scanner
- nushell/nushell — A multiplatform, data oriented shell and a scripting language
- 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/system76-power — Linux power management daemon (DBus-interface) with CLI tool.
- Ralvke/logram — Push log files' updates to Telegram
- 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.
- supercilex/fuc - Fast
cpandrmcommands - 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
- gchp/iota — A simple text editor
- lapce/lapce — A fast, extensible code editor written in Rust.
- mathall/rim — Vim-like text editor written in Rust
- dathere/qsv — Command-line tools for querying, transforming and validating CSV data.
- dxpdf – A fast and powerful docx to pdf rendering engine with Skia under the hood.
- lavifb/todo_r — Find all your TODO notes with one command!
- 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.
- 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.
- arthrp/consoletimer - Simple timer for your terminal.
- arthrp/quick-skeleton — Project scaffolding tool, similar to Yeoman and Slush.
- 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.
- Tabiew — A lightweight TUI app to view and query CSV files.
- thanks-stars — CLI that stars the GitHub repositories your project depends on across multiple ecosystems.
- Tuckr — A dotfile and symlink manager that requires no configuration, inspired by GNU Stow's approach.
- 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!
- aleshaleksey/AZDice — A dice roll success distribution generator for tabletop homebrewers.
- fcsonline/tmux-thumbs — A lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator.
- gitlogue — A TUI screensaver that visualizes Git commit history in your terminal.
- repoch — Convert epoch to datetime and datetime to epoch
- arjav0703/cargofetch — A lightweight fetch utility to show metadata about your rust project.
- salihcantekin/RustFrame — A privacy-focused, cross-platform screen region sharing tool for video calls
- yuvadm/slingr — A simple CLI for streaming media files over a local network to UPnP media renderers
Virtualization
10BC8 a>- firecracker-microvm/firecracker — A lightweight virtual machine for container workload Firecracker Microvm
- tailhook/vagga — A containerization tool without daemons
- virtainer/virtainer-guest-agent — QEMU Guest Agent-compatible agent for x86_64 Linux VMs on Cloud Hypervisor, reached over vsock and shipped as a single static binary
- Plume-org/Plume — ActivityPub federating blogging application
- Man In The Middle Proxy — A MITM Proxy Written in Rust 🦀! Toolkit for HTTP/1, HTTP/2, and WebSockets with SSL/TLS Capabilities.
- Poem Framework — A full-featured and easy-to-use web framework with the Rust programming language.
- thecoshman/http — Host These Things Please — A basic http server for hosting a folder fast and simply
- 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
- TheWaWaR/simple-http-server — simple static http server
- Mini RPS - Mini reverse proxy server, HTTPS, CORS, static file hosting and template engine (minijinja)
- ATAC — ATAC is Arguably a Terminal API Client. It is based on well-known clients such as Postman, Insomnia, or even Bruno, but inside your terminal without any specific graphical environment needed.
- clippy — Rust lints
- clog-tool/clog-cli — generates a changelog from git metadata (conventional changelog)
- create-rust-app — Set up a modern rust+react web app by running one command.
- dan-t/rusty-tags — create ctags/etags for a cargo project and all of its dependencies
- frolic — An API layer to build customer facing dashboards 10x faster
- fw — workspace productivity booster
- git-journal — The Git Commit Message and Changelog Generation Framework
- just — A handy command runner for project-specific tasks
- lnds/kimun [kimun] — Code health metrics from the terminal: a project grade from A++ to F--, cyclomatic and cognitive complexity, duplication, Halstead, code smells, and from git history hotspots, ownership, temporal coupling and the blast radius of a change, for 40+ languages
- Ockam — A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices.
- ptags — A parallel universal-ctags wrapper for git repository
- Racer — code completion for Rust
- Rust Regex Playground — Web tool to evaluate rust regular expressions
- rust-lang/rust-analyzer — A language server providing Rust code analysis and editor support.
- rustfmt — A Rust code formatter
- Rustup — the Rust toolchain installer
- Sourcey (crates.io) - Builds self-hosted static Rust API documentation from rustdoc JSON.
- tinyrick a basic task dependency tool emphasizing Rust functions over raw shell commands.
- 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-transwhich can be helpful for running a faster compile if you only need correctness checks - cargo-deb — Generates binary Debian packages
- 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-info — queries crates.io for crates details from command line
- cargo-lean — A CLI tool for validating and managing lean Cargo package distribution archives by controlling which files are included in published crates.
- cargo-license — A cargo subcommand to quickly view the licenses of all dependencies.
- cargo-limit — Cargo with less noise: warnings are skipped until errors are fixed, Neovim integration, etc.
- 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-update — cargo subcommand for checking and applying updates to installed executables
- liuchong/cargo-x — A very simple third-party cargo subcommand to execute a custom command
- dtolnay/cargo-expand — Expand macros in your source code
- cargo-benchcmp — A utility to compare Rust micro-benchmarks
- Cross compiling
- japaric/xargo — effortless cross compilation of Rust programs to custom bare-metal targets like ARM Cortex-M
- japaric/xargo — effortless cross compilation of Rust programs to custom bare-metal targets like ARM Cortex-M
- Raspberry Pi
- Ockam — A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices.
- Arduino
- avr-rust/ruduino ^`^t Reusable components for the Arduino Uno.
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++
- rust-lang/rust-bindgen — A Rust bindings generator
- Java
- bennettanderson/rjni — use Java from Rust
- jni — use Rust from Java
- jni-sys — Rust definitions corresponding to jni.h
- rawrasaur/rust-jdbc — uses JDBC from Rust
- bennettanderson/rjni — use Java from Rust
- Lua
- kballard/rust-lua — Safe Rust bindings to Lua 5.1
- kballard/rust-lua — Safe Rust bindings to Lua 5.1
- mruby
- anima-engine/mrusty — mruby safe bindings for Rust
- anima-engine/mrusty — mruby safe bindings for Rust
- Node.js
- neon-bindings/neon — use Rust from Node.js
- neon-bindings/neon — use Rust from Node.js
- Objective-C
- SSheldon/rust-objc — Objective-C Runtime bindings and wrapper for Rust
- Python
- dgrunwald/rust-cpython — Python bindings
- PyO3/PyO3 — Rust bindings for the Python interpreter
- dgrunwald/rust-cpython — Python bindings
- Ruby
- d-unseductable/ruru — native Ruby extensions written in Rust
- danielpclark/rutie — native Ruby extensions written in Rust and vice versa
- d-unseductable/ruru — native Ruby extensions written in Rust
- Web Assembly
- rustwasm/wasm-pack — 📦 ✨ pack up the wasm and publish it to npm!
- 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!
See also Are we (I)DE yet? and Rust Tools.
- 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
- Helix - A post-modern text editor
- Kakoune
- ul/kak-lsp — LSP client. Implemented in Rust and supports rls out of the box.
- Visual Studio Code
- KalitaAlexey/vscode-rust — A fork of RustyCode
- sfikas/rusteval — A tool used to evaluate the output of retrieval algorithms
- sharkdp/hyperfine — A command-line benchmarking tool
- performancecopilot/hornet — A Performance Co-Pilot memory-mapped values instrumentation library
- ellisonch/rust-stopwatch — A stopwatch library
- static_assertions — Compile-time assertions to ensure that invariants are met
[testing]
- googletest-json-serde — A collection of JSON matchers for googletest-rust, supporting paths, arrays, and objects.
- mutagen — A source-level mutation testing framework (nightly only)
- AlKass/polish — Mini Testing/Test-Driven Framework
- httpmock — HTTP mocking
- proptest — property testing framework inspired by the Hypothesis framework for Python
- quickcheck — A Rust implementation of QuickCheck
- mockito — HTTP mocking
- speculate — An RSpec inspired minimal testing framework for Rust
- rust-fuzz/afl.rs — A Rust fuzzer, using AFL
- tarpaulin — A code coverage tool designed for Rust
- xezim — An Extensible SystemVerilog simulator and verification engine.
- immunant/c2rust — C to Rust translator and cross checker built atop Clang/LLVM.
- tsync — A utility to generate typescript types from rust code.
- NSGA RS - A Rust framework for solving multi-objective optimisation problems using the NSGA family of multi-objective evolutionary algorithms with flexible problem definition, parallel and resumable runs.
- thomasbratt/watchmaker — Genetic Algorithm library. Implement a single trait for your problem and call a single method. Supports progress reporting, configurable parameters.
- thomasbratt/watchmaker_vm — A virtual machine for use with genetic algorithms. Any random sequence of bytes is a valid program. Simple orthogonal instruction format. Each instruction is a 64 bit value, including operands.
- 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.
- innoave/genevo — Execute genetic algorithm (GA) simulations in a customizable and extensible way.
- willi-kappler/darwin-rs — This library allows you to write evolutionary algorithms (EA) using the Rust programming language. Written by Willi Kappler, License: MIT — Version 0.4 (2017.06.26).
- mneumann/evo-rs — Evolutionary Algorithm Library for Rust. Without changes for 3 years.
- yurytsoy/revonet — Rust implementation of real-coded GA for solving optimization problems and training of neural networks.
- Cortex Memory - A complete virtual-file-system based solution for agent memory, from extraction and search to automated optimization, and insights dashboard out-of-the-box.
See also About Rust’s Machine Learning Community.
- avinashshenoy97/RusticSOM — Rust library for Self Organising Maps (SOM).
- autumnai/leaf — Open Machine Intelligence framework.
. Abandoned project. The most updated fork is spearow/juice.
- maciejkula/rustlearn — Machine learning crate for Rust.
- arthiqlabs/vedaksha — Clean-room astronomical ephemeris and Vedic computation engine with JPL-validated positions, native Jyotish primitives, WebAssembly and Python bindings, and an MCP server.
- flosse/sun — A Rust port of the JavaScript library suncalc.
- saurvs/astro-rust — astronomy for Rust
- Async-graphql —
Async-graphqlis a high-performance server-side library that supports all GraphQL specifications. - zonyitoo/coio-rs — A coroutine I/O library with a working-stealing scheduler
- dpc/mioco — Scalable, coroutine-based, asynchronous IO handling library
- TeaEntityLab/fpRust — Monad/MonadIO, Handler, Coroutine/doNotation, Functional Programming features for Rust
- rust-lang-nursery/futures-rs — Zero-cost futures in Rust
- mio — MIO is a lightweight IO library for Rust with a focus on adding as little overhead as possible over the OS abstractions
- Xudong-Huang/may — rust stackful coroutine library
[audio]
- GuillaumeGomez/rust-fmod — FMOD bindings
- jhasse/ears — A simple library to play Sounds and Musics, on top of OpenAL and libsndfile
- musitdev/portmidi-rs — PortMidi bindings
- hound — A WAV encoding and decoding library
- tomaka/rodio — A Rust audio playback library
- RustAudio
- RustAudio/rust-portaudio — PortAudio bindings
- RustAudio/rust-portaudio — PortAudio bindings
- Keats/jsonwebtoken — JSON Web Token lib in rust
- Ockam — A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices.
- 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)
- 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
- Rust-Bio — bioinformatics libraries in Rust.
- jaemk/cached — Simple function caching/memoization
- aisk/rust-memcache — Memcached client library
- aymanmadkour/glock – Granular locking crate for Rust.
- crossbeam-rs/crossbeam – Support for parallelism and low-level concurrency in Rust
- disruptor - Low latency thread communication using the Disruptor pattern. Lower latency and higher throughput than Crossbeam but at a higher CPU cost.
- orium/archery [archery] — Library to abstract from
Rc/Arcpointer types. - orx-parallel — High performance, configurable and expressive parallel computation library.
- 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
- AWS [aws]
- Argument parsing
- aisk/rust-fire [fire] — Turn your function(s) to a command line app with one line of code
- clap-rs [clap] — A simple to use, full featured command-line argument parser
- TeXitoi/structopt [structopt] — parse command line argument by defining a struct
- aisk/rust-fire [fire] — Turn your function(s) to a command line app with one line of code
- Human-centered design
- rust-cli/human-panic [human-panic] — panic messages for humans
- rust-cli/human-panic [human-panic] — panic messages for humans
- Line editor
- srijs/rust-copperline [copperline] — pure-Rust command line editing library
- MovingtoMars/liner [liner] — A library offering readline-like functionality
- murarth/linefeed [linefeed] — Configurable, extensible, interactive line reader
- kkawakam/rustyline [rustyline] — readline implementation in Rust
- Pipeline
- imp/pager-rs [pager] — pipe your output through an external pager
- hniksic/rust-subprocess [subprocess] — facilities for interaction with external pipelines
- oconnor663/duct.rs [duct] — A builder for subprocess pipelines and IO redirection
- philippkeller/rexpect [rexpect] — automate interactive applications such as ssh, ftp, passwd, etc
- imp/pager-rs [pager] — pipe your output through an external pager
- Progress
- mitsuhiko/indicatif [indicatif] — indicate progress to users
- a8m/pb [pbr] — console progress bar for Rust
- FGRibreau/spinners [spinners] — 60+ elegant terminal spinners
- Prompt
- hashmismatch/terminal_cli.rs [terminal_cli] — build an interactive command prompt
- hashmismatch/terminal_cli.rs [terminal_cli] — build an interactive command prompt
- Style
- ogham/rust-ansi-term [ansi_term] — control colours and formatting on ANSI terminals
- LukasKalbertodt/term-painter [term-painter] — cross-platform styled terminal output
- vitiral/termstyle [termstyle] — build (and test) formatted and styled command line applications
- SergioBenitez/yansi [yansi] — A dead simple ANSI terminal color painting library
- ogham/rust-ansi-term [ansi_term] — control colours and formatting on ANSI terminals
- TUI
- TimonPost/crossterm [crossterm] — crossplatform terminal library
- gyscos/Cursive [cursive] — build rich TUI applications
- ogham/rust-term-grid [term_grid] — Rust library for putting things in a grid
- ticki/termion [termion] — bindless library for controlling terminals/TTY
- ratatui/ratatui [ratatui] — A library for building terminal user interfaces and the maintained successor to tui-rs.
- BearLibTerminal
- cfyzium/bearlibterminal [bear-lib-terminal] — BearLibTerminal bindings
- cfyzium/bearlibterminal [bear-lib-terminal] — BearLibTerminal bindings
- ncurses
- ihalila/pancurses [pancurses] — curses library, supports linux and windows
- ihalila/pancurses [pancurses] — curses library, supports linux and windows
- Termbox
- gchp/rustbox [rustbox] — bindings to Termbox
- gchp/rustbox [rustbox] — bindings to Termbox
- ALP
- Brotli
- ende76/brotli-rs — implementation of Brotli compression
- dropbox/rust-brotli — Brotli decompressor in Rust that optionally avoids the stdlib
- miniz
- alexcrichton/flate2-rs — miniz bindings
- alexcrichton/flate2-rs — miniz bindings
- snappy
- JeffBelgum/rust-snappy — snappy bindings
- JeffBelgum/rust-snappy — snappy bindings
- tar
- alexcrichton/tar-rs — tar archive reading/writing in Rust
- alexcrichton/tar-rs — tar archive reading/writing in Rust
- argmin-rs/argmin [argmin] — A pure Rust optimization library
- BLAS [blas]
- mikkyang/rust-blas — BLAS bindings
- stainless-steel/blas — BLAS bindings
- GMP
- fizyk20/rust-gmp — libgmp bindings
- fizyk20/rust-gmp — libgmp bindings
- GSL
- GuillaumeGomez/rust-GSL — GSL bindings
- GuillaumeGomez/rust-GSL — GSL bindings
- LAPACK
- stainless-steel/lapack — LAPACK bindings
- stainless-steel/lapack — LAPACK bindings
- rustsim/nalgebra — low-dimensional linear algebra library
- 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
- Scirust
- indigits/scirust — scientific computing library in Rust
- indigits/scirust — scientific computing library in Rust
- Statrs
- boxtown/statrs — Robust statistical computation library in Rust
- boxtown/statrs — Robust statistical computation library in Rust
- Rustimization [rustimization]
- noshu/rustimization — A rust optimization library which includes L-BFGS-B and Conjugate Gradient algorithm
- calebwin/emu — A language for GPGPU numerical computing from a Rust macro
- mehcode/config-rs [config] — Layered configuration system for Rust applications (with strong support for 12-factor applications).
- Kixunil/configure_me [configure_me] — library for processing application configuration easily
- leptonyu/cfg-rs [cfg-rs] - A Configuration Library for Rust Applications
- briansmith/webpki — Web PKI TLS X.509 certificate validation in Rust.
- brycx/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.
- ctz/rustls — A Rust implementation of TLS
- DaGenix/rust-crypto — cryptographic algorithms in Rust
- doublify/libblockchain — A Blockchain implementation
- exonum/exonum [exonum] — extensible framework for blockchain projects
- klutzy/suruga — A Rust implementation of TLS 1.2
- libOctavo/octavo — Modular hash and crypto library in Rust
- Ockam — A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices.
- po0uyan/memsafe [memsafe] — Locked, sealed, zero-on-drop memory for secrets.
- RustCrypto/hashes — Collection of cryptographic hash functions written in pure Rust
- rustindia/mpw-rs — Pure Rust implementation of the Master Password password manager
- Fraunhofer-AISEC/rabe — Library providing several Attribute-Based Encryption (ABE) schemes
- 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
- conradkdotcom/rooster [rooster] — Simple password manager to use in your terminal
- michoo/spasm — SPASM Smol PASsword Manager to use in your terminal, very simple to modify. With argon2, password generators(random, Dice,..), Check password complexity (Shannon), Check password on HIBP (Have I Been Pwnd),...
- sfackler/rust-native-tls — Bindings for native TLS libraries
- sfackler/rust-openssl — OpenSSL bindings
- kornelski/rust-security-framework — Bindings for Security Framework (OSX native
)
- steffengy/schannel-rs — Bindings for Schannel (Windows native TLS)
- zebradil/rustotpony — CLI manager of one-time password generators aka Google Authenticator (TOTP)
[database]
-
sfackler/r2d2 — generic connection pool
-
NoSQL [nosql]
- Cassandra [cassandra, cql]
- Metaswitch/cassandra-rs — bindings to the DataStax C/C++ client
- 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
- chill-rs/chill [couchdb] — A Rust client for the CouchDB REST API
- Elasticsearch [elasticsearch]
- benashford/rs-es [rs-es] — A Rust client for the Elastic REST API
- elastic-rs/elastic — A Rust client for the Elasticsearch REST API.
- benashford/rs-es [rs-es] — A Rust client for the Elastic REST API
- etcd
- jimmycuadra/rust-etcd [etcd] — A client library for CoreOS's etcd.
- jimmycuadra/rust-etcd [etcd] — A client library for CoreOS's etcd.
- ForestDB
- vhbit/sherwood — ForestDB bindings
- vhbit/sherwood — ForestDB bindings
- InfluxDB
- driftluo/InfluxDBClient-rs — Synchronization interface
- driftluo/InfluxDBClient-rs — Synchronization interface
- LevelDB
- skade/leveldb — LevelDB bindings
- skade/leveldb — LevelDB bindings
- LMDB [lmdb]
- vhbit/lmdb-rs [lmdb-rs] — LMDB bindings
- vhbit/lmdb-rs [lmdb-rs] — LMDB bindings
- Minigraf — Zero-config, single-file, embedded graph database with bi-temporal Datalog queries
- Neo4j [cypher, neo4j]
- omnigraph — Typed graph database where agents branch and merge like Git. S3-native, traversal + vector + BM25 in one runtime
- QLDB [QLDB]
- Couragium/qldb-rs [qldb] — AWS QLDB driver.
- Redis [redis]
- mitsuhiko/redis-rs — Redis library in Rust
- mitsuhiko/redis-rs — Redis library in Rust
- RocksDB
- rust-rocksdb/rust-rocksdb — RocksDB bindings
- rust-rocksdb/rust-rocksdb — RocksDB bindings
- SurrealDB
- surrealdb/surrealdb — SurrealDB embedded database library
- UnQLite
- zitsen/unqlite.rs — UnQLite bindings
- zitsen/unqlite.rs — UnQLite bindings
- ZooKeeper
- bonifaido/rust-zookeeper [zookeeper] — A client library for Apache ZooKeeper.
- bonifaido/rust-zookeeper [zookeeper] — A client library for Apache ZooKeeper.
- PickleDB
- seladb/pickledb-rs — a lightweight and simple key-value store, heavily inspired by Python's PickleDB.
- seladb/pickledb-rs — a lightweight and simple key-value store, heavily inspired by Python's PickleDB.
- Cassandra [cassandra, cql]
-
SQL [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
- c410-f3r/wtx — Fast client that supports MySQL, MariaDB and Percona databases.
- AgilData/mysql-proxy-rs — A MySQL Proxy
- PostgreSql [postgres, postgresql]
- sfackler/rust-postgres [postgres] — A native PostgreSQL client
- c410-f3r/wtx — Fast client with builtin support for composite types.
- sfackler/rust-postgres [postgres] — A native PostgreSQL client
- Sqlite [sqlite]
- jgallagher/rusqlite — Sqlite3 bindings
- jgallagher/rusqlite — Sqlite3 bindings
- MySql [mysql]
-
ORM [orm]
- diesel-rs/diesel — an ORM and Query builder for Rust
- ivanceras/rustorm — an ORM for Rust
- SeaQL/sea-orm — an async & dynamic ORM for Rust
- njord - A lightweight ORM library for Rust
- diesel-rs/diesel — an ORM and Query builder for Rust
- bluss/ndarray — N-dimensional array with array views, multidimensional slicing, and efficient operations
- kernelmachine/utah — Dataframe structure and operations in Rust
- weld-project/weld — High-performance runtime for data analytics applications
- salsa-rs/salsa - A generic framework for on-demand, incrementalized computation.
- singularity-data/risingwave — RisingWave is a cloud-native streaming database that uses SQL as the interface language.
- billyevans/tst [tst] — Ternary search tree collection
- bluss/rust-itertools —
- 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.
- Nemo157/roaring-rs – Roaring Bitmaps in Rust
- orium/rpds [rpds] — Persistent data structures in Rust.
- pop-os/progress-streams — Progress callbacks for types which implement
dyn io::Readordyn io::Write. - whitfin/usher [usher] — Parameterized routing for generic resources in Rust.
- Antimony
- antimonyproject/antimony [antimony] — stream processing / distributed computation platform
- 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
- Ockam — A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices.
- spicavigo/kafka-rust —
- fede1024/rust-rdkafka [rdkafka] — librdkafka bindings
- Beanstalkd
- schickling/rust-beanstalkd — Beanstalkd bindings
- schickling/rust-beanstalkd — Beanstalkd bindings
- Zenoh
- eclipse-zenoh/zenoh - A distributed programming framework that unifies data in motion, data at rest and computations. It elegantly blends traditional pub/sub with geo distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
- eclipse-zenoh/zenoh - A distributed programming framework that unifies data in motion, data at rest and computations. It elegantly blends traditional pub/sub with geo distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
- gsquire/sendgrid-rs — unofficial Rust library for SendGrid API
- lettre/lettre — an SMTP-library for Rust
- staktrace/mailparse [mailparse] — A library for parsing real-world email files
[encoding]
- ASN.1
- alex/rust-asn1 — A Rust ASN.1 (DER) serializer
- alex/rust-asn1 — A Rust ASN.1 (DER) serializer
- Bencode
- arjantop/rust-bencode — Bencode implementation in Rust
- arjantop/rust-bencode — Bencode implementation in Rust
- Binary
- arcnmx/nue — I/O and binary data encoding for Rust
- m4b/goblin [goblin] — cross-platform, zero-copy, and endian-aware binary parsing
- arcnmx/nue — I/O and binary data encoding for Rust
- BSON
- Byte swapping
- BurntSushi/byteorder — Supports big-endian, little-endian and native byte orders
- BurntSushi/byteorder — Supports big-endian, little-endian and native byte orders
- Cap'n Proto
- Character Encoding
- hsivonen/encoding_rs [encoding_rs] — A Gecko-oriented implementation of the Encoding Standard in Rust
- lifthrasiir/rust-encoding —
- hsivonen/encoding_rs [encoding_rs] — A Gecko-oriented implementation of the Encoding Standard in Rust
- CRC
- CSV
- BurntSushi/rust-csv — A fast and flexible CSV reader and writer, with support for Serde
- BurntSushi/rust-csv — A fast and flexible CSV reader and writer, with support for Serde
- FlatBuffers
- frol/flatc-rust — FlatBuffers compiler (flatc) integration for Cargo build scripts
- frol/flatc-rust — FlatBuffers compiler (flatc) integration for Cargo build scripts
- HAR
- mandrean/har-rs — A HTTP Archive Format (HAR) serialization & deserialization library
- 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
- servo/html5ever — High-performance browser-grade HTML5 parser
- Ion
- Couragium/ion-binary-rs — Amazon's Ion binary format encoder, decoder and hasher
- Couragium/ion-binary-rs — Amazon's Ion binary format encoder, decoder and hasher
- JSON
- 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
- Licenser/simdjson-rs [simd-json] - High performance JSON parser based on a port of simdjson
- maciejhirsz/json-rust [json] — JSON implementation in Rust
- Jsonnet
- MsgPack
- 3Hren/msgpack-rust — A pure Rust low/high level MessagePack implementation
- 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
- 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
- mandrean/postman-collection-rs — A Postman Collection v1, v2 & v2.1 serialization & deserialization library
- ProtocolBuffers
- RON (Rusty Object Notation)
- Tnetstring
- XML
- tafia/quick-xml — High performance XML pull reader/writer
- Florob/RustyXML — an XML parser written in Rust
- shepmaster/sxd-document — An XML library in Rust
- shepmaster/sxd-xpath — An XPath library in Rust
- netvl/xml-rs — A streaming XML library
- media-io/yaserde — Yet Another Serializer/Deserializer specialized for XML
- tafia/quick-xml — High performance XML pull reader/writer
- YAML
- kimhyunkang/libyaml-rust — libyaml bindings
- vitiral/stfu8 — Sorta Text Format in UTF-8
- kimhyunkang/libyaml-rust — libyaml bindings
- Operations
- pop-os/dbus-udisks2 -> UDisks2 DBus API
- pop-os/sys-mount — High level abstraction for the
mount/umount2system 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
- Stebalien/tempfile — temporary file library
- Stebalien/xattr [xattr] — list and manipulate unix extended file attributes
- Stebalien/tempfile — temporary file library
See also Are we game yet?
- Allegro
- SiegeLord/RustAllegro — Allegro 5 bindings
- SiegeLord/RustAllegro — Allegro 5 bindings
- Challonge
- vityafx/challonge-rs [challonge] — Client library for the Challonge REST API. Helps to organize tournaments.
- vityafx/challonge-rs [challonge] — Client library for the Challonge REST API. Helps to organize tournaments.
- Entity-Component Systems (ECS)
- slide-rs/specs — Specs Parallel ECS
- Game Engines
- Bevy — A data-driven game engine built in Rust
- ggez — A lightweight game framework for making 2D games with minimum friction
- Kiss3D — A Keep It Simple, Stupid 3D graphics engine written in Rust.
- Piston —
- Unrust — unrust — A pure rust based (webgl 2.0 / native) game engine
- Vulkust — Vulkust — A safe, highly multithreaded, Vulkan based game engine written with Rust.
- SDL [sdl]
- brson/rust-sdl — SDL1 bindings
- Rust-SDL2/rust-sdl2 — SDL2 bindings
- brson/rust-sdl — SDL1 bindings
- SFML
- jeremyletang/rust-sfml — SFML bindings
- jeremyletang/rust-sfml — SFML bindings
- Victorem
- VictoremWinbringer/Victorem [Victorem] — Easy UDP Game Server and UDP Client framework for creating simple 2D and 3D online game prototype
- 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
- 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]
- Font
- redox-os/rusttype — A pure Rust alternative to libraries like FreeType
- redox-os/rusttype — A pure Rust alternative to libraries like FreeType
- OpenGL [opengl]
- brendanzab/gl-rs —
- glium/glium — safe OpenGL wrapper for the Rust language.
- glutin — Rust alternative to GLFW
- Kiss3D — Draw simple geometric figures with a few lines of Rust.
- PistonDevelopers/glfw-rs —
- brendanzab/gl-rs —
- PDF
- kaj/rust-pdf —
- fschutt/printpdf — PDF writing library
- J-F-Liu/lopdf — PDF document manipulation
- kaj/rust-pdf —
- Vulkan [vulkan]
[gui]
-
autopilot-rs/autopilot-rs — A simple, cross-platform GUI automation library for Rust.
-
euv-dev/euv — A declarative, cross-platform UI framework for Rust with virtual DOM, reactive signals, and HTML macros for WebAssembly.
-
maps4print/azul — A free, functional, IMGUI-oriented GUI framework for rapid development of desktop applications written in Rust, supported by the Mozilla WebRender rendering engine.
-
PistonDevelopers/conrod — An easy-to-use, immediate-mode, 2D GUI library written entirely in Rust
-
Cocoa
-
- flutter-rs — Build flutter desktop app in dart & rust.
-
- relm — Asynchronous, GTK+-based, GUI library, inspired by Elm
- relm — Asynchronous, GTK+-based, GUI library, inspired by Elm
-
- imgui-rs — Rust bindings for ImGui
- imgui-rs — Rust bindings for ImGui
-
- 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
-
- pcwalton/libui-rs — libui bindings
. Abandoned project. The most updated fork is NoraCodes/libui-rs.
- pcwalton/libui-rs — libui bindings
-
- nuklear-rust — Rust bindings for Nuklear
- nuklear-rust — Rust bindings for Nuklear
-
- woboq/qmetaobject-rs - Integrate Qml and Rust by building the QMetaObject at compile time.
- Rust Qt Binding Generator — Binding generator hosted by KDE.
- rust-qt —
- woboq/qmetaobject-rs - Integrate Qml and Rust by building the QMetaObject at compile time.
-
saurvs/nfd-rs — nativefiledialog bindings
-
- sciter-sdk/rust-sciter — Sciter bindings
- sciter-sdk/rust-sciter — Sciter bindings
-
tauri Rust GUI using OS WebView and HTML & CSS
- abonander/img_hash — Perceptual image hashing and comparison for equality and similarity.
- anshap1719/image-hdr — An implementation of HDR Radiance Estimation using Poisson Photon Noise Estimator for creating HDR image from a set of images
- 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
imagelibrary. - kornia/kornia-rs — Low level 3D computer vision library in Rust
- twistedfall/opencv-rust — Rust bindings for OpenCV
- teovoinea/steganography [steganography] — A simple steganography library
- shnewto/bnf — A library for parsing Backus–Naur form context-free grammars.
[log]
- rust-lang-nursery/log — Logging implementation for Rust
- slog-rs/slog — Structured, composable logging for Rust
- sfackler/log4rs — highly configurable logging framework modeled after Java's Logback and log4j libraries
- cute
- mattgathu/cute — Macro for Python-esque list comprehensions in Rust.
- 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
- CommonMark
- raphlinus/pulldown-cmark — CommonMark parser in Rust
- Pebble
- andars/pebble.rs — A crate that allows Rust to be used to develop Pebble applications.
- HTTP
- aisk/bangboo — A synchronous HTTP client with a reqwest-like blocking API.
- pop-os/url-scraper — Scrape URLs from HTML pages
- aisk/bangboo — A synchronous HTTP client with a reqwest-like blocking API.
- FTP
- mattnenterprise/rust-ftp — an FTP client for Rust
- mattnenterprise/rust-ftp — an FTP client for Rust
- IPNetwork
- achanda/ipnetwork — A library to work with IP networks in pure Rust
- candrew/netsim — A Rust library for network simulation and testing
- achanda/ipnetwork — A library to work with IP networks in pure Rust
- JSON-RPC
- vlopes11/futures-jsonrpc [futures-jsonrpc] — Futures implementation for JSON-RPC
- vlopes11/futures-jsonrpc [futures-jsonrpc] — Futures implementation for JSON-RPC
- Low level
- libpnet/libpnet — A cross-platform, low level networking
- m-labs/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.
- dylanmckay/protocol — Custom TCP/UDP protocol definitions
- slawlor/ractor - Actor library for Rust
- libpnet/libpnet — A cross-platform, low level networking
- NanoMsg
- thehydroimpulse/nanomsg.rs — nanomsg bindings
- thehydroimpulse/nanomsg.rs — nanomsg bindings
- Nng
- neachdainn/nng-rs [Nng] — Nng (nanomsg v2) bindings
- neachdainn/nng-rs [Nng] — Nng (nanomsg v2) bindings
- NNTP
- mattnenterprise/rust-nntp — an NNTP client for Rust
- Ockam — A suite of tools, programming libraries and infrastructure that make it easy to build devices that communicate securely, privately and trustfully with cloud services and other devices.
- mattnenterprise/rust-nntp — an NNTP client for Rust
- POP3
- mattnenterprise/rust-pop3 — A POP3 client for Rust
- mattnenterprise/rust-pop3 — A POP3 client for Rust
- SSH
- alexcrichton/ssh2-rs — libssh2 bindings
- Oryxis — A modern SSH client built entirely in Rust.
- Thrussh — an SSH library written from scratch in Rust, backed by libsodium
- alexcrichton/ssh2-rs — libssh2 bindings
- Stomp
- zslayton/stomp-rs — A STOMP 1.2 client implementation in Rust
- zslayton/stomp-rs — A STOMP 1.2 client implementation in Rust
- ZeroMQ
- erickt/rust-zmq — ZeroMQ bindings
- erickt/rust-zmq — ZeroMQ bindings
- CoAP
- Covertness/coap-rs — A Constrained Application Protocol(CoAP) library for Rust.
- Covertness/coap-rs — A Constrained Application Protocol(CoAP) library for Rust.
- Zenoh
- eclipse-zenoh/zenoh - A protocol that unifies data in motion, data at rest and computations. It elegantly blends traditional pub/sub with geo distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
- eclipse-zenoh/zenoh - A protocol that unifies data in motion, data at rest and computations. It elegantly blends traditional pub/sub with geo distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
- Geal/nom — parser combinator library
- ivanceras/inquerest — an URL parameter parser for rest filter inquiry
- kevinmehall/rust-peg — Parsing Expression Grammar (PEG) parser generator
- m4rw3r/chomp – A fast monadic-style parser combinator
- Marwes/combine — parser combinator library
- lalrpop/lalrpop — LR(1) parser generator for Rust
- nrc/zero — zero-allocation parsing of binary data
- pest-parser/pest — The Elegant Parser
- ptal/oak — A typed PEG parser generator (compiler plugin)
- rustless/queryst — A query string parsing library for Rust inspired by https://github.com/ljharb/qs
- freestrings/jsonpath - JsonPath engine written in Rust. Webassembly and Javascript support too
- vgnapuga/meon — declarative parsing engine that outputs a flat struct-of-arrays instead of an AST, with standalone per-type parsing methods, O(1) access, and benchmarks included
- pop-os/debarchive Library for reading and extracting debian archives
- Serial Port
- serialport/serialport-rs [serialport] — A cross-platform library providing access to serial ports.
-
Cross-platform
- svartalf/rust-battery — Cross-platform information about the notebook batteries
- svartalf/rust-battery — Cross-platform information about the notebook batteries
-
Linux
- frol/cgroups-fs — Rust bindings to Linux Control Groups (cgroups)
- pop-os/dbus-udisks2 — UDisks2 DBus API
- pop-os/distinst — Linux distribution installer library
- inotify-rs/inotify — inotify bindings
- yaa110/rust-iptables — iptables bindings
- Smithay/smithay — Library to help you build window manager on linux
- frol/cgroups-fs — Rust bindings to Linux Control Groups (cgroups)
-
Unix-like
- nix-rust/nix — Unix-like API bindings
- zargony/rust-fuse — FUSE bindings
- nix-rust/nix — Unix-like API bindings
-
Windows
- retep998/winapi-rs — Windows API bindings
- retep998/winapi-rs — Windows API bindings
-
FreeBSD
- fubarnetes/libjail-rs — Rust implementation of a FreeBSD jail library
- dlrobertson/capsicum-rs — Rust bindings for the FreeBSD capsicum framework
- cerulion-inc/cerulion [cerulion_cli] — Robot runtime with zero-copy shared memory and a graph-aware scheduler. A 1 MiB round trip takes 4.08 µs for native nodes and 11.12 µs for ROS 2 Jazzy over rmw_cerulion, against 10,952 µs for stock ROS 2 Jazzy (medians, one Linux x86-64 desktop, 100 Hz, Sep 2026). Re-executes supported native recordings against new code, with an exit code for CI.
-
- dysonltd/universal-robot — Universal Robot Cobot Ethernet Communication API
- PistonDevelopers/dyon — A rusty dynamically typed scripting language
- gluon-lang/gluon — A small, statically-typed, functional programming language
- murarth/ketos — A Lisp dialect functional programming language serving as a scripting and extension language for rust
- moss — A dynamically typed scripting language
- Passerine — A small extensible functional scripting language designed for concise expression with little code
- jonathandturner/rhai — A tiny and fast embedded scripting language resembling a combination of JS and Rust
- Handlebars
- sunng87/handlebars-rust — Handlebars template engine with inheritance, custom helper support.
- sunng87/handlebars-rust — Handlebars template engine with inheritance, custom helper support.
- HTML
- askama-rs/askama [askama] — A type-safe, compiled template engine inspired by Jinja.
- kaj/ructe — HTML template system for Rust
- Keats/tera — template engine based on Jinja2 and the Django template language.
- lfairy/maud — compile-time HTML templates
- Stebalien/horrorshow-rs — compile-time HTML templates
- Mustache
- tailhook/marafet — Compiler for Jade-like template language to cito.js-based virtual dom
- BurntSushi/suffix — Linear time suffix array construction (with Unicode support)
- BurntSushi/tabwriter — Elastic tab stops (i.e., text column alignment)
- mgeisler/textwrap [textwrap] — Word wrap text (with support for hyphenation)
- pwoolcoc/ngrams — Construct n-grams from arbitrary iterators
- ps1dr3x/easy_reader — A reader that allows forwards, backwards and random navigations through the lines of huge files without consuming iterators
- rust-lang/regex — Regular expressions (RE2 style)
- strsim-rs — String similarity metrics
- greyblake/whatlang-rs — Natural language detection library based on trigrams
- yaa110/rake-rs — Multilingual implementation of RAKE algorithm for Rust
- Lucretiel/joinery [joinery] – Generic string + iterable joining
- 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] —
- SeekStorm [SeekStorm] - sub-millisecond full-text search library & multi-tenancy server in Rust
- tantivy-search/tantivy [tantivy] —
- zerocopy - Utilities for safely reinterpreting arbitrary byte sequences as native Rust types
- beneills/quantum — Advanced Rust quantum computer simulator
- chromium/chromiumos/platform/crosvm CrOSVM - Enables Chrome OS to run Linux apps inside a fast, sercure virtualized environment
- saurvs/hypervisor-rs — Hardware-accelerated virtualization on OS X
See also Are we web yet? and Rust web framework comparison.
- Client-side / WASM
- HTTP Client
- alexcrichton/curl-rust — libcurl bindings
- hyperium/hyper — an HTTP implementation
- seanmonstar/reqwest — an ergonomic HTTP Client for Rust.
- DoumanAsh/yukikaze — Beautiful and elegant Yukikaze is little HTTP client library based on hyper.
- c410-f3r/wtx — HTTP/2 client that also provides a static pool for concurrent applications.
- alexcrichton/curl-rust — libcurl bindings
- 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.
- Gotham — A flexible web framework that does not sacrifice safety, security or speed.
- actix/actix-web — A lightweight async web framework for Rust with websocket support
- hyperlane-dev/hyperlane — A lightweight, high-performance, cross-platform Rust HTTP server library built on Tokio with built-in support for middleware, WebSocket, SSE, and raw TCP.
- hyperium/hyper — an HTTP implementation
- GildedHonour/frank_jwt — JSON Web Token implementation in Rust.
- Guard-Core/guard-core-rs [guard-core-rs] - Application-layer API security engine with Actix, axum, Rocket and Tower adapters: IP filtering, rate limiting with automatic bans and attack pattern detection.
- handlebars-rust — an Iron web framework middleware.
- Iron — A middleware-based server framework
- Nickel — inspired by Express
- 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.
- rustforce/sapper — A lightweight web framework built on async hyper, implemented in Rust language.
- tiny-http — Low level HTTP server library
- tomaka/rouille — Web framework in Rust
- carllerche/tower-web [tower-web] — A fast, boilerplate free, web framework for Rust
- c410-f3r/wtx — A small and fast to compile framework with builtin support for Databases, JSON, middlewares, streaming and many more.
- hyperium/hyper — an HTTP implementation
- WebSocket
- cyderize/rust-websocket — A framework for dealing with WebSocket connections (both clients and servers)
- housleyjk/ws-rs — lightweight, event-driven WebSockets for Rust
- 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.
- c410-f3r/wtx — Client and server with encryption support and reader/writer halves suitable to concurrent tasks.
- cyderize/rust-websocket — A framework for dealing with WebSocket connections (both clients and servers)
- Miscellaneous
- cargonauts — A web framework intended for building maintainable, well-factored web apps.
- pwoolcoc/soup [soup] - A library similar to Pythons BeautifulSoup, designed to enable quick and easy manipulation and querying of HTML documents.
- rust-embed — A macro to embed static assets into a Rust binary.
- 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.
- sozu-proxy/sozu [sozu] — A HTTP reverse proxy.
- Static Site Generators
- getzola/zola [zola] — An opinionated static site generator with everything built-in.
- FuGangqiang/mdblog.rs — Static site generator from markdown files.
- leven-the-blog/leven [leven] — A simple, parallelized blog generator.
- getzola/zola [zola] — An opinionated static site generator with everything built-in.
A registry allows you to publish your Rust libraries as crate packages, to share them with others publicly and privately.
- Crates - The official public registry for Rust/Cargo.
- 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.
-
Benchmarks
- TeXitoi/benchmarksgame-rs — Rust implementations for the The Computer Language Benchmarks Game
- c410-f3r/wtx-bench — A set of WEB benchmarks available at https://c410-f3r.github.io/wtx-bench.
- diesel-rs/metrics — Describes the performance of all major database clients across different scenarios.
- 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.
- 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 — 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 in Motion — A video series by Carol Nichols and Jake Goulding (paid)
- 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
- Build a language VM
- Microsoft Rust Training - Beginner, advanced, expert level Rust training material
-
Podcasts
- New Rustacean — A podcast about learning Rust
- Rusty Spike — news on all things Rust
-
RustBooks — list of RustBooks
-
Rust Subreddit — A subreddit(forum) where rust related questions, articles and resources are posted and discussed
-
libs.tech/rust - Awesome Rust libraries and hidden gems
MIT