Table of Contents
- Applications written in Rust
- Development Tools
- Libraries
- Astronomy
- Asynchronous
- Audio
- Authentication
- Bioinformatics
- Caching
- Cloud
- Command-line argument parsing
- Command-line interface
- Compression
- Computation
- Concurrency
- Cryptography
- Database
- Data structures
- Date and time
- Distributed Systems
- Encoding
- Filesystem
- Game development
- Games
- Geospatial
- Graphics
- GUI
- Image processing
- Machine learning
- Markup language
- Mobile
- Network programming
- Parser
- Platform specific
- Template engine
- Text processing
- Text rendering
- Virtualization
- Web programming
- Resources
- License
Applications written in Rust
- azerupi/mdBook — a command line utility to create books from markdown files
- bluejekyll/trust-dns — a DNS-server
- BurntSushi/xsv — a fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)
- dlecan/generic-dns-update — a tool to update DNS zonefiles with your IP address
- Factotum — A system to programmatically run data pipelines
- Fractalide — Flow-based Programming environment.
- imjacobclark/Herd — an experimental HTTP load testing application
- jedisct1/flowgger — a fast, simple and lightweight data collector
- kbknapp/docli — a command line utility for managing DigitalOcean infrastructure
- MaidSafe — a decentralized platform.
- qmx/limonite — static blog/website generator
- Servo — a prototype web browser engine
- Virtualization
- tailhook/vagga — a containerization tool without daemons
- Database
- pingcap/tikv — a distributed KV database in Rust
- seppo0010/rsedis — a Redis reimplementation in Rust
- Emulators [emulator]
- Commodore 64
- Gameboy
- NES
- Playstation
- ZX Spectrum
- Games, 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
- rhex — hexagonal ascii roguelike
- Operating systems, see also A comparison of operating systems written in Rust
- System tools
- Aaronepower/tokei — counts the lines of code
- buster/rrun — a command launcher for Linux, similar to gmrun
- ogham/exa — a replacement for 'ls' written in Rust
- mmstick/systemd-manager — a systemd service manager written in Rust using GTK-rs.
- mmstick/tv-renamer — a tv series renaming application with an optional GTK3 frontend.
- uutils/coreutils — a cross-platform Rust rewrite of the GNU coreutils
- Text editors
Development tools
- Clippy [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
- frewsxcv/crate-deps — generates images of dependency graphs for crates hosted on crates.io
- Racer — code completion for Rust
- rustfmt — a Rust code formatter
- Rustup — the Rust toolchain installer
Build system
- Cargo — the Rust package manager
- rsolomo/cargo-check [cargo-check] — a wrapper around
cargo rustc -- -Zno-trans
which can be helpful for running a faster compile if you only need correctness checks - kbknapp/cargo-count [cargo-count] — lists source code counts and details about cargo projects, including unsafe statistics
- pwoolcoc/cargo-do [cargo-do] — run multiple cargo commands in a row
- maxsnew/cargo-dot — generate graphs of a Cargo project's dependencies
- killercup/cargo-edit [cargo-edit] — allows you to add and list dependencies by reading/writing to your Cargo.toml file from the command line
- kbknapp/cargo-graph [cargo-graph] — updated fork of
cargo-dot
with additional features - imp/cargo-info [cargo-info] — queries crates.io for crates details from command line
- regexident/cargo-modules [cargo-modules] — A cargo plugin for showing a tree-like overview of a crate's modules.
- imp/cargo-multi [cargo-multi] — runs specified cargo command on multiple crates
- kbknapp/cargo-outdated [cargo-outdated] — displays when newer versions of Rust dependencies are available, or out of date
- sunng87/cargo-release [cargo-release] — tool for releasing git-managed cargo project, build, tag, publish, doc and push
- DanielKeep/cargo-script [cargo-script] — lets people quickly and easily run Rust "scripts" which can make use of Cargo's package ecosystem
- passcod/cargo-watch [cargo-watch] — utility for cargo to compile projects when sources change
- rsolomo/cargo-check [cargo-check] — a wrapper around
- CMake
- SiegeLord/RustCMake — an example project showing usage of CMake with Rust
Debugging
- GDB
- LLDB
- lldb_batchmode.py — allows to use LLDB in a way similar to GDB's batch mode.
Embedded
- Cross compiling
- japaric/rust-cross — everything you need to know about cross compiling Rust programs
- Raspberry Pi
- Ogeon/rust-on-raspberry-pi — instructions for how to cross compile Rust projects for the Raspberry Pi .
FFI
- C
- crabtw/rust-bindgen — a Rust bindings generator
- Sean1708/rusty-cheddar — generates C header files from Rust source files
- Erlang
- hansihe/Rustler — safe Rust bridge for creating Erlang NIF functions
- Java
- drrb/java-rust-example — use Rust from Java
- Lua
- jcmoyer/rust-lua53 — Lua 5.3 bindings for Rust
- kballard/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
- rustbridge/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
- lukemetz/rustpy — Python bindings
- R
- rustr/rustr — use Rust from R, and use R in Rust
- Ruby
- rustbridge/helix — write Ruby classes in Rust
IDEs
- intellij-rust — an IntelliJ-based IDE for Rust
- PistonDevelopers/VisualRust — a Visual Studio extension for Rust
- Ride —
- RustDT — an Eclipse-based IDE for Rust
- SolidOak — a simple IDE for Rust, based on GTK+ and Neovim
- Visual Studio Code
Profiling
- ellisonch/rust-stopwatch — a stopwatch library
- FlameGraphs
- mrhooray/torch — generates FlameGraphs based on DWARF Debug Info
- TyOverby/flame —
Testing
- BurntSushi/quickcheck [quickcheck] — a Rust implementation of QuickCheck
- farcaller/shiny — a fancy syntax similar to Ruby's Rspec or Objective-C' kiwi
- frewsxcv/afl.rs — a Rust fuzzer, using AFL
- reem/stainless [stainless] — Organized, flexible testing framework
Libraries
Astronomy
- saurvs/astro-rust — astronomy for Rust
- flosse/rust-sun — A rust port of the JS library suncalc
Asynchronous
- zonyitoo/coio-rs — a coroutine I/O library with a working-stealing scheduler
- thehydroimpulse/tangle — a scala-inspired futures library
- dpc/mioco — Scalable, coroutine-based, asynchronous IO handling library
Audio
- GuillaumeGomez/rust-fmod — FMOD bindings
- jhasse/ears — a simple library to play Sounds and Musics, on top of OpenAL and libsndfile
- jpernst/openal-rs — OpenAL 1.1 bindings
- musitdev/portmidi-rs — PortMidi bindings
- RustAudio
- RustAudio/rust-portaudio — PortAudio bindings
Authentication
- keats/rust-jwt — JSON Web Token lib in rust
Bioinformatics
- Rust-Bio — bioinformatics libraries in Rust.
Caching
- jaysonsantos/bmemcached-rs — Memcached library written in pure rust
Concurrency
- aturon/crossbeam – Support for parallelism and low-level concurrency in Rust
- nikomatsakis/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]
- DigitalOcean
- kbknapp/doapi — DigitalOcean v2 API bindings
Command-line argument parsing
- docopt/docopt.rs — a Rust implementation of DocOpt
- kbknapp/clap-rs — a simple to use, full featured command-line argument parser
Command-line interface
- kkawakam/rustyline — Readline Implementation in Rust
- srijs/rust-copperline — pure-Rust Command Line Editing Library
Compression
- brotli
- ende76/brotli-rs — implementation of Brotli compression
- dropbox/rust-brotli — Brotli decompressor in Rust that optionally avoids the stdlib
- bzip2
- alexcrichton/bzip2-rs — libbz2 bindings
- miniz
- alexcrichton/flate2-rs — miniz bindings
- snappy
- JeffBelgum/rust-snappy — snappy bindings
- tar
- alexcrichton/tar-rs — tar archive reading/writing in Rust
- zip
- slackito/zip — read and write ZIP archives
Computation
- BLAS [blas]
- mikkyang/rust-blas — BLAS bindings
- stainless-steel/blas — BLAS bindings
- GMP
- thestinger/rust-gmp — libgmp bindings
- GSL
- GuillaumeGomez/rust-GSL — GSL bindings
- 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
- Scirust
- indigits/scirust — scientific computing library in Rust
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.
- ctz/rustls - a Rust implementation of TLS
- DaGenix/rust-crypto — cryptographic algorithms in Rust
- dnaq/sodiumoxide — libsodium bindings
- klutzy/suruga — a Rust implementation of TLS 1.2
- libOctavo/octavo — Modular hash and crypto library in Rust
- sfackler/rust-native-tls - Bindings for native TLS libraries
- sfackler/rust-openssl — OpenSSL bindings
- sfackler/rust-security-framework - Bindings for Security Framework (OSX native crypto)
- steffengy/schannel-rs - Bindings for Schannel (Windows native TLS)
Database
- sfackler/r2d2 — generic connection pool
- NoSQL [nosql]
- Cassandra [cassandra, cql]
- tupshin/cassandra-rust — Cassandra bindings
- CouchDB [couchdb]
- couchdb-rs/couchdb [couchdb] — a Rust client for the CouchDB REST API
- Elasticsearch [elasticsearch]
- 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.
- ForestDB
- vhbit/sherwood — ForestDB bindings
- LMDB [lmdb]
- vhbit/lmdb-rs [lmdb-rs] — LMDB bindings
- MongoDB [mongodb]
- mongodb-labs/mongo-rust-driver-prototype [mongodb] — MongoDB bindings
- Neo4j [cypher, neo4j]
- Redis [redis]
- mitsuhiko/redis-rs — Redis library in Rust
- UnQLite
- zitsen/unqlite.rs — UnQLite - An Embeddable NoSQL Database Engine library wrapper for Rust
- Cassandra [cassandra, cql]
- SQL [sql]
- Microsoft SQL
- MySql [mysql]
- blackbeam/rust-mysql-simple [mysql] — a native MySql client
- ORM [orm]
- deuterium-orm/deuterium-orm — an SQL query builder for Rust
- diesel-rs/diesel — an ORM and Query builder for Rust
- ivanceras/rustorm — an ORM for Rust
- phonkee/treasure — an ORM for Rust
- PostgreSql [postgres, postgresql]
- sfackler/rust-postgres [postgres] — a native PostgreSQL client
- Sqlite [sqlite]
- dckc/rust-sqlite3 — Sqlite3 bindings
- jgallagher/rusqlite — Sqlite3 bindings
- linuxfood/rustsqlite — Sqlite3 bindings
Data structures
- bluss/rust-itertools —
- contain-rs — Extension of Rust's std::collections
- fizyk20/generic-array – a hack to allow for arrays sized by typenums
- Nemo157/roaring-rs – Roaring Bitmaps in Rust
- reem/rust-typemap —
- serde-rs/serde — a framework to generically serialize Rust data structures
Date and time
Distributed Systems
- Apache Kafka
- Beanstalkd
- schickling/rust-beanstalkd — Beanstalkd bindings
- HDFS
- hyunsik/hdfs-rs — libhdfs bindings
- gsquire/sendgrid-rs — unofficial Rust library for SendGrid API
- lettre/lettre — an SMTP-library for Rust
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
- TyOverby/bincode — a binary encoder/decoder in Rust
- Byte swapping
- BurntSushi/byteorder — Supports big-endian, little-endian and native byte orders
- Cap'n Proto
- CBOR
- BurntSushi/rust-cbor — Supports JSON conversion and type-based encoding/decoding
- Character Encoding
- CRC
- CSV
- HTML
- servo/html5ever — High-performance browser-grade HTML5 parser
- JSON
- serde-rs/json [serde_json] — JSON support for Serde framework
- maciejhirsz/json-rust [json] — JSON implementation in Rust
- Jsonnet
- MsgPack
- mneumann/rust-msgpack —
- 3Hren/msgpack-rust — a pure Rust low/high level MessagePack implementation
- ProtocolBuffers
- RON (Rusty Object Notation)
- Tnetstring
- TOML
- XML
- 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
- 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
Filesystem
- Temporary Files
- rust-lang-nursery/tempdir — temporary directory library
- Stebalien/tempfile — temporary file library
Game development
- Allegro
- SiegeLord/RustAllegro — Allegro 5 bindings
- Amethyst
- ebkalderon/amethyst — data-oriented game engine
- 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)
- slide-rs/specs — Specs Parallel ECS
- Piston
- Piston —
- SDL [sdl]
- AngryLawyer/rust-sdl2 — SDL2 bindings
- brson/rust-sdl — SDL1 bindings
- SFML
- jeremyletang/rust-sfml — SFML bindings
- Voxlap
- bbodi/rust-voxlap — Voxlap bindings
Geospatial
- Georust — geospatial tools and libraries written in Rust
Graphics
- gfx-rs/gfx — A high-performance, bindless graphics API for Rust.
- OpenGL [opengl]
- brendanzab/gl-rs —
- PistonDevelopers/glfw-rs —
- tomaka/glium — safe OpenGL wrapper for the Rust language.
- tomaka/glutin — Rust alternative to GLFW
- Vulkan [vulkan]
GUI
- PistonDevelopers/conrod — An easy-to-use, immediate-mode, 2D GUI library written entirely in Rust
- Cocoa
- IUP
- dcampbell24/iup-rust — IUP bindings
- Kiss-ui — a simple UI framework built on IUP
- GTK+ [gtk]
- gtk-rs/gtk — GTK+ bindings
- libui
- pcwalton/libui-rs — libui bindings
- ncurses [ncurses]
- jeaye/ncurses-rs — ncurses bindings
- saurvs/nfd-rs — Open native UI file dialogs in Linux, OS X and Windows
- Qt
- cyndis/qmlrs — QtQuick bindings
- Sciter
- pravic/rust-sciter — Sciter bindings
- Termbox
- gchp/rustbox — a Rust implementation of Termbox
Image processing
- chyh1990/imageproc — An advanced image processing library for Rust.
- cybergeek94/img-hash — Perceptual image hashing and comparison for equality and similarity.
- PistonDevelopers/image — Basic imaging processing functions and methods for converting to and from image formats
Machine learning
- AtheMathmo/rusty-machine — Machine learning library for Rust
- autumnai/leaf — Open Machine Intelligence framework.
- maciejkula/rustlearn — Machine learning crate for Rust.
Markup language
- CommonMark
- google/pulldown-cmark — CommonMark parser in Rust
Mobile
- Android
- tomaka/android-rs-glue — glue between Rust and Android
- 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
- FTP
- mattnenterprise/rust-ftp — an FTP client for Rust
- Low level
- libpnet/libpnet — a cross-platform, low level networking
- NanoMsg
- thehydroimpulse/nanomsg.rs — nanomsg bindings
- NNTP
- mattnenterprise/rust-nntp — an NNTP client for Rust
- POP3
- mattnenterprise/rust-pop3 — a POP3 client for Rust
- SSH
- alexcrichton/ssh2-rs — libssh2 bindings
- Stomp
- 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
Parser
- dragostis/pest - Elegant, efficient grammars
- 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
- nikomatsakis/lalrpop — LR(1) parser generator for Rust
- 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
Platform specific
- Linux
- hannobraun/inotify-rs — inotify bindings
- Unix-like
- nix-rust/nix — Unix-like API bindings
- zargony/rust-fuse — FUSE bindings
- Windows
- retep998/winapi-rs — Windows API bindings
Template engine
- Handlebars
- sunng87/handlebars-rust — Handlebars template engine with inheritance, custom helper support.
- HTML
- 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
Text processing
- BurntSushi/suffix — Linear time suffix array construction (with Unicode support)
- BurntSushi/tabwriter — Elastic tab stops (i.e., text column alignment)
- pwoolcoc/ngrams — Construct n-grams from arbitrary iterators
- rust-lang-nursery/regex — Regular expressions (RE2 style)
Text rendering
- dylanede/rusttype — A pure Rust alternative to libraries like FreeType.
Virtualization
- beneills/quantum — Advanced Rust quantum computer simulator
- ekse/unicorn-rs — Rust bindings for the unicorn CPU emulator
- saurvs/hypervisor-rs — Hardware-accelerated virtualization on OS X
Web programming
- HTTP Client
- alexcrichton/curl-rust — libcurl bindings
- hyperium/hyper — an HTTP implementation
- vhbit/curl-rs — libcurl bindings
- HTTP Server
- fengsp/pencil —
- hyperium/hyper — an HTTP implementation
- Iron — a middleware-based server framework
- sunng87/handlebars-iron — Handlebars-rust as an Iron web framework middleware.
- Nickel — inspired by Express
- Ogeon/rustful — a RESTful web framework for Rust
- Rustless — a REST-like API micro-framework inspired by Grape and Hyper
- tiny-http — Low level HTTP server library
- WebSocket
- cyderize/rust-websocket — a framework for dealing with WebSocket connections (both clients and servers)
- vityafx/urlshortener-rs [urlshortener] — A very simple urlshortener library for Rust.
- housleyjk/ws-rs — lightweight, event-driven WebSockets for Rust
Resources
- Benchmarks
- TeXitoi/benchmarksgame-rs — Rust implementations for the The Computer Language Benchmarks Game
- Learning
- exercism.io - programming exercises that help you learn new concepts in Rust.
- Rust by Example
- rust-learning — a collection of useful resources to learn Rust
- Rustlings — small exercises to get you used to reading and writing Rust code
- Podcasts
- New Rustacean — a podcast about learning Rust
- Rusty Radio — covering the rust ecosystem
- RustCamp 2015 Talks
- Rust Design Patterns
- Rust Guidelines
-----------
A web frontend for the Rust compiler 。
rustw
A web frontend for the Rust compiler. Displays errors in an easily readable, concise layout, gives easy access to more information, quickly allows reading or editing code.Be warned: very work in progress!
Contents:
You can play with a live demo. Be warned that it is very, very slow since it is running on a crappy server and rustw is not designed to be run over the internet. When run locally, it is much snappier.
Motivation:
- Better errors - we should have interactive experiences for exploring and visualising errors involving the borrow checker, macros, etc. Also, easy access to error explanations and docs.
- Explore code - provide a platform for searching and understanding source code.
- Convenience - one click (or keystroke) to rebuild, easy to edit and explore code, GUI for multirust (in some ways this is a minimal IDE experience, focused on building, rather than editing).
Building
Requires a nightly version of Rust to build.- setup the React/webpack environment (requires npm):
npm install
# if you have yarn installed:
yarn
# if not:
npm install --save react react-dom redux react-redux redux-thunk
npm install --save-dev babel-loader babel-core
npm install --save-dev babel-preset-react
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-plugin-transform-object-rest-spread
npm install --save-dev webpack
npm install --save-dev immutable
- build the JS components:
npm run build
oryarn build
cargo build --release
to build the Rust parts.
Running
rustw
in your project's directory (i.e., the directory you would normally use
cargo or rustc from).Running
rustw
will start a web server and display a URL in the console. To
terminate the server, use ctrl + c
. If you point your browser at the provided
URL, it will build your project, output will be displayed in your browser. The
terminal is only used to display some logging, it can be ignored. See
tour for more.Currently, rustw has only been tested on Firefox on Linux (issue 48).
If you want to play with cool features like 'jump to definition', see the customisation below.
Troubleshooting
If you get an error likeerror while loading shared libraries
while starting
up rustw you should try the following:On Linux:
export LD_LIBRARY_PATH=$(rustc --print sysroot)/lib:$LD_LIBRARY_PATH
On MacOS:export DYLD_LIBRARY_PATH=$(rustc --print sysroot)/lib:$DYLD_LIBRARY_PATH
Customisation
Create arustw.toml
file in your project's directory. See src/config.rs
or run rustw -h
for the options available and their defaults.Some features need configuration in the rustw.toml before they can be properly used. Set the following properties to use the cool stuff:
save_analysis = true
This means rustw will run rustc with -Zsave-analysis
, this gives you access to
analysis information from the compiler which is used in jump to defintion
,
types on hover, refactoring, etc.edit_command = "subl $file:$line"
To be able to open files in your local editor. This example works for sublime
text (subl
). Use the $file
and $line
variables as appropriate for your
editor.vcs_link = "https://github.com/nrc/rustw-test/blob/master/$file#L$line"
For links to the code in version control.Tour
On loading rustw in your browser it builds the project. When the build is complete you'll see the output from stdout (messages, hidden by default) and stderr (errors, warnings, etc., shown by default). If you project compiles without errors or warnings this won't be very interesting!To rebuild, reload the page (quickest way is to hit F5) or click the
rebuild
button.You'll see a summary of errors and warnings. You can hide the details (notes, etc.) by clicking the
-
buttons. You can show code snippets by clicking the
+
buttons next to filenames. This will show syntax highlighted code with the
source of the error (or note, etc.) highlighted. If you click on the filename
itself, it will take you to a source code view of that file. You can right click
these links to bring up a menu, here you have options to edit the file (which
opens the file in an editor which must be specified in rustw.toml
) or make a
'quick edit', which pops up a text box to edit the code in the browser.You can click error codes to see explanations。
from https://github.com/nrc/rustw
Rust代码和资源的整理清单。
A curated list of Rust code and resources.
If you want to contribute, please read this.
- Applications
- Development tools
- Libraries
- Artificial Intelligence
- Astronomy
- Asynchronous
- Audio
- Authentication
- Automotive
- Bioinformatics
- Caching
- Cloud
- Command-line
- Compression
- Computation
- Concurrency
- Configuration
- Cryptography
- Database
- Data processing
- Data structures
- Data visualization
- Date and time
- Distributed systems
- Encoding
- Filesystem
- Game development
- Geospatial
- Graphics
- Graph processing
- GUI
- Image processing
- Industrial automation
- Language specification
- Logging
- Macro
- Markup language
- Mobile
- Network programming
- Parsing
- Peripherals
- Platform specific
- Scripting
- Template engine
- Text processing
- Text search
- Virtualization
- Web programming
- Registries
- Resources
- License
See also Rust — Production(organizations running Rust in production).
- alacritty — A cross-platform, GPU enhanced terminal emulator
- asm-cli-rust — interative assembly shell written in rust.
- 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
- cloudflare/boringtun — A Userspace WireGuard VPN Implementation
- denoland/deno — A secure JavaScript/TypeScript runtime built with V8, Rust, and Tokio
- ivanceras/diwata — A database administration tool for postgresql
- linkerd/linkerd2-proxy — Ultralight service mesh for Kubernetes.
- darrint/device-blocker — Limit screen time to children's various mobile devices by blocking internet access on the family Wifi router.
- 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
- jedisct1/flowgger — A fast, simple and lightweight data collector
- kbknapp/docli — A command line utility for managing DigitalOcean infrastructure
- limonite — static blog/website generator
- 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
- Sandstorm Collections App
- Servo — A prototype web browser engine
- trust-dns — A DNS-server
- Weld — Full fake REST API generator
- kytan - High Performance Peer-to-Peer VPN
- 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.
- 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.
- 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
- hdwallet — BIP-32 HD wallet related key derivation utilities.
- infincia/bip39-rs — Rust implementation of BIP39.
- Joystream — A user governed video platform.
- 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.
- 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
- 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
- wagu — Generate a wallet for any cryptocurrency
- zcash — Zcash is an implementation of the "Zerocash" protocol.
- Holochain — Scalable P2P alternative to blockchain for all those distributed apps you always wanted to build
- indradb — Rust based graph database
- noria — Dynamically changing, partially-stateful data-flow for web application backends
- PumpkinDB — an event sourcing database engine
- seppo0010/rsedis — A Redis reimplementation in Rust
- ParityDB — Fast and reliable database, optimised for read operation
- tikv — A distributed KV database in Rust
See also crates matching keyword 'emulator'.
- Commodore 64
- Gameboy
- Gekkio/mooneye-gb —
- mvdnes/rboy —
- NivenT/RGB —
- mohanson/gameboy — Full featured Cross-platform GameBoy emulator. Forever boys!.
- NES
- Playstation
- ZX Spectrum
- pacmancoder/rustzx —
- rodrigorc/raze — For WebAssembly, live version here
- Virtual Boy
- Intel 8080 CPU
- mohanson/i8080 — Intel 8080 cpu emulator by Rust
- 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
- rhex — hexagonal ascii roguelike
- citybound — The city sim you deserve
- 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.
- Limeth/euclider — A real-time 4D CPU ray tracer
- ivanceras/svgbob — converts ASCII diagrams into SVG graphics
- RazrFalcon/svgcleaner — tidies SVG graphics
- Twinklebear/tray_rust — A ray tracer
- Image processing:
- 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.
- redox-os/redox —
- thepowersgang/rust_os —
- tock/tock — A secure embedded operating system for Cortex-M based microcontrollers
- nebulet/nebulet — A microkernel that implements a WebAssembly "usermode" that runs in Ring 0.
- 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
- arvancloud/libinjection-rs — Rust bindings for libinjection
- kpcyrd/badtouch — A scriptable network authentication cracker
- kpcyrd/rshijack — A TCP connection hijacker, rust rewrite of shijack
- kpcyrd/sniffglue — A secure multithreaded packet sniffer
- kpcyrd/sn0int — A semi-automatic OSINT framework and package manager
- Gymmasssorla/anevicon — The most powerful UDP-based load generator, written in Rust
- Gymmasssorla/finshir — A coroutines-driven Low & Slow traffic generator, written in Rust
- brocode/fblog — Small command-line JSON Log viewer
- buster/rrun — A command launcher for Linux, similar to gmrun
- cristianoliveira/funzzy — A configurable filesystem watcher inspired by entr
- dalance/procs — A modern replacement for 'ps' written by Rust
- ddh — Fast duplicate file finder
- fselect — Find files with SQL-like queries
- k0pernicus/zou — A download accelerator
- lotabout/rargs [rargs] — xargs + awk with pattern matching support
- lotabout/skim — A fuzzy finder in pure rust
- 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.
- Peltoche/lsd — An ls with a lot of pretty colors and awesome icons
- ogham/exa — A replacement for 'ls'
- 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.
- 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.
- m4b/bingrep — Greps through binaries from various OSs and architectures, and colors them.
- 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
- mathall/rim — Vim-like text editor written in Rust
- Remacs — A community-driven port of Emacs to Rust.
- xi-editor — A modern editor with a backend written in Rust.
- xray — An experimental next-generation Electron-based text editor.
- TankerHQ/ruplacer — Find and replace text in source files
- ripgrep — combines the usability of The Silver Searcher with the raw speed of grep
- sd — Intuitive find & replace CLI
- lavifb/todo_r — Find all your TODO notes with one command!
- whitfin/runiq — an efficient way to filter duplicate lines from unsorted input.
- whitfin/bytelines — Read input lines as byte slices for high efficiency.
- vishaltelangre/ff — Find files (ff) by name!
- xsv — A fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)
- 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.
- myfreeweb/freepass — The free password manager for power users.
- arthrp/quick-skeleton — Project scaffolding tool, similar to Yeoman and Slush.
- yaa110/rubigo — Golang dependency tool and package manager, written in Rust
- 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.
- 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.
- repoch — Convert epoch to datetime and datetime to epoch
- yaa110/cb — Command line interface to manage clipboard
- yuvadm/slingr — A simple CLI for streaming media files over a local network to UPnP media renderers
- 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
- way-cooler/way-cooler — A customizable Wayland compositor (window manager)
- Plume-org/Plume — ActivityPub federating blogging application
- rustlang-cn/ruster — online community in rust for rust community
- 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
- wyhaya/see — Static file server
- 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
- frewsxcv/crate-deps — generates images of dependency graphs for crates hosted on crates.io
- git-journal — The Git Commit Message and Changelog Generation Framework
- rust-lang-nursery/rustfix — automatically applies the suggestions made by rustc
- just — A handy command runner for project-specific tasks
- Module Linker — Extension that adds
<a>
links to references inmod
,use
andextern crate
statements at GitHub. - ptags — A parallel universal-ctags wrapper for git repository
- Racer — code completion for Rust
- rustfmt — A Rust code formatter
- Rustup — the Rust toolchain installer
- 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
- artifact — the design doc tool made for developers
- semantic-rs — automatic crate publishing
- fw — workspace productivity booster
- 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-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-find deprecated — Find crates from command line
- 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
- liuchong/cargo-x — A very simple third-party cargo subcommand to execute a custom command
- dtolnay/cargo-expand — Expand macros in your source code
- 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
- Webpack
- Ralvke/rust-loader — Webpack Rust loader (wasm)
- GDB
- LLDB
- lldb_batchmode.py — allows to use LLDB in a way similar to GDB's batch mode.
- CodeLLDB — A LLDB extension for Visual Studio Code.
- rr
- rr — rr is a lightweight tool for recording and replaying execution of applications
- 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
- Google App Engine
- DenisKolodin/rust-app-engine — App Engine Rust boilerplate
- Heroku
- emk/heroku-buildpack-rust — A buildpack for Rust applications on Heroku
- 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 .
- 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
- 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++
- 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
- j4rs — use Java from Rust
- bennettanderson/rjni — use Java from Rust
- drrb/java-rust-example — use Rust from Java
- jni — use Rust from Java
- jni-sys — Rust definitions corresponding to jni.h
- rucaja — use Java from Rust
- rawrasaur/rust-jdbc — uses JDBC from Rust
- Lua
- jcmoyer/rust-lua53 — Lua 5.3 bindings for Rust
- kballard/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
- neon-bindings/neon — use Rust from Node.js
- 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
- getsentry/milksnake — extension for python setuptools that allows you to distribute dynamic linked libraries in Python wheels in the most portable way imaginable.
- dgrunwald/rust-cpython — Python bindings
- PyO3/PyO3 — Rust bindings for the Python interpreter
- R
- rustr/rustr — use Rust from R, and use R in Rust
- 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
- 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.
See also Are we (I)DE yet? and Rust Tools.
- Atom
- Eclipse
- Emacs
- rust-mode — Rust Major Mode
- flycheck-rust — Rust support for Flycheck
- emacs-racer — Autocompletion (see also company and auto-complete)
- lsp-rust — Add rls support to lsp-mode
- 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
- Kakoune
- ul/kak-lsp — LSP client. Implemented in Rust and supports rls out of the box.
- NetBeans
- IntelliJ
- intellij-rust/intellij-rust —
- intellij-rust/intellij-toml — basic Toml support
- 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
- 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.
- autozimu/LanguageClient-neovim — LSP client. Implemented in Rust and supports rls out of the box.
- Visual Studio
- PistonDevelopers/VisualRust — A Visual Studio extension for Rust
- dgriffen/rls-vs2017 — Rust support for Visual Studio 2017 Preview
- Visual Studio Code
- rust-lang/rls-vscode — Rust support for Visual Studio Code
- CodeLLDB — A LLDB extension
- crates — crates is an extension for crates.io dependencies.
- 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
- nokia/memory-profiler — A memory profiler for Linux
- ellisonch/rust-stopwatch — A stopwatch library
- FlameGraphs
- mrhooray/torch — generates FlameGraphs based on DWARF Debug Info
- TyOverby/flame —
- deps.rs — Detect outdated or insecure dependencies
- docs.rs — Automatic documentation generation of crates
- static_assertions — Compile-time assertions to ensure that invariants are met
[testing]
- mockiato — A strict, yet friendly mocking library for Rust 2018
- mutagen — A source-level mutation testing framework (nightly only)
- AlKass/polish — Mini Testing/Test-Driven Framework
- 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
- 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
- immunant/c2rust — C to Rust translator and cross checker built atop Clang/LLVM.
- jameysharp/corrode — A C to Rust translator written in Haskell.
- 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).
- m-decoster/RsGenetic — Genetic Algorithm library in Rust. In maintenance mode.
- 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.
See also About Rust’s Machine Learning Community.
- AtheMathmo/rusty-machine — Machine learning library for Rust
- avinashshenoy97/RusticSOM — Rust library for Self Organising Maps (SOM).
- autumnai/leaf — Open Machine Intelligence framework. . Abandoned project. The most updated fork is spearow/juice.
- tensorflow/rust — Rust language bindings for TensorFlow.
- maciejkula/rustlearn — Machine learning crate for Rust.
- LaurentMazare/tch-rs — Rust language bindings for PyTorch.
- saurvs/astro-rust — astronomy for Rust
- fitsio — fits interface library wrapping cfitsio
- flosse/rust-sun — A rust port of the JS library suncalc
- 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
- rustasync/runtime - A runtime agnostic API designed to make async feel like its part of stdlib
[audio]
- GuillaumeGomez/rust-fmod — FMOD bindings
- jhasse/ears — A simple library to play Sounds and Musics, on top of OpenAL and libsndfile
- jpernst/alto — OpenAL 1.1 bindings
- 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
- Keats/jsonwebtoken — JSON Web Token lib in rust
- 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
- Rust-Bio — bioinformatics libraries in Rust.
- jaysonsantos/bmemcached-rs — Memcached library written in pure 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
- 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
- AWS [aws]
- Argument parsing
- clap-rs [clap] — A simple to use, full featured command-line argument parser
- docopt/docopt.rs [docopt] — A Rust implementation of DocOpt
- TeXitoi/structopt [structopt] — parse command line argument by defining a struct
- killercup/quicli [quicli] — quickly build cool CLI apps in Rust
- Human-centered design
- 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
- 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
- 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
- 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
- fdehau/tui-rs [tui] — A TUI library inspired by blessed-contrib and termui
- BearLibTerminal
- cfyzium/bearlibterminal [bear-lib-terminal] — BearLibTerminal bindings
- ncurses
- jeaye/ncurses-rs [ncurses] — ncurses bindings
- ihalila/pancurses [pancurses] — curses library, supports linux and windows
- Termbox
- gchp/rustbox [rustbox] — bindings to Termbox
- Brotli
- ende76/brotli-rs — implementation of Brotli compression
- dropbox/rust-brotli — Brotli decompressor in Rust that optionally avoids the stdlib
- bzip2
- alexcrichton/bzip2-rs — libbz2 bindings
- gzip
- carols10cents/zopfli — implementation of the Zopfli compression algorithm for higher quality deflate or zlib compression
- miniz
- alexcrichton/flate2-rs — miniz bindings
- snappy
- JeffBelgum/rust-snappy — snappy bindings
- tar
- alexcrichton/tar-rs — tar archive reading/writing in Rust
- zip
- mvdnes/zip-rs — read and write ZIP archives
- argmin-rs/argmin [argmin] — A pure Rust optimization library
- BLAS [blas]
- mikkyang/rust-blas — BLAS bindings
- stainless-steel/blas — BLAS bindings
- Conjugate Gradient
- noshu/cg-sys — Rust binding of fortran CG+ subroutine
- GMP
- fizyk20/rust-gmp — libgmp bindings
- GSL
- GuillaumeGomez/rust-GSL — GSL bindings
- LAPACK
- stainless-steel/lapack — LAPACK bindings
- L-BFGS-B
- noshu/lbfgsb-sys — Rust binding of fortran L-BFGS-B subroutine
- 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
- Statrs
- 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
- briansmith/ring — Safe, fast, small crypto using Rust and BoringSSL's cryptography primitives.
- 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
- dnaq/sodiumoxide — libsodium bindings
- 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
- 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
- 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]
- 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
- Elasticsearch [elasticsearch]
- benashford/rs-es [rs-es] — A Rust client for the Elastic REST API
- elastic-rs/elastic-reqwest [elastic_reqwest] — A lightweight implementation of the Elasticsearch API based on Reqwest
- etcd
- jimmycuadra/rust-etcd [etcd] — A client library for CoreOS's etcd.
- ForestDB
- vhbit/sherwood — ForestDB bindings
- InfluxDB
- panoptix-za/influxdb-rs — asynchronous interface
- driftluo/InfluxDBClient-rs — Synchronization interface
- LevelDB
- skade/leveldb — LevelDB bindings
- LMDB [lmdb]
- vhbit/lmdb-rs [lmdb-rs] — LMDB bindings
- MongoDB [mongodb]
- mongodb-labs/mongo-rust-driver-prototype [mongodb] — MongoDB bindings
- Neo4j [cypher, neo4j]
- 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.
- PickleDB
- seladb/pickledb-rs — a lightweight and simple key-value store, heavily inspired by Python's PickleDB.
- ArangoDB
-
SQL [sql]
- 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]
- jgallagher/rusqlite — Sqlite3 bindings
-
ORM [orm]
- diesel-rs/diesel — an ORM and Query builder for Rust
- ivanceras/rustorm — an ORM 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
- 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::Read
ordyn io::Write
. - 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.
- 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
- spicavigo/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
- 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
- Bencode
- arjantop/rust-bencode — Bencode implementation in Rust
- Binary
- arcnmx/nue — I/O and binary data encoding for Rust
- TyOverby/bincode — A binary encoder/decoder in Rust
- m4b/goblin [goblin] — cross-platform, zero-copy, and endian-aware binary parsing
- BSON
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
See also Are we game yet?
- Allegro
- SiegeLord/RustAllegro — Allegro 5 bindings
- 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)
- slide-rs/specs — Specs Parallel ECS
- Game Engines
- Amethyst — Data-oriented game engine
- Piston —
- ggez — A lightweight game framework for making 2D games with minimum friction
- Kiss3D — A Keep It Simple, Stupid 3d graphics engine written with Rust
- 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
- 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
- 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]
- gfx-rs/gfx — A high-performance, bindless graphics API for Rust.
- Font
- 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.
- Kiss3d — draw simple geometric figures and play with them with one-liners
- PistonDevelopers/glfw-rs —
- glutin — Rust alternative to GLFW
- PDF
- kaj/rust-pdf —
- fschutt/printpdf — PDF writing library
- J-F-Liu/lopdf — PDF document manipulation
- WASM-PDF – Generates PDF files with JavaScript and WASM (WebAssembly)
- Vulkan [vulkan]
- kud1ing/tinkerpop-rs — an example how to use Apache TinkerPop from Rust
[gui]
-
autopilot-rs/autopilot-rs — A simple, cross-platform GUI automation library for Rust.
-
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
-
rise-ui — Simple component-based cross-Platform GUI Toolkit for developing beautiful and user-friendly interfaces.
-
Cocoa
-
- flutter-rs — Build flutter desktop app in dart & rust.
-
- gtk-rs/gtk — GTK+ bindings
- relm — Asynchronous, GTK+-based, GUI library, inspired by Elm
-
- 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.
-
- nuklear-rust — Rust bindings for Nuklear
-
- woboq/qmetaobject-rs - Integrate Qml and Rust by building the QMetaObject at compile time.
- 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.
-
saurvs/nfd-rs — nativefiledialog bindings
-
- sciter-sdk/rust-sciter — Sciter bindings
- 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. - 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.
- 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
- Android
- rust-windowing/android-rs-glue — glue between Rust and Android
- 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.
- 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
- FTP
- 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
- JSON-RPC
- vlopes11/futures-jsonrpc [futures-jsonrpc] — Futures implementation for JSON-RPC
- Low level
- libpnet/libpnet — A cross-platform, low level networking
- 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
- actix/actix — Actor library for Rust
- NanoMsg
- thehydroimpulse/nanomsg.rs — nanomsg bindings
- Nng
- neachdainn/nng-rs [Nng] — Nng (nanomsg v2) bindings
- NNTP
- mattnenterprise/rust-nntp — an NNTP client for Rust
- POP3
- mattnenterprise/rust-pop3 — A POP3 client for Rust
- SSH
- alexcrichton/ssh2-rs — libssh2 bindings
- Thrussh — an SSH library written from scratch in Rust, backed by libsodium
- Stomp
- 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
- CoAP
- Covertness/coap-rs — A Constrained Application Protocol(CoAP) library for Rust.
- 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
- pop-os/debarchive Library for reading and extracting debian archives
- Serial Port
- Susurrus/serialport-rs [serialport] — A cross-platform library that provides access to a serial port
-
Cross-platform
- 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
- arvancloud/nginx-rs — Nginx bindings
- yaa110/rust-iptables — iptables bindings
-
Unix-like
- nix-rust/nix — Unix-like API bindings
- zargony/rust-fuse — FUSE bindings
-
Windows
- 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
- 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
- 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.
- r-iendo/yarte — compile-time handlebars-like templates
- HTML
- lfairy/maud — compile-time HTML templates
- Stebalien/horrorshow-rs — compile-time HTML templates
- kaj/ructe — HTML template system for Rust
- Keats/tera — template engine based on Jinja2 and the Django template language.
- djc/askama — template rendering engine based on Jinja
- 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] —
- tantivy-search/tantivy [tantivy] —
- 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
- ekse/unicorn-rs — Rust bindings for the unicorn CPU emulator
- 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.
- 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.
- hyperium/hyper — an HTTP implementation
- GildedHonour/frank_jwt — JSON Web Token implementation in Rust.
- handlebars-rust — an Iron web framework middleware.
- Iron — A middleware-based server framework
- Nickel — inspired by Express
- Ogeon/rustful — A RESTful web 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.
- 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
- danclive/sincere — A micro web framework for Rust(stable) based on hyper and multithreading.
- oltdaniel/zap — A lightning fast http framework for Rust
- WebSocket
- actix/sockjs — A SockJS server for Rust
- 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.
- Miscellaneous
- cargonauts — A web framework intended for building maintainable, well-factored web apps.
- pyros2097/rust-embed — A macro to embed static assets into the rust binary
- utkarshkukreti/select.rs [select] — A library to extract useful data from HTML documents, suitable for web scraping.
- pwoolcoc/soup [soup] - A library similar to Pythons BeautifulSoup, designed to enable quick and easy manipulation and querying of HTML documents.
- 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.
- cobalt-org/cobalt.rs — Static site generator written in Rust
- FuGangqiang/mdblog.rs — Static site generator from markdown files.
- leven-the-blog/leven [leven] — A simple, parallelized blog generator.
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
- 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
- Podcasts
- New Rustacean — A podcast about learning Rust
- Rusty Spike — news on all things Rust
- RustCamp 2015 Talks
- Rust Design Patterns
- Rust Guidelines
- RustBooks — list of RustBooks
- Rust Subreddit — A subreddit(forum) where rust related questions, articles and resources are posted and discussed
绑定 == bindings;
(译者) 绑定的一般含义是,将其他 (多数为) C/C++ 库,通过用 Rust 重新包装,给出类似/相同的 API,这样从此,就多了个绑定着 C/C++库的 Rust 箱子。
如果您想贡献,请阅读this。
也可以看看Rust — 生产(在生产中运行 Rust 的组织)。
- alacritty >>- 跨平台,GPU 增强型终端仿真器
- asm-cli-rust >>- 用螃蟹写的 交互式汇编 shell。
- AnderEnder/s3find-rs >>- 用于遍历 Amazon S3 层次结构的命令行实用程序,类似于 Amazon S3 的 find
- andschwa/rust-genetic-algorithm >>- 用于学术基准问题的遗传算法
- cloudflare/boringtun >>- 一个 WireGuard VPN 用户空间实现
- denoland/deno >>— 一个安全的 JavaScript/TypeScript 运行时,以 V8, Rust, 和 Tokio 作为地基
- ivanceras/diwata >>- postgresql 数据库管理工具
- linkerd/linkerd2-proxy >>- Kubernetes 超轻型服务网。
- darrint/device-blocker >>- 通过阻止家庭 Wifi 路由器上的互联网访问,限制儿童各种移动设备的屏幕时间。
- dlecan/generic-dns-update >>- 使用您的 IP 地址,更新 DNS 区域文件的工具
- Factotum >>- 一种以编程方式,管道化运行数据的系统
- fcsonline/drill >>- 受 Ansible 语法启发的 HTTP 负载测试应用程序
- Fractalide >>- 简单的 Rust 微服务
- habitat >>- 由Chef创建的工具,用于构建,部署和管理应用程序。
- Herd >>- 实验性 HTTP 负载测试应用程序
- intecture/api >>- API 驱动的服务器管理和配置工具
- jedisct1/flowgger >>- 快速,简单和轻量级的数据收集器
- kbknapp/docli >>- 用于管理 DigitalOcean 基础架构的命令行实用程序
- limonite >>- 静态博客/网站生成器
- MaidSafe >>- 一个去中心化的平台。
- mdBook >>- 用于从 markdown 文件,创建网页书的命令行实用程序
- nicohman/eidolon >>- 适用于 linux 和 macosx 的 Steam 和 drm-free 游戏注册表和启动器
- notty >>- 一种新型终端
- Pijul >>- 基于补丁的分布式版本控制系统
- rsign >>- 一个简单的命令行工具,用于生成/签名/验证数字签名,旨在与 Minisign 兼容
- Sandstorm Collections App
- Servo >>- Web 浏览器引擎原型
- trust-dns >>- DNS 服务器
- Weld >>- 完整的模拟 REST API 生成器
- kytan >>- 高性能点对点 VPN
- indiscipline/zrtstr >>- 一个命令行实用程序,用于检查立体声 wav 文件是否是人造立体声(即具有相同的通道),并将这些文件转换为单声道。
- Polaris >>— 一个音乐流应用。
- Bitcoin Satoshi's Vision >>- 用于处理比特币 SV 的 Rust 库。
- cardano-cli >>— Cardano CLI
- coinbase-pro-rs >>— Coinbase pro 客户端, 支持 sync/async/websocket
- ethaddrgen >>- Rust 所写的,自定义以太坊虚荣地址生成器
- hdwallet >>- BIP-32 HD 钱包相关的密钥派生工具。
- Holochain >>— 区块链可延展 P2P 备选项,用于所有你想要构建的分布式应用
- infincia/bip39-rs >>— Rust 实现 BIP39.
- Joystream >>— 一个用户治理的视频平台。
- Libra >>— Libra’s 任务是建立一个简单的,授予数亿人的全球货币和金融基本机构。
- nearprotocol/nearcore >>- 针对低端移动设备的分散式智能合约平台。
- coinbase-pro-rs >>- Rust 中的 Coinbase pro 客户端,支持 sync / async / websocket
- Grin >>- MimbleWimble 协议的演变
- Substrate >>- 用 Rust 编写的通用模块化区块链模板
- Polkadot >>- 具有池化安全性的异构多链技术
- Parity-Ethereum >>- 快速,轻便,强大的以太坊客户端
- Parity-Bridge >>- 在任何两个基于以太坊的网络之间架起桥梁
- Parity-Bitcoin >>- 奇偶校验比特币客户端
- Parity-Zcash >>- Rust 实现 Zcash 协议
- rust-cardano >>- Cardano 原语,帮助程序和相关应用程序的 Rust 实现
- cardano-cli >>- Cardano 命令行界面(CLI)
- Nervos CKB >>- Nervos CKB 是一个公共许可区块链,是 Nervos 网络的常识层。
- infincia/bip39-rs >>- BIP39 的 Rust 实现。
- ChainX >>- Polkadot 上完全分散的链间加密资产管理。
- rbtc >>- 将 BTC 转换为任何货币,反之亦然。
- wagu >>- 生成加密货币钱包的 Rust 库
- zcash >>— Zcash 是一个 "Zerocash" 协议的实现。
- Holochain >>— 区块链的可伸缩 P2P 备选,用于你想构建的分布式应用
- indradb >>- 基于 Rust 的图形数据库
- noria >>- Web 应用程序后端的动态更改,部分状态的数据流
- ParityDB >>— Fast 和可靠数据库, 优化 read 操作
- PumpkinDB >>- 一个事件采购数据库引擎
- seppo0010/rsedis >>- Rust 中的 Redis 重新实现
- ParityDB >>- 快速可靠的数据库,针对读取操作进行了优化
- tikv >>- Rust 中的分布式 KV(键值) 数据库
也可以看看crates 关键字 'emulator'。
- Commodore 64
- kondrak/rust64 >>-
- 掌上游戏机
- Gekkio/mooneye-gb >>-
- mvdnes/rboy >>-
- NivenT/RGB >>-
- mohanson/gameboy >>- 全功能跨平台 GameBoy 模拟器。永远都是孩子!
- NES
- iamsix/oxidenes >>-
- koute/pinky >>-
- pcwalton/sprocketnes >>-
- Playstation
- simias/rustation >>-
- ZX Spectrum
- pacmancoder/rustzx >>-
- rodrigorc/raze >>— WebAssembly 使用, 这是活例子
- Virtual Boy
- 英特尔 8080 CPU
- mohanson/i8080 >>- Rust 的 Intel 8080 cpu 仿真器
- 仿真器开发工具
- SNES
- ioncodes/snesutilities >>- ROM 分析仪/提取器
- SNES
也可以看看Piston 的游戏制作。
- lifthrasiir/angolmois-rust >>- 支持 BMS 格式的简约音乐视频游戏
- swatteau/sokoban-rs >>- 推箱子实现
- Zone of Control >>- 基于回合制的六角地形战略游戏
- rhex >>- 六角地形, ascii roguelike
- citybound >>- 你值得拥有的城市
- ozkriff/zemeroth >>- 一个小型的回合制的六角地形策略游戏
- rsaarelm/magog >>- Rust 的 roguelike 游戏
- schulke-214/rsnake >>- Rust 蛇。
- schulke-214/connect-four >>— 一个简单的 connect four 实现.
- cristicbz/rust-doom >>- Doom 的渲染器,可能会成为一款能玩的游戏
- Thinkofname/rust-quake >>- 用 Rust 写的 Quake map 渲染器
- aleshaleksey/TGWM >>- 回合制的 RPG(正在工作中)
- garkimasera/rusted-ruins >>- 可扩展的开放世界,像素艺术的 rougelike 游戏
- Veloren >>- 一个开放世界,开源多人 voxel RPG,目前处于alpha阶段。
- Limeth/euclider >>- 实时 4D CPU 光线跟踪器
- RazrFalcon/resvg >>— 一个 SVG 渲染库。
- ivanceras/svgbob >>- 将 ASCII 图,转换为 SVG 图形
- RazrFalcon/svgcleaner >>- 整理 SVG 图形
- Twinklebear/tray_rust >>- 一个光线追踪器
- 图像处理:
- spejss/Image-Processing-CLI-in-Rust >>- 用于处理图像的 CLI,生成直方图。
- locka99/opcua >>— 一个纯 rust OPC UA 库.
- slowtec/tokio-modbus >>- 一个基于tokio的modbus 库。
- BiancoRoyal/modbus-iiot-rust >>- 纯螃蟹modbus,没有或更少依赖的库。
- timberio/vector - 一个高性能, Logs, 指标性, & 事件路由器。
也可以看看对用 Rust 写的操作系统的比较。
- redox-os/redox >>-
- thepowersgang/rust_os >>-
- tock/tock >>- 基于 Cortex-M 微控制器的安全嵌入式操作系统
- nebulet/nebulet >>- 实现在 Ring 0 中,运行的 WebAssembly“usermode”的微内核。
- eureka >>- 一个 CLI 工具,无需离开终端,即可输入和存储您的想法
- BenSchZA/pier >>- 用于管理(添加,搜索元数据等)所有的一行(完成),脚本,工具和 CLI 的中央存储库
- arvancloud/libinjection-rs >>- libinjection的 Rust 绑定
- kpcyrd/badtouch >>- 可编写脚本的,网络身份验证破解程序
- kpcyrd/rshijack >>- 一个 TCP 连接劫持者,螃蟹重写 shijack
- kpcyrd/sniffglue >>- 安全的多线程数据包嗅探器
- kpcyrd/sn0int >>- 半自动 OSINT 框架和包管理器
- Gymmasssorla/anevicon >>- 最强大的基于 UDP 的负载生成器,用 Rust 编写
- Gymmasssorla/finshir >>- 用 Rust 编写的,协程底层驱动,和慢流量生成器
- brocode/fblog >>- 小命令行,JSON 日志查看器
- buster/rrun >>- Linux 的命令启动器,类似于 gmrun
- cristianoliveira/funzzy >>- 灵感来自entr 的可配置文件系统观察者
- dalance/procs >>- Rust 写的'ps'的现代替代品
- ddh >>- 重复文件的快速查找器
- fselect >>- 使用类-SQL 查询,查找文件
- k0pernicus/zou >>- 下载加速器
- lotabout/rargs [rargs] - xargs + awk,支持模式匹配
- lotabout/skim >>- 纯螃蟹的模糊 finder
- mitnk/cicada >>- 类 bash 的 Unix shell
- mmstick/concurr >>- 替代 GNU Parallel w/ 一个客户端+服务器架构
- mmstick/fontfinder >>- 用于预览和安装 Google 字体的 GTK3 应用程序
- mmstick/parallel >>- 重新实现 GNU Parallel
- mmstick/systemd-manager >>- 使用 GTK-rs ,编写 systemd 服务管理器。
- mmstick/tv-renamer >>- 带有可选 GTK3 前端的,电视连续剧重命名应用程序。
- Peltoche/lsd >>- 有很多漂亮颜色和真棒图标的 ls
- ogham/exa >>- 'ls'的替代品
- pop-os/debrep >>- 用于构建和管理 APT 仓库的 APT 存储库工具
- pop-os/popsicle >>- GTK3 加 CLI 实用程序,用于并行闪存多个 USB 设备
- Luminarys/synapse >>— 灵活且快速的 BitTorrent daemon.
- pop-os/system76-power >>- CLI 工具,Linux 电源管理守护程序(DBus 接口)。
- Ralvke/logram >>- 将日志文件的更新,推送到 Telegram
- redox-os/ion >>- 下一代系统 shell
- sharkdp/bat >>- 带翅膀的 cat(1)克隆。
- sharkdp/fd >>- 一种简单,快速且用户友好的 find 替代品。
- sitkevij/hex >>- 彩色 hexdump 终端实用程序。
- m4b/bingrep >>- 通过来自各种操作系统和体系结构的二进制文件,并对它们进行着色。
- uutils/coreutils >>- GNU coreutils 的跨平台 Rust 重写
- watchexec >>- 执行命令,以响应文件的修改
- XAMPPRocky/tokei >>- 计算代码行数
- gchp/iota >>- 一个简单的文本编辑器
- mathall/rim >>- 用 Rust 编写的,类似 Vim 的文本编辑器
- Remacs >>- 一个由社区驱动的 Emacs 到 Rust 的端口。
- xi-editor >>- 一个现代编辑器,后端用 Rust 编写。
- xray >>- 实验性的下一代基于 Electron 的文本编辑器。
- TankerHQ/ruplacer >>- 查找,并替换源文件中的文本
- ripgrep >>- 结合了 Silver Searcher 的可用性,和 grep 的原始速度
- phiresky/ripgrep-all >>— ripgrep, 但还能搜索 PDFs, E-Books, Office documents, zip, tar.gz, etc.
- sd >>- 直观的查找和替换 CLI
- lavifb/todo_r >>- 使用一个命令,查找所有 TODO 笔记!
- whitfin/runiq >>- 从未排序的输入中,过滤重复行的有效方法。
- whitfin/bytelines >>- 将输入行,读取为字节切片,以实现高效率。
- vishaltelangre/ff >>- 按名称查找文件(ff)!
- xsv >>- 快速 CSV 命令行工具(切片,索引,选择,搜索,采样等)
- Lispre/so_stupid_search - 人类专属,简便快捷的字符串查找工具
(译者) Pwned:黑客术语,代指攻击成功的声效词,就像枪响击败的感觉。
- brycx/checkpwn >>- A Have I Pwned(HIBP)命令行实用工具,可让您轻松检查危险帐户和密码。
- evansmurithi/cloak >>- 命令行 OTP(一次性密码)身份验证器应用程序。
- arthrp/consoletimer >>- 终端的简单计时器。
- myfreeweb/freepass >>- 高级用户的免费密码管理器。
- arthrp/quick-skeleton >>- 项目脚手架工具,类似于 Yeoman 和 Slush。
- yaa110/rubigo >>- Golang 依赖工具和包管理器,用 Rust 编写
- whitfin/s3-concat >>- 使用灵活模式,远程连接 Amazon S3 文件的命令行工具。
- whitfin/s3-meta >>- 用于收集,有关 Amazon S3 存储桶的元数据的命令行工具。
- amar-laksh/workstation >>- 一个(运用 OPENCV 的)命令行工具,通过将您与屏幕隔开来,帮助您管理工作台,当您不在其他地方时,锁定屏幕!
- aleshaleksey/AZDice >>- 给桌面 homebrew 使用者的,可视化,成功分布生成器。
- fcsonline/tmux-thumbs >>- 用 Rust 所编写的,快速版本的 tmux-fingers,复制/粘贴 tmux,如 vimium / vimperator。
- repoch >>- 将纪元转换为日期时间,和日期时间转换为纪元
- yaa110/cb >>- 用于管理剪贴板的命令行界面
- yuvadm/slingr >>- 一个简单的 CLI,通过本地网络,将媒体文件流式传输到 UPnP 媒体渲染器
- yuvadm/streamlib - 从命令行上,播放你的在线视频与音频数据流
- firecracker-microvm/firecracker >>- 用于容器工作负载的,轻量级虚拟机Firecracker Microvm
- oracle/railcar >>- Rust 中,类似 Docker 的容器 OCI 运行时实现
- tailhook/vagga >>- 没有守护进程的,容器化工具
- way-cooler/way-cooler >>- 可定制的 Wayland 组合器(窗口管理器)
- Plume-org/Plume >>- ActivityPub 联合博客应用程序
- thecoshman/http >>- 请托管这些东西 - 一个基本的 http 服务器,用于快速简单地托管文件夹
- svenstaro/miniserve >>- 一个小型,独立的跨平台 CLI 工具,您只需抓取二进制文件,并通过 HTTP 提供一些文件
- TheWaWaR/simple-http-server >>- 简单的静态 http 服务器
- wyhaya/see >>- 静态文件服务器
- clippy >>- Rust lints
- clog-tool/clog-cli >>- 从 git 元数据,生成 changelog(conventional changelog)
- dan-t/rusty-tags >>- 为 Cargo 项目及其所有依赖项,创建 ctags / etags
- frewsxcv/crate-deps >>- 为 crates.io 上托管的箱子,生成依赖图的图像
- git-journal >>- Git Commit 消息和 Changelog 生成框架
- rust-lang-nursery/rustfix >>- 自动应用 rustc 提出的建议
- just >>- 构建特定项目的任务,便捷命令运行程序
- Module Linker >>- 增加
<a>
链接扩展,让 Github 可以落实(链接)到mod
,use
和extern crate
语句。 - ptags >>- 用于 git 存储库的,并行通用 ctags 包装器
- Racer >>- Rust 的代码补全
- rustfmt >>- Rust 代码格式化程序
- Rustup >>- Rust 工具链安装程序
- Rust Language Server >>- 在后台运行的服务器,为 IDE,编辑器和其他工具,提供有关 Rust 程序的信息
- Rust Regex Playground >>— 网络工具:执行 rust 正则表达式
- artifact >>- 为开发人员设计的文档设计工具
- semantic-rs >>- 自动 crate 发布
- fw >>- 工作空间的生产力助推器
- tinyrick一个基本任务依赖的工具,强调 Rust 函数,优于原始 shell 命令。
- Cargo >>- Rust 包管理器
- cargo-benchcmp >>- 用于比较 Rust 微基准测试的实用程序
- cargo-bitbake >>- Cargo 扩展,可以利用 meta-rust 中的类,生成 BitBake 配方
- cargo-cache >>- 检查/管理/清理您的 Cargo 缓存(
~/.cargo/
/${CARGO_HOME}
),打印尺寸等 - cargo-check >>-
cargo rustc -- -Zno-trans
的包装,如果您只需要正确性检查,这对于运行更快的编译很有帮助 - cargo-count >>- 列出源代码计数和 Cargo 项目的详细信息,包括不安全的统计数据
- cargo-deb >>- 生成二进制 Debian 软件包
- cargo-deps >>- 构建 Rust 项目的依赖图
- cargo-do >>- 连续运行,多个 Cargo 命令
- cargo-ebuild >>- Cargo 扩展,可以使用树内 eclass 生成 ebuilds
- cargo-edit >>- 允许您,通过命令行读取/写入 Cargo.toml 文件,来添加和列出依赖项
- cargo-find 弃用- 从命令行,查找箱子
- cargo-graph >>-
cargo-dot
的加强分支,带有附加功能。没有维护,请参阅cargo-deps
- cargo-info >>- 在命令行向 crates.io ,查询 crates 详细信息
- cargo-license >>— cargo 子命令,快速产看所有依赖的许可证。
- cargo-make >>- Rust 任务运行器,和构建工具。
- cargo-modules >>- 一个 Cargo 插件,用于显示箱子模块的树状概览。
- cargo-multi >>- 在多个箱子上,运行指定的 Cargo 命令
- cargo-outdated >>- 显示 Rust 依赖项的最新版本可用,或过期版本
- cargo-release >>- 用于发布 git 管理的 Cargo 项目,构建,标记,发布,文档和推送的工具
- cargo-script >>- 让人们快速轻松地运行 Rust“脚本”,可以利用 Cargo 的包生态系统
- cargo-testify >>- 监视文件更改,运行测试,并通过友好的操作系统,通知结果
- cargo-tree >>– Cargo 子命令,对一个箱子的依赖图,进行类 tree 格式的可视化处理
- cargo-update >>- cargo 子命令,用于检查和应用,已安装可执行文件的更新
- cargo-watch >>- 在源代码变更时,让 cargo 编译项目的实用程序
- liuchong/cargo-x >>- 执行自定义命令的,非常简单的第三方 Cargo 子命令
- dtolnay/cargo-expand >>- 在源代码中,展开宏
- CMake
- Devolutions/CMakeRust >>- 用于将 Rust 库,集成到 CMake 项目中
- SiegeLord/RustCMake >>- 一个示例项目,显示了 Rust 的 CMake 用法
- Github actions
- icepuma/rust-action >>- 螃蟹 github action
- WebPack
- Ralvke/rust-loader >>- Webpack Rust loader(wasm)
- GDB
- LLDB
- lldb_batchmode.py >>- 允许以类 GDB 批处理模式的方式,使用 LLDB。
- CodeLLDB >>- LLDB 扩展,给予Visual Studio Code。
- rr
- rr >>- rr 是一个轻量级工具,用于记录和重放应用程序的执行。
- Docker
- emk/rust-musl-builder >>- 使用 musl-libc 和 musl-gcc,编译静态 Rust 二进制文件的 Docker 镜像,以及有用的 C 库的静态版本。
- kpcyrd/mini-docker-rust >>- 非常小的,螃蟹 docker 镜像的示例项目
- liuchong/docker-rustup >>- 多个版本(带有 musl 工具)Rust Docker 镜像
- messense/rust-musl-cross >>- 用于使用 musl-cross 编译,静态 Rust 二进制文件的 Docker 镜像
- rust-lang-nursery/docker-rust >>- Rust Docker 官方镜像
- Google App Engine
- DenisKolodin/rust-app-engine >>- App Engine Rust 样板
- Heroku
- emk/heroku-buildpack-rust >>- Heroku 上,Rust 应用程序的 buildpack
- 跨平台编译
- japaric/rust-cross >>- 关于跨平台编译 Rust 程序,需要了解的所有内容
- japaric/xargo >>- 轻松地将 Rust 程序,跨平台编译为自定义裸机目标,如 ARM Cortex-M
- Raspberry Pi
- Ogeon/rust-on-raspberry-pi >>- 有关如何为 Raspberry Pi,跨平台编译 Rust 项目的说明。
- Arduino
- avr-rust/ruduino
^
^t` Arduino Uno 的可重用组件。
- avr-rust/ruduino
也可以看看对外函数 (Foreign Function) 接口,The Rust FFI 综合(代码的示例集合,如何使用其他语言,运用 Rust 代码)和Rust FFI 示例。
- C
- rlhunt/cbindgen >>- 从 Rust 源文件,生成 C 头文件。用于 Gecko 的 WebRender
- Sean1708/rusty-cheddar >>- 从 Rust 源文件,生成 C 头文件
- C ++
- rust-lang/rust-bindgen >>- Rust 绑定生成器
- Erlang
- rusterlium/rustler >>- 用于创建 Erlang NIF 功能的 Rust 安全桥梁
- Haskell
- mgattozzi/curryrs >>- 弥合 Haskell 和 Rust 之间的桥梁
- mgattozzi/haskellrs >>- 在 Haskell FFI 示例中的 螃蟹 代码
- mgattozzi/rushs >>- Rust FFI 示例中的 Haskell 代码
- Java
- j4rs >>- 使用 Rust 的 Java
- bennettanderson/rjni >>- 使用 Rust 的 Java
- drrb/java-rust-example >>- 使用 Java 中的 Rust
- jni >>- 使用 Java 中的 Rust
- jni-sys >>- 与 jni.h 对应的 Rust 定义
- rucaja >>- 使用 Rust 的 Java
- rawrasaur/rust-jdbc >>- 使用 Rust 的 JDBC
- Lua
- jcmoyer/rust-lua53 >>- Lua 5.3 Rust 的绑定
- kballard/rust-lua >>- 安全 Rust 绑定到 Lua 5.1
- tickbh/td_rlua >>- 适用于 Rust 的零成本高级 lua 5.3 包装
- tomaka/hlua >>- 与 Lua 接口的 Rust 库
- mruby
- anima-engine/mrusty >>- Rust 的 mruby 安全绑定
- Node.js
- neon-bindings/neon >>- 使用 Node.js 中的 Rust
- Objective-C
- SSheldon/rust-objc >>- Objective-C 运行时绑定和 Rust 的包装器
- Perl
- vickenty/mi-rust >>- 添加对 M::I 的支持,用于构建 Cargo 模块
- vickenty/perl-xs >>- 使用 Rust 创建 Perl XS 模块
- Python
- getsentry/milksnake >>- python setuptools 的扩展,允许您以最便携的方式在 Python 轮中分发动态链接库。
- dgrunwald/rust-cpython >>- Python 绑定
- PyO3/PyO3 >>- Python 解释器的 Rust 绑定
- R
- rustr/rustr >>- 使用 R 中的 Rust,并在 Rust 中使用 R.
- Ruby
- d-unseductable/ruru >>- 用 Rust 编写的原生 Ruby 扩展
- danielpclark/rutie >>- 用 Rust 编写的原生 Ruby 扩展,反之亦然
- tildeio/helix >>- 在 Rust 中编写 Ruby 类
- Web Assembly
- rustwasm/wasm-pack >>- 📦 ✨ 打包成 wasm 并将其发布到 npm!
- rustwasm/wasm-bindgen >>- 促进 wasm 模块和 JS 之间高级交互的项目。
也可以看看Are we (I)DE yet?和Rust 工具。
- Atom
- Eclipse
- Emacs
- rust-mode >>- Rust Major Mode
- flycheck-rust >>- Rust 支持Flycheck
- emacs-racer >>- 自动补全(另见company和auto-complete)
- lsp-rust >>- 添加 rls 支持lsp-mode
- gitpod.io >>- 基于 Rust 语言服务器的完整 Rust 支持的在线 IDE
- gnome-builder自版本 3.22.2 起,对螃蟹和 Cargo 的原生支持
- Kakoune
- ul/kak-lsp >>- LSP客户端。在 Rust 中实现并支持 rls 开箱即用。
- NetBeans
- IntelliJ
- intellij-rust/intellij-rust >>-
- intellij-rust/intellij-toml >>- 基本的 Toml 支持
- Ride >>-
- SolidOak >>- 一个简单的 Rust IDE,基于 GTK+ 和Neovim
- Sublime Text
- rust-lang/rust-enhanced >>- 官方 Rust 包
- sublimehq/packages >>- 原生 Sublime 支持(已安装)
- Vim >>- 无处不在的文本编辑器
- Visual Studio
- PistonDevelopers/VisualRust >>- Rust 的 Visual Studio 扩展
- dgriffen/rls-vs2017 >>- Visual Studio 2017 Preview 的 Rust 支持
- Visual Studio Code
- rust-lang/rls-vscode >>- 对 Visual Studio Code 的 Rust 支持
- CodeLLDB >>- LLDB 扩展
- crates >>- crates 是 crates.io 依赖项的扩展。
- KalitaAlexey/vscode-rust >>- RustyCode 的一个分支
- sfikas/rusteval >>- 用于评估,检索算法输出的工具
- sharkdp/hyperfine >>- 命令行,基准测试工具
- performancecopilot/hornet >>- Performance Co-Pilot 的内存映射值检测库
- nokia/memory-profiler >>- Linux 的内存分析器
- ellisonch/rust-stopwatch >>- 秒表库
- FlameGraphs
- mrhooray/torch >>- 基于 DWARF 调试信息,生成 FlameGraphs
- TyOverby/flame >>-
- static_assertions >>- 编译-时刻的断言(工具),以确保满足不变量
[testing]
- mockiato >>— 一个严格的, 同时还很友好的,Rust 2018 的 mock 库
- mutagen >>- 可变源-级,测试框架(仅限 nightly)
- AlKass/polish >>- 测试/测试-驱动的迷你框架
- proptest >>- 属性(property)测试框架,灵感来自HypothesisPython 的框架
- quickcheck >>- Rust 的一个QuickCheck 实现
- mockito >>- HTTP 模拟
- speculate >>- 一个受 RSpec 启发的,Rust 的最小测试框架
- rust-fuzz/afl.rs >>- 一个 Rust fuzzer,使用AFL
- tarpaulin >>- 为 Rust 设计的代码覆盖工具
- trust >>- Travis CI 和 AppVeyor 模板,用于在 5 种体系结构上,测试 Rust crate 并根据 Linux,macOS 和 Windows 发布它的二进制版本
- immunant/c2rust >>- 在 Clang / LLVM 之上构建的, C 到 Rust 转换器和交叉检查器。
- jameysharp/corrode >>- 用 Haskell 编写的, C to Rust 转换器。
- Martin1887/oxigen >>- 快速,并行,可扩展和适应性强的遗传算法库。使用此库的示例仅在几秒钟内解决 N = 255 的 N Queens 问题,并使用少于 1 MB 的 RAM。
- innoave/genevo >>- 以可定制和可扩展的方式执行遗传算法(GA)模拟。
- willi-kappler/darwin-rs >>- 该库允许您使用 Rust 编程语言编写进化算法(EA)。作者:Willi Kappler,执照:麻省理工学院 - 版本 0.4(2017.06.26)。
- m-decoster/RsGenetic >>- Rust 中的遗传算法库。在维护模式下。
- mneumann/evo-rs >>- Rust 的进化算法库。 3 年没有变。
- yurytsoy/revonet >>- 用于解决优化问题和神经网络训练的实际编码 GA 的 Rust 实现。
也可以看看关于 Rust 机器学习的社区。
- AtheMathmo/rusty-machine >>- Rust 的机器学习库
- avinashshenoy97/RusticSOM >>- 自组织映射(SOM)的 Rust 库。
- autumnai/leaf >>- 开源机器智能框架。。被遗弃的项目。最新的分支是spearow/juice。
- tensorflow/rust >>- TensorFlow 的 Rust 语言绑定。
- maciejkula/rustlearn >>- Rust 的机器学习箱。
- LaurentMazare/tch-rs >>- PyTorch 的 Rust 语言绑定。
- saurvs/astro-rust >>- Rust 的天文学
- fitsio >>- 包装 cfitsio 的合理接口库
- flosse/rust-sun >>- JS 库 suncalc 的螃蟹端口
- zonyitoo/coio-rs >>- 带有工作窃取(working-stealing)调度程序的协程 I/O 库
- dpc/mioco >>- 可扩展,基于协程的异步 IO 处理库
- TeaEntityLab/fpRust >>- Monad / MonadIO,Handler,Coroutine / doNotation,Rust 的函数式程序功能
- rust-lang-nursery/futures-rs >>- Rust 的零成本 futures
- mio >>- MIO 是 Rust 的轻量级 IO 库,专注于在 OS 抽象上,添加尽可能少的开销
- Xudong-Huang/may >>- 螃蟹 stackful 的协程库
- rustasync/runtime >>- 可在未知运行时下的 API,旨在使异步感觉像 stdlib 的一部分
[audio]
- GuillaumeGomez/rust-fmod >>- FMOD绑定
- jhasse/ears >>- 一个简单的库,可以在 OpenAL 和 libsndfile 之上,播放声音和音乐
- jpernst/alto >>- OpenAL 1.1 绑定
- musitdev/portmidi-rs >>- PortMidi绑定
- hound >>- WAV 编码和解码库
- tomaka/rodio >>- Rust 音频播放库
- RustAudio
- Keats/jsonwebtoken >>- 螃蟹的 JSON Web Token lib
- canparse >>- CAN 信号和定义解析器
- j2534 >>- J2534 PassThru 绑定
- JulianSchmid/dlt_parse >>- Rust DLT(诊断日志和跟踪)数据包解析器
- JulianSchmid/someip_parse [someip_parse] - 用于解析 SOME / IP 网络协议的库(无有效负载解释)
- LibreTuner/tuneutils [tuneutils] - 用于连接,诊断和调整汽车的实用程序
- marcelbuesing/can-dbc [can-dbc] - DBC 格式的解析器
- marcelbuesing/tokio-socketcan-bcm [tokio-socketcan-bcm] - Linux SocketCAN BCM,支持 tokio
- mbr/socketcan [socketcan] - Linux SocketCAN 库
- oefd/tokio-socketcan [tokio-socketcan]] - Linux SocketCAN,支持基于 socketcan 箱的 tokio
- Sensirion/lin-bus [lin-bus] - LIN 总线驱动程序的特性和协议实现
- Rust-Bio >>- Rust 的生物信息学库。
- jaysonsantos/bmemcached-rs >>- 用纯螃蟹写的 Memcached 库
- jaemk/cached >>- 简单的 缓存/记忆 函数
- aisk/rust-memcache >>- Memcached 客户端库
- aymanmadkour/glock >>- Rust 的多粒度锁(Granular locking)箱子。
- crossbeam-rs/crossbeam >>- Rust 支持并行性和低级并发性
- orium/archery [archery] - 从
Rc
/Arc
指针类型抽象出来的 库。 - pop-os/bus-writer >>- 通用单-reader,多-writer
- Rayon >>- Rust 的数据并行库
- rustcc/coroutine-rs >>- Rust Coroutine 库
- zonyitoo/coio-rs >>- Rust Coroutine I/O.
- AWS [aws]
- rusoto/rusoto >>-
- 参数解析
- clap-rs [clap] - 一个简单易用,功能齐全的命令行参数解析器
- docopt/docopt.rs [docopt] - Rust 的DocOpt 实现
- TeXitoi/structopt [structopt] - 通过定义一个结构,来解析命令行参数
- killercup/quicli [quicli] - 在 Rust 中,快速构建很酷的 CLI 应用程序
- 以人为本的设计
- rust-cli/human-panic [human-panic] - 人类的 panic 信息
- Line 编辑器
- srijs/rust-copperline [copperline] - 纯-Rust 命令行编辑库
- MovingtoMars/liner [liner] - 提供类似 readline 功能的库
- murarth/linefeed [linefeed] - 可配置,可扩展的交互式线路阅读器
- kkawakam/rustyline [rustyline] - Rust 中的 readline 实现
- 管道
- imp/pager-rs [pager] - 通过一个外部 pager,对输出管道化
- hniksic/rust-subprocess [subprocess] - 与外部管道交互的设施
- oconnor663/duct.rs [duct] - 子进程管道化和 IO 重定向的构建器
- philippkeller/rexpect [rexpect] - 自动化交互式应用程序,如 ssh,ftp,passwd 等
- 进展
- mitsuhiko/indicatif [indicatif] - 向用户表明进度
- a8m/pb [pbr] - Rust 的控制台进度条
- FGRibreau/spinners [spinners] - 60 多个优雅的终端旋转器
- 提示
- hashmismatch/terminal_cli.rs [terminal_cli] - 构建一个交互式命令提示符
- starship/starship [starship] — 小,快,高定制的命令提示符,用于任意 shell
- 样式
- ogham/rust-ansi-term [ansi_term] - 控制 ANSI 终端上的颜色和格式
- LukasKalbertodt/term-painter [term-painter] - 跨平台风格的终端输出
- vitiral/termstyle [termstyle] - 构建(和测试)格式化和样式化的命令行应用程序
- SergioBenitez/yansi [yansi] - 一个简单的 ANSI 终端颜色绘图库
- TUI
- TimonPost/crossterm [crossterm] - 跨平台终端库
- gyscos/Cursive [cursive] - 构建丰富的 TUI 应用程序
- ogham/rust-term-grid [term_grid] - 网格化的 Rust 库
- ticki/termion [termion] - 用于控制终端/ TTY 的无绑定库
- fdehau/tui-rs [tui] - 受到blessed-contrib和termui启发的 TUI 库
- BearLibTerminal
- ncurses
- jeaye/ncurses-rs [ncurses] -ncurses绑定
- ihalila/pancurses [pancurses] - curses 库,支持 linux 和 windows
- Termbox
- gchp/rustbox [rustbox] - Termbox 绑定
- Brotli
- ende76/brotli-rs >>- Brotli 压缩实现
- dropbox/rust-brotli >>- Rust 中的 Brotli 解压缩程序,可以选择性地避免使用 stdlib
- bzip2
- alexcrichton/bzip2-rs >>- libbz2绑定
- gzip
- carols10cents/zopfli >>- 实现Zopfli压缩算法,用于更高质量的 deflate 或 zlib 压缩
- miniz
- alexcrichton/flate2-rs >>- miniz绑定
- snappy
- JeffBelgum/rust-snappy >>- snappy绑定
- tar
- alexcrichton/tar-rs >>- 在 Rust 中读取/写入 tar 档案
- zip
- mvdnes/zip-rs >>- 读取和写入 ZIP 存档
- argmin-rs/argmin [argmin] - 纯 Rust 优化库
- BLAS [blas]
- mikkyang/rust-blas >>- BLAS 绑定
- stainless-steel/blas >>- BLAS 绑定
- Conjugate Gradient
- noshu/cg-sys >>- fortran CG +子程序的 Rust 绑定
- GMP
- fizyk20/rust-gmp >>- libgmp 绑定
- GSL
- GuillaumeGomez/rust-GSL >>- GSL 绑定
- LAPACK
- stainless-steel/lapack >>- LAPACK 绑定
- L-BFGS-B
- noshu/lbfgsb-sys >>- Fortran L-BFGS-B 子程序的 Rust 绑定
- rustsim/nalgebra >>- 低维线性代数库
- 平行
- arrayfire/arrayfire-rust >>- Arrayfire绑定
- autumnai/collenchyma >>- 可扩展,可插入,后端无关的框架,用于在 CUDA,OpenCL 和通用主机 CPU 上进行并行,高性能计算。
- luqmana/rust-opencl >>- OpenCL绑定
- Scirust
- indigits/scirust >>- Rust 的科学计算库
- Statrs
- boxtown/statrs >>- Rust 中强大的统计计算库
- Rustimization [rustimization]
- noshu/rustimization >>- Rust 优化库,包括 L-BFGS-B 和 Conjugate Gradient 算法
- calebwin/emu >>- 来自 Rust 宏, 给 GPGPU 数值的计算语言
- mehcode/config-rs[config] - Rust 应用程序的分层配置系统(对 12-factor 应用程序强大支持)。
- Kixunil/configure_me[configure_me] - 用于轻松处理应用程序配置的库
- briansmith/ring >>- 使用 Rust 和 BoringSSL 的加密原语,做到安全,快速,小型加密。
- briansmith/webpki >>- Rust 中的 Web PKI TLS X.509 证书验证。
- brycx/orion >>- 该库旨在提供简单实用的加密。“可用”意味着公开易于使用,且难以滥用的高级 API。
- ctz/rustls >>- TLS 的 Rust 实现
- DaGenix/rust-crypto >>- Rust 中的加密算法
- dnaq/sodiumoxide >>- libsodium绑定
- doublify/libblockchain >>- 区块链实现
- exonum/exonum[exonum] - 区块链项目的可扩展框架
- klutzy/suruga >>- Rust 的一个实现TLS 1.2
- libOctavo/octavo >>- Rust 中的模块化哈希和加密库
- RustCrypto/hashes >>- 用纯 Rust 编写的加密哈希函数的集合
- rustindia/mpw-rs >>- Master Password 密码管理器的 纯 Rust 实现
- Fraunhofer-AISEC/rabe >>- 提供多种基于属性的加密(ABE)方案的库
- racum/rust-djangohashers >>- Django 项目中使用的密码原语的 Rust 端口。它不需要 Django,只根据其样式,哈希并验证密码。
- RNCryptor/rncryptor-rs >>- RNCryptor AES 文件格式的 纯 Rust 实现
- conradkdotcom/rooster[rooster] - 在终端中,使用的简单密码管理器
- sfackler/rust-native-tls >>- 原生 TLS 库的绑定
- sfackler/rust-openssl >>- OpenSSL绑定
- kornelski/rust-security-framework >>- 安全框架的绑定(OSX 原生)
- steffengy/schannel-rs >>- Schannel 的绑定(Windows 原生 TLS)
- zebradil/rustotpony >>- 一次性密码生成器的 CLI 管理器,即 Google Authenticator(TOTP)
[database]
-
sfackler/r2d2 >>- 通用连接池
-
NoSQL [nosql]
- ArangoDB
- Rincon >>- Rust 的 ArangoDB(NoSQL 和 Graph store)驱动程序
- Cassandra[cassandra,cql]
- AlexPikalov/cdrs[cdrs] - 用 Rust 编写的原生客户端
- Metaswitch/cassandra-rs >>- 绑定到 DataStax C/C ++ 客户端
- CouchDB [couchdb]
- chill-rs/chill[couchdb] - CouchDB REST API 的 Rust 客户端
- Sofa >>- CouchDB HTTP REST API 的接口,用于稳定螃蟹
- Elasticsearch [elasticsearch]
- benashford/rs-es [rs-es] - Rust 的客户端Elastic REST API
- elastic-rs/elastic-reqwest [elastic_reqwest] - 基于 Reqwest 的 Elasticsearch API 的轻量级实现
- etcd
- jimmycuadra/rust-etcd [etcd] - CoreOS 的 etcd 客户端库。
- ForestDB
- vhbit/sherwood >>- ForestDB绑定
- InfluxDB
- panoptix-za/influxdb-rs >>- 异步接口
- driftluo/InfluxDBClient-rs >>- 同步接口
- LevelDB
- skade/leveldb >>- LevelDB绑定
- LMDB [lmdb]
- vhbit/lmdb-rs [lmdb-rs] -LMDB绑定
- MongoDB [mongodb]
- Neo4j [cypher,neo4j]
- Redis [redis]
- mitsuhiko/redis-rs >>- RedisRust 库
- RocksDB
- rust-rocksdb/rust-rocksdb >>- RocksDB 绑定
- UnQLite
- zitsen/unqlite.rs >>- UnQLite 绑定
- ZooKeeper
- bonifaido/rust-zookeeper [zookeeper] - Apache ZooKeeper 的客户端库。
- PickleDB
- seladb/pickledb-rs >>- 一个轻量级和简单的键值存储,受 Python 的 PickleDB 的启发。
- ArangoDB
-
SQL [sql]
- Microsoft SQL
- MySql [mysql]
- AgilData/mysql-proxy-rs >>- MySQL 代理
- blackbeam/mysql_async [mysql_async] - 基于 Tokio 的 异步化, Rust Mysql 驱动程序。
- blackbeam/rust-mysql-simple [mysql] - 原生 MySql 客户端
- PostgreSql [postgres,postgresql]
- sfackler/rust-postgres [postgres] - 土生土长的PostgreSQL客户端
- Sqlite [sqlite]
- jgallagher/rusqlite >>- Sqlite3绑定
-
ORM [orm]
- diesel-rs/diesel >>- Rust 的 ORM 和 Query 构建器
- ivanceras/rustorm >>- Rust 的 ORM
- bluss/ndarray >>- 具有数组视图,多维切片和高效操作的 N 维数组
- kernelmachine/utah >>- 用 Rust 写的,数据帧结构及操作
- weld-project/weld >>- 数据分析应用程序的高性能运行时
- billyevans/tst[tst] - 三元搜索树集合
- bluss/rust-itertools >>-
- contain-rs >>- Rust 的 std::collections 的扩展
- danielpclark/array_tool >>- Rust 的数组助手。您将在数组上使用的一些最常用的方法,都可在 Vectors 上使用。用于处理大多数用例的多态实现。
- fizyk20/generic-array >>- 通过 typenums,允许 sized(固定大小)数组的 hack
- garro95/priority-queue[priority-queue] - 实现优先级更改的优先队列。
- Nemo157/roaring-rs >>- Roaring Bitmaps
- orium/rpds[rpds] - Rust 中的持久数据结构。
- pop-os/progress-streams >>- 给实现
dyn io::Read
要么dyn io::Write
类型的,进度回调函数。 - whitfin/usher[usher] - Rust 中通用资源的参数化路由。
- xfix/enum-map[enum-map] - 枚举的优化映射实现:使用一个数组(array)存储值。
- saresend/gust >>-
- milliams/plotlib >>—
- Antimony
- antimonyproject/antimony[antimony] - 流处理/分布式计算平台
- Apache Hadoop
- whitfin/efflux >>- Rust 中的 Easy Hadoop Streaming 和 MapReduce 接口。
- Apache Kafka
- Beanstalkd
- HDFS
- hyunsik/hdfs-rs >>- libhdfs 绑定
- GildedHonour/atarashii_imap >>- (atarashii / new)Rust 的 IMAP 新客户端。它支持普通和安全连接
- gsquire/sendgrid-rs >>- SendGrid API 的非官方 Rust 库
- lettre/lettre >>- Rust 的 SMTP 库
- staktrace/mailparse[mailparse] - 用于解析真实世界电子邮件文件的库
[encoding]
- ASN.1
- alex/rust-asn1 >>- Rust ASN.1(DER)序列化器
- Bencode
- arjantop/rust-bencode >>- Bencode在 Rust 中实现
- Binary
- arcnmx/nue >>- Rust 的 I/O 和二进制数据编码
- TyOverby/bincode >>- Rust 中的二进制编码器/解码器
- m4b/goblin [goblin] - 跨平台,零拷贝和感知-字节序的二进制解析
- BSON
- zonyitoo/bson-rs >>-
- Byte swapping
- BurntSushi/byteorder >>- 支持 大-字节序,小-字节序 和 原生 字节顺序
- Cap'n Proto
- CBOR
- serde_cbor >>- CBOR 对 serde 的支持
- 字符编码
- hsivonen/encoding_rs [encoding_rs] - 面向 Gecko 的编码标准 Rust 实现
- lifthrasiir/rust-encoding >>-
- CRC
- mrhooray/crc-rs >>-
- CSV
- BurntSushi/rust-csv >>- 快速灵活的 CSV 读写器,支持 Serde
- FlatBuffers
- frol/flatc-rust >>- 用于 Cargo 构建脚本的 FlatBuffers 编译器(flatc)集成
- HAR
- mandrean/har-rs >>- HTTP 存档格式(HAR)序列化和反序列化库
- HTML
- servo/html5ever >>- 高性能的浏览器级,HTML5 解析器
- veddan/rust-htmlescape >>- 编码/解码 HTML 条目
- JSON
- pikkr/pikkr [pikkr] - JSON 解析器,直接获取值,而不会在 Rust 中执行标记化
- serde-rs/json [serde_json] - JSON 支持Serde框架
- Licenser/simdjson-rs [simd-json] >>- 基于 simdjson 的一部分,制成的高性能 JSON 解析器
- maciejhirsz/json-rust [json] - Rust 中的 JSON 实现
- Jsonnet
- MsgPack
- 3Hren/msgpack-rust >>- 纯 Rust 低层/高级 MessagePack 实现
- PEM
- jcreekmore/pem-rs [pem] - 基于 Rust 的解析和编码 PEM 编码数据的方法
- Postman Collection
- mandrean/postman-collection-rs >>- Postman Collection v1,v2 和 v2.1 序列化和反序列化库
- ProtocolBuffers
- RON(Rust 的对象表示法)
- Tnetstring
- TOML
- XML
- tafia/quick-xml >>- 高性能 XML 读/写器
- Florob/RustyXML >>- 用 Rust 编写的 XML 解析器
- shepmaster/sxd-document >>- Rust 中的 XML 库
- shepmaster/sxd-xpath >>- Rust 中的 XPath 库
- netvl/xml-rs >>- 流式 XML 库
- media-io/yaserde >>- 另一个专门用于 XML 的 Serializer / Deserializer(序列化/反序列化)
- YAML
- chyh1990/yaml-rust >>- YAML 1.2 Rust 缺失实现。
- dtolnay/serde-yaml [serde_yaml] - YAML 支持Serde框架
- kimhyunkang/libyaml-rust >>- libyaml绑定
- vitiral/stfu8 >>- UTF-8 排序文本格式
- 操作
- pop-os/dbus-udisks2 >>- > UDisks2 DBus API
- pop-os/sys-mount >>-
mount
/umount2
系统调用的高级抽象。 - vitiral/path_abs >>- 可序列化的绝对路径类型和相关方法。
- webdesus/fs_extra >>- 扩大标准库 std::fs 和 std::io 的机会
- 临时文件
- rust-lang-deprecated/tempdir >>- 临时目录库
- Stebalien/tempfile >>- 临时文件库
- Stebalien/xattr[xattr] - 列出,并操作 unix 扩展文件属性
- zboxfs/zbox[zbox] - 零细节,以隐私为重点的可嵌入文件系统。
也可以看看Are we game yet?
- Allegro
- Challonge
- vityafx/challonge-rs[challonge] - Challonge REST API 的客户端库。帮助组织比赛。
- Corange
- lucidscape/corange-rs >>- Corange绑定
- Entity-Component Systems(ECS)
- slide-rs/specs >>- Specs Parallel ECS
- 游戏引擎
- SDL[sdl]
- brson/rust-sdl >>- SDL1 绑定
- Rust-SDL2/rust-sdl2 >>- SDL2 绑定
- SFML
- jeremyletang/rust-sfml >>- SFML绑定
- Tcod-rs
- tomassedovic/tcod-rs >>- 用于 Rust 的 Libtcod 绑定。
- Victorem
- VictoremWinbringer/Victorem [Victorem] - 简易 UDP 游戏服务器和 UDP 客户端框架,用于创建简单的 2D 和 3D 在线游戏原型
- Voxlap
- bbodi/rust-voxlap >>- Voxlap绑定
- DaveKram/coord_transforms [coord_transforms] - 坐标转换(2-d,3-d 和地理位置)
- Georust >>- 用 Rust 编写的地理位置工具和库
- rust-reverse-geocoder >>- 快速的,可离线的,Rust 反转地理位置编码器,灵感源自https://github.com/thampiman/reverse-geocoder
- vlopes11/geomorph [geomorph] - UTM,LatLon 和 MGRS 坐标之间的转换
[graphics]
- gfx-rs/gfx >>- 高性能无绑定图形 Rust API。
- Font
- redox-os/rusttype >>- 纯 Rust 替代品,类似 FreeType 库
- OpenGL [opengl]
- brendanzab/gl-rs >>-
- glium/glium >>- R 安全 OpenGL 包装器,Rust 语言。
- Kiss3d >>- 绘制简单的几何图形,并用 one-liners 玩
- PistonDevelopers/glfw-rs >>-
- glutin >>- GLFW的 Rust 替代品
- PDF
- kaj/rust-pdf >>-
- fschutt/printpdf >>- PDF 写入库
- J-F-Liu/lopdf >>- PDF 文档操作
- WASM-PDF >>– 用 JavaScript 和 WASM (WebAssembly),生成 PDF 文件
- Vulkan [vulkan]
- kud1ing/tinkerpop-rs >>- 一个如何使用 Rust 的 Apache TinkerPop 的例子
[gui]
- autopilot-rs/autopilot-rs >>- Rust 的简单跨平台 GUI 自动化库。
- maps4print/azul >>- 一个免费的,功能性的,面向 IMGUI 的 GUI 框架,用于快速开发用 Rust 编写的桌面应用程序,由 Mozilla WebRender 渲染引擎支持。
- PistonDevelopers/conrod >>- 一个易于使用的,即时模式, 2D GUI 库,完全用 Rust 编写
- rise-ui >>- 基于组件的简单跨平台 GUI 工具包,用于开发美观且用户友好的界面。
- Cocoa
- Flutter
- flutter-rs >>- 用 dart & rust,构建 flutter 桌面应用程序。
- GTK+ [gtk]
- gtk-rs/gtk >>- GTK+ 绑定
- relm >>- 基于 GTK+ 的异步 GUI 库,灵感来自 Elm
- ImGui
- imgui-rs >>- ImGui 的 Rust 绑定
- IUP
- clear-coat >>- Clear Coat 是 IUP GUI 库的 Rust 包装器
- dcampbell24/iup-rust >>- IUP 绑定
- Kiss-ui >>- 基于 IUP 构建的简单 UI 框架
- libui
- pcwalton/libui-rs >>- libui 绑定 。被遗弃的项目。最新的分支是NoraCodes/libui-rs。
- Nuklear
- nuklear-rust >>- Nuklear 的 Rust 绑定
- Qt
- woboq/qmetaobject-rs >>- 通过在编译时,去构建 QMetaObject ,来集成 Qml 和 Rust。
- cyndis/qmlrs >>- QtQuick 绑定
- kitech/qt.rs >>- Qt5 绑定
- Rust Qt Binding Generator >>- 由 KDE 托管的绑定生成器。
- rust-qt >>-
- White-Oak/qml-rust >>- QML 绑定。
- saurvs/nfd-rs >>- nativefiledialog绑定
- Sciter
- sciter-sdk/rust-sciter >>- Sciter 绑定
- abonander/img_hash >>- 感知图像哈希,和比较相等性与相似性。
- image-rs/image >>- 基本图像处理函数和方法,用于转换图像格式和从图像格式转换的
- image-rs/imageproc >>- 一个图像处理库,基于
image
库。 - twistedfall/opencv-rust >>- OpenCV 的 Rust 绑定
- teovoinea/steganography[steganography] - 一个简单的隐写术(steganography)库
(译者) 隐写术是一门关于信息隐藏的技巧与科学。
- shnewto/bnf >>- 用于解析无关上下文, Backus-Naur 形式语法的库。
[log]
- seanmonstar/pretty-env-logger >>— 一个给 Rust的,漂亮, 易于使用的 logger 。
- rust-lang-nursery/log >>- Rust 的日志记录实现
- slog-rs/slog >>- Rust 的结构化,可组合日志记录
- sfackler/log4rs >>- 高度可配置的日志框架,以 Java 的 Logback 和 log4j 库为模型
- cute
- mattgathu/cute >>- Python-esque 列表推导的 Rust 宏。
- hado
- ludat/hado-rs >>- 写一个类似 haskell 的表达式,没有太多的仪式
- CommonMark
- raphlinus/pulldown-cmark >>- 用 Rust 编写的 CommonMark解析器
- Android
- rust-windowing/android-rs-glue >>- Rust 和 Android 之间的粘合剂
- iOS 版
- TimNN/cargo-lipo >>- Cargo lipo 子命令,可自动创建用于 iOS 应用程序的通用库。
- vhbit/ObjCrust >>- 使用 Rust 创建 iOS 静态库
- Pebble
- andars/pebble.rs >>- 一个箱子,允许 Rust 用来开发 Pebble 应用程序。
- Android / iOS
- i-schuetz/rust_android_ios >>— 在 Android 和 iOS上,使用一个共享 Rust lib,各自使用 rust-swig 和 cbindgen 的例子
- HTTP
- pop-os/parallel-getter >>- 下载一个文件,并行 GET 请求,以最大化带宽。
- pop-os/url-crawler >>- 可配置的并行网络爬虫,旨在抓取网站内容。
- pop-os/url-scraper >>- 从 HTML 页面中,截取 URL
- FTP
- mattnenterprise/rust-ftp >>- 一个 Rust FTP 客户端
- gRPC
- pingcap/grpc-rs >>— The gRPC 用于,以 C Core 库和特性的 Rust built
- IPNetwork
- achanda/ipnetwork >>- 在纯 Rust 中,使用 IP 网络的库
- candrew/netsim >>- 用于网络模拟和测试的 Rust 库
- JSON-RPC
- vlopes11/futures-jsonrpc [futures-jsonrpc] - JSON-RPC 的 Futures 实现
- 底层
- libpnet/libpnet >>- 跨平台,低级别的网络
- m-labs/smoltcp >>— 一个独立, 事件-驱动的 TCP/IP 栈,专为裸机, 实时系统所设计
- tokio-rs/tokio >>- 用于客户端和服务器的快速开发,和高度可扩展的生产部署的网络应用程序框架。
- dylanmckay/protocol >>- 自定义 TCP / UDP 协议定义
- actix/actix >>- Rust 的 Actor 库
- NanoMsg
- Nng
- NNTP
- mattnenterprise/rust-nntp >>- 一个 Rust 的NNTP客户端
- POP3
- mattnenterprise/rust-pop3 >>- 一个 Rust 的POP3客户端
- SSH
- alexcrichton/ssh2-rs >>- libssh2绑定
- Thrussh >>- 在 Rust 中,从头开始编写的 SSH 库,由libsodium提供支持
- Stomp
- zslayton/stomp-rs >>- 一个 Rust 中的STOMP 1.2客户端实现
- uTP
- meqif/rust-utp >>- 一个uTPRust 的(微传输协议)库。
- ZeroMQ
- erickt/rust-zmq >>- ZeroMQ绑定
- CoAP
- Covertness/coap-rs >>-一个受限制的应用协议(CoAP)螃蟹库。
- Docker
- fussybeaver/bollard - Docker daemon API
- RPC
- smallnest/rpcx-rs >>— A RPC library for Rust ,旨在简单明了的方式,开发微服务。
- Geal/nom >>- 解析器组合库
- ivanceras/inquerest >>-用于 REST 过滤器查询的 URL 参数解析器
- kevinmehall/rust-peg >>-解析表达式语法(PEG)解析器生成器
- m4rw3r/chomp–一个快速的单体风格的解析器组合
- Marwes/combine >>-解析器组合库
- lalrpop/lalrpop >>-LR(1)螃蟹解析器生成
- nrc/zero >>- 二进制数据的零分配解析
- pest-parser/pest >>- 优雅的解析器
- ptal/oak >>- 一个类型化的 PEG 解析器生成(编译器插件)
- rustless/queryst >>-受https://github.com/ljharb/qs 启发,一个查询字符串 Rust 解析库
- freestrings/jsonpath >>- JsonPath 引擎。 Webassembly 和 Javascript 都支持
- pop-os/debarchive 阅读和提取 Debian 存档库
- 串口(Serial Port)
- Susurrus/serialport-rs [serialport] >>- 提供对串行端口访问的跨平台库。
-
跨平台
- svartalf/rust-battery >>— 关于笔记本电池的跨平台信息
- Linux
- frol/cgroups-fs >>- Rust 绑定 Linux 控制组(CGroups)
- pop-os/dbus-udisks2 >>- udisks2 数据库 API
- pop-os/distinst >>-Linux 分发安装器库
- inotify-rs/inotify >>- inotify绑定
- arvancloud/nginx-rs >>- Nginx绑定
- yaa110/rust-iptables >>- iptables绑定
- 类 UNIX
- nix-rust/nix >>-类 Unix 的 API 绑定
- zargony/rust-fuse >>- FUSE绑定
- Windows
- retep998/winapi-rs >>-Windows API 绑定
- FreeBSD
- fubarnetes/libjail-rs >>- FreeBSD jail 库的 Rust 实现
- dlrobertson/capsicum-rs >>- Freebsd Capsicum 框架的 Rust 绑定
- PistonDevelopers/dyon >>-一种 rusty 的动态类型脚本语言
- gluon-lang/gluon >>- 一种小型的、静态类型的函数式编程语言。
- murarth/ketos >>-作为 rust 脚本和扩展语言的 lisp 方言函数式编程语言
- moss >>- 动态类型的脚本语言
- jonathandturner/rhai >>- 一种小巧快速的嵌入式脚本语言,类似于 JS 和 Rust 的组合。
- Handlebars
- sunng87/handlebars-rust >>-带有继承的 Handlebars 模板引擎,支持自定义助手。
- HTML
- lfairy/maud >>-编译时 HTML 模板
- Stebalien/horrorshow-rs >>-编译时 HTML 模板
- kaj/ructe >>- Rust 模板系统
- Keats/tera >>-模板引擎,基于 jinja2 和 django 模板语言。
- djc/askama >>-基于 Jinja 的模板绘制引擎
- Mustache
- tailhook/marafet >>-基于 cito.js 的虚拟 DOM 的类 Jade 模板语言编译器
- BurntSushi/suffix >>- 线性时间及后缀的数组构造(支持 Unicode)
- BurntSushi/tabwriter >>- 弹性 tab 位(即,文本列对齐)
- mgeisler/textwrap [textwrap] >>- 自动换行文字(支持连字符)
- pwoolcoc/ngrams >>- 从任意迭代器,构造n-grams
- ps1dr3x/easy_reader >>- 一种 reader,它允许在大型文件行中,进行向前、向后和随机的导航,而不需要使用迭代器。
- rust-lang/regex >>- 正则表达式(re2 样式)
- strsim-rs >>- 字符串相似性度量
- greyblake/whatlang-rs >>- 基于 trigrams 的自然语言检测库
- yaa110/rake-rs >>- Rake(快速自动关键字提取) 算法的多语言实现
- Lucretiel/joinery [joinery]>>- 通用字符串+可重复连接
- andylokandy/simsearch-rs [simsearch] >>- 简单,小巧的模拟查询引擎,内存工作,相似字符串查询
- BurntSushi/fst [fst >>-
- minio/minsql >>— 高性能,日志查询引擎。
- CurrySoftware/perlin [perlin >>-
- tantivy-search/tantivy [tantivy >>-
- zerocopy >>- 用于安全地将任意字节序列,重新解释为原生 Rust 类型的实用程序
- beneills/quantum >>- 先进的 Rust 量子计算机模拟器
- chromium/chromiumos/platform/crosvmCrosvm - 使 Chrome OS 能够在快速、安全 虚拟化环境中运行 Linux 应用程序
- ekse/unicorn-rs >>- Unicorn CPU 模拟器的 Rust 绑定
- saurvs/hypervisor-rs >>- OS X 上的硬件加速虚拟化
也见Are we web yet?和Rust web 框架比较.
- 客户端/WASM
- HTTP 客户端
- alexcrichton/curl-rust >>- libcurl绑定
- hyperium/hyper >>- HTTP 实现
- seanmonstar/reqwest >>-一个符合人体工程学的 HTTP 客户端。
- DoumanAsh/yukikaze >>- 美观大方的 yukikaze 是基于 hyper 的小 HTTP 客户端库。
- HTTP 服务器
- actix/actix-web >>-一个轻量级异步 Web 框架,支持 WebSocket 实现信任
- branca >>- Branca 的一个纯信任实现,用于认证和加密的 API 令牌。
- Gotham >>-一种不牺牲安全性、安全性和速度的灵活 Web 框架。
- hyperium/hyper >>-HTTP 实现
- GildedHonour/frank_jwt >>- Rust 中的 JSON Web 令牌实现。
- handlebars-rust >>-一个 Iron 框架中间件。
- Iron >>- 基于中间件的服务器框架
- Juniper >>— GraphQL server Rust 库
- Nickel受启发Express
- Ogeon/rustful >>-一个 RESTful 的螃蟹 Web 框架
- Rocket >>- Rocket 是 Rust 的 Web 框架(夜间),重点是易用性、可表达性和速度
- Rustless >>-一个类似于 REST 的 API 微框架,受Grape和Hyper启发
- Saphir >>-一个渐进式的网络框架,具有低层的控制,没有痛苦。
- rustforce/sapper >>-一个基于 AsyncHyper 的轻量级 Web 框架,用 Rust 语言实现。
- tiny-http >>- 低级 HTTP 服务器库
- tomaka/rouille >>- Web 框架
- carllerche/tower-web [tower-web]-一个快速的,样板自由,螃蟹的网络框架
- danclive/sincere >>-基于 hyper 和多线程的 Rust(稳定)的微型 Web 框架。
- oltdaniel/zap >>-一个迅雷不及掩耳的 Rust HTTP 框架
- WebSocket
- actix/sockjs >>- 一个SockJSRust 服务器
- cyderize/rust-websocket >>- 用于处理 WebSocket 连接(客户端和服务器)的框架
- housleyjk/ws-rs >>- 轻量级,事件驱动的螃蟹 WebSockets
- snapview/tungstenite-rs >>- 轻量级的基于流的 WebSocket 实现。
- vi/websocat >>-用于与 WebSockets 交互的 CLI,具有 netcat、curl 和 socat 的功能。
- vityafx/urlshortener-rs [urlshortener] >>- 一个非常简单的 urlshortener Rust 库。
- 其他
- cargonauts >>- 一种用于构建可维护的、分解良好的 Web 应用程序的 Web 框架。
- pyros2097/rust-embed >>- 将静态资产嵌入 rust 二进制文件的宏。
- utkarshkukreti/select.rs [select]-从 HTML 文档中提取有用数据的库,适用于 Web 抓取。
- pwoolcoc/soup [soup] >>- 一个类似于 pythons beautifulsoup 的库,旨在实现对 HTML 文档的快速、简单的操作和查询。
- 反向代理
- sozu-proxy/sozu [sozu]>>- 一个 HTTP 反向代理。
- 静态站点生成器
- getzola/zola [zola] >>- 一个内置所有东西的固执静态站点生成器。
- cobalt-org/cobalt.rs >>- 用 Rust 编写的静态现场发电机
- FuGangqiang/mdblog.rs >>- markdown 文件的静态站点生成器。
- leven-the-blog/leven [leven] >>- 一个简单的、并行的博客生成器。
注册中心允许你以箱子(crate)的形式,发布你的 Rust 库,公开和私下与他人分享。
- Crates >>- 官方 Rust/Cargo 登记处。
- Cloudsmith 💲 >>- 全面管理的软件包管理 SaaS,对公共和私人 Cargo/Rust 登记处(以及许多其他)提供一流的支持。有一个慷慨的免费服务,也是完全免费的开放源码。
- 基准点
- TeXitoi/benchmarksgame-rs >>- 编程语言 Benchmarks 游戏 的 Rust 实现
- 公示板和演示文稿
- 学习系统编程 Rust >>- 提交人Julia Evans@Rustconf 2016 年。
- 运输一个坚不可摧的 Rust Crate >>- 提交人Michael Gattozzi@鲁斯康夫 2017 号
- Rust: Hack Without Fear! >>- 提交人Nicholas Matsakis@ C++ 2018
- 学习
- 编程社区为学习 Rust 管理资源 >>- 编程界投票推荐的资源清单。
- exercism.io >>-编程练习可以帮助您学习 Rust 中的新概念。
- 习惯 Rust >>- 同行评审的文章/谈话/报告集,教授习惯 Rust。
- Learning Rust With Entirely Too Many Linked Lists >>- 深入探讨了 Rust 的内存管理规则,通过实现几种不同类型的列表结构。
- Rust by Example
- Rust Cookbook >>-一组简单的例子,用螃蟹生态系统的箱子证明了完成常见编程任务的良好实践。
- Rust in Motion >>-视 频系列由Carol Nichols和Jake Goulding(已付)
- rust-learning >>- 学习螃蟹的有用资源的集合
- Rustlings >>- 小练习让你习惯读写 Rust 代码
- stdx >>- 首先学习这些箱子,作为标准的扩展
- Pennsylvania's 大学计算机科学 Rust 语言课
- 构建一个语言 VM
- 播客
- New Rustacean >>- 关于学习螃蟹的播客
- Rustacean Station - 社区项目,创建 Rust 播客内容。
- Rusty Spike >>-一切都是螃蟹的新闻
- RustCamp 2015 Talks
- Rust Design Patterns
- Rust Guidelines
- RustBooks >>- 螃蟹书清单
- Rust Subreddit >>-发布和讨论与螃蟹有关的问题、文章和资源的分论坛。