Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kvnxiao/fe8cd6ca03978a2ee69e36a37251bcd2 to your computer and use it in GitHub Desktop.
Save kvnxiao/fe8cd6ca03978a2ee69e36a37251bcd2 to your computer and use it in GitHub Desktop.
awesome-rust-sorted-by-stars-2019-04-30.md

Awesome Rust

A curated list of Rust code and resources.

If you want to contribute, please read this.

Table of contents

Applications

See also Rust — Production(organizations running Rust in production).

  •  15847 alacritty — A cross-platform, GPU enhanced terminal emulator
  •  13934 Servo — A prototype web browser engine
  •   1907 habitat — An tool created by Chef to build, deploy, and manage applications.
  •   1841 notty — A new kind of terminal
  •   1649 cloudflare/boringtun — A Userspace WireGuard VPN Implementation
  •    533 Fractalide — Simple Rust Microservices
  •    392 jedisct1/flowgger — A fast, simple and lightweight data collector
  •    324 fcsonline/drill — A HTTP load testing application inspired by Ansible syntax
  •    305 linkerd/linkerd2-proxy — Ultralight service mesh for Kubernetes.
  •    303 ivanceras/diwata — A database administration tool for postgresql
  •    124 FactotumA system to programmatically run data pipelines
  •     87 Weld — Full fake REST API generator
  •     76 Herd — an experimental HTTP load testing application
  •     59 nicohman/eidolon — A steam and drm-free game registry and launcher for linux and macosx
  •     55 andschwa/rust-genetic-algorithm — A genetic algorithm for academic benchmark problems
  •     35 asm-cli-rust — interative assembly shell written in rust.
  •     31 kbknapp/docli — A command line utility for managing DigitalOcean infrastructure
  •     23 intecture/api — an API-driven server management and configuration tool
  •     16 darrint/device-blocker — Limit screen time to children's various mobile devices by blocking internet access on the family Wifi router.
  •     16 Sandstorm Collections App
  •      5 dlecan/generic-dns-update — A tool to update DNS zonefiles with your IP address
  •      3 AnderEnder/s3find-rs — A command line utility to walk an Amazon S3 hierarchy, an analog of find for Amazon S3
  •      0 limonite — static blog/website generator
  •      0 Pijul — A patch-based distributed version control system
  •      0 rsign — A simple command-line tool used to generate/sign/verify digital signatures designed to be compatible with Minisign Codeship Status for danielrangel/rsign
  •      0 MaidSafe — A decentralized platform.
  •      0 mdBook — A command line utility to create books from markdown files
  •      0 trust-dns — A DNS-server

Audio

  •     13 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.

Cryptocurrencies

  •   5380 Parity-Ethereum — Fast, light, and robust Ethereum client
  •   4055 Grin — Evolution of the MimbleWimble protocol
  •   1053 Substrate — Generic modular blockchain template written in Rust
  •    500 Parity-Bitcoin — The Parity Bitcoin client
  •    388 Nervos CKB — Nervos CKB is a public permissionless blockchain, the common knowledge layer of Nervos network.
  •    352 Polkadot — Heterogeneous multi‑chain technology with pooled security
  •    260 Parity-Bridge — Bridge between any two ethereum-based networks
  •    175 nearprotocol/nearcore — decentralized smart-contract platform for low-end mobile devices.
  •    168 rust-cardano — Rust implementation of Cardano primitives, helpers, and related applications
  •     81 Parity-Zcash — Rust implementation of the Zcash protocol
  •     63 ChainX — Fully Decentralized Interchain Crypto Asset Management on Polkadot.
  •     52 ethaddrgen — Custom Ethereum vanity address generator made in Rust
  •     40 cardano-cli — Cardano Command Line Interface (CLI)
  •     25 coinbase-pro-rs — Coinbase pro client in Rust, supports sync/async/websocket
  •      8 Bitcoin Satoshi's Vision — A Rust library for working with Bitcoin SV .
  •      6 Joystream — A user governed video platform.
  •      5 hdwallet — BIP-32 HD wallet related key derivation utilities.
  •      0 wagu — Generate a wallet for any cryptocurrency
  •      0 rbtc — Convert BTC to any currency and vice-versa.

Database

  •   5019 tikv — A distributed KV database in Rust
  •   1198 seppo0010/rsedis — A Redis reimplementation in Rust
  •   1091 PumpkinDB — an event sourcing database engine
  •     86 ParityDB — Fast and reliable database, optimised for read operation
  •      0 indradb — Rust based graph database
  •      0 noria — Dynamically changing, partially-stateful data-flow for web application backends

Emulators

See also crates matching keyword 'emulator'.

Games

See also Games Made With Piston.

Graphics

Industrial automation

Operating systems

See also A comparison of operating systems written in Rust.

Productivity

  •      0 eureka — A CLI tool to input and store your ideas without leaving the terminal

Security tools

System tools

  •  13419 sharkdp/bat — A cat(1) clone with wings.
  •   9334 sharkdp/fd — A simple, fast and user-friendly alternative to find. Build Status
  •   6287 ogham/exa — A replacement for 'ls'
  •   4808 uutils/coreutils — A cross-platform Rust rewrite of the GNU coreutils
  •   1969 XAMPPRocky/tokei — counts the lines of code
  •   1232 Peltoche/lsd — An ls with a lot of pretty colors and awesome icons
  •   1221 m4b/bingrep — Greps through binaries from various OSs and architectures, and colors them.
  •   1084 mmstick/parallel — Reimplementation of GNU Parallel
  •    905 lotabout/skim — A fuzzy finder in pure rust
  •    869 watchexec — Executes commands in response to file modifications
  •    725 redox-os/ion — Next-generation system shell
  •    562 mmstick/systemd-manager — A systemd service manager written in Rust using GTK-rs.
  •    509 mitnk/cicada — A bash-like Unix shell
  •    167 mmstick/fontfinder — GTK3 application for previewing and installing Google's fonts
  •    118 mmstick/tv-renamer — A tv series renaming application with an optional GTK3 frontend.
  •    117 lotabout/rargs [rargs] — xargs + awk with pattern matching support
  •    117 pop-os/popsicle — GTK3 & CLI utility for flashing multiple USB devices in parallel
  •    106 ddh — Fast duplicate file finder
  •     89 cristianoliveira/funzzy — A configurable filesystem watcher inspired by entr
  •     89 k0pernicus/zou — A download accelerator
  •     80 buster/rrun — A command launcher for Linux, similar to gmrun
  •     68 sitkevij/hex — A colorized hexdump terminal utility.
  •     62 mmstick/concurr — Alternative to GNU Parallel w/ a client-server architecture
  •     46 pop-os/system76-power — Linux power management daemon (DBus-interface) with CLI tool.
  •     33 brocode/fblog — Small command-line JSON Log viewer
  •     21 Ralvke/logram — Push log files' updates to Telegram
  •     16 pop-os/debrep — APT repository tool for building and managing an APT repo
  •      0 fselect — Find files with SQL-like queries

Text editors

  •  16020 xi-editor — A modern editor with a backend written in Rust.
  •   8747 xray — An experimental next-generation Electron-based text editor.
  •   3330 Remacs — A community-driven port of Emacs to Rust.
  •   1233 gchp/iota — A simple text editor
  •    429 mathall/rim — Vim-like text editor written in Rust

Text processing

  •    199 vishaltelangre/ff — Find files (ff) by name!
  •     82 TankerHQ/ruplacer — Find and replace text in source files
  •     55 whitfin/runiq — an efficient way to filter duplicate lines from unsorted input.
  •     19 whitfin/bytelines — Read input lines as byte slices for high efficiency.
  •      5 lavifb/todo_r — Find all your TODO notes with one command!
  •      0 ripgrep — combines the usability of The Silver Searcher with the raw speed of grep
  •      0 sd — Intuitive find & replace CLI
  •      0 xsv — A fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)

Utilities

  •    300 myfreeweb/freepass — The free password manager for power users.
  •     45 evansmurithi/cloak — A Command Line OTP (One Time Password) Authenticator application.
  •     44 yaa110/rubigo — Golang dependency tool and package manager, written in Rust
  •     39 whitfin/s3-meta — A command line tool to gather metadata about your Amazon S3 buckets.
  •     30 fcsonline/tmux-thumbs — A lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator.
  •     24 brycx/checkpwn — A Have I Been Pwned (HIBP) command-line utility tool that lets you easily check for compromised accounts and passwords.
  •     12 whitfin/s3-concat — A command line tool to concatenate Amazon S3 files remotely using flexible patterns.
  •      8 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!
  •      8 arthrp/quick-skeleton — Project scaffolding tool, similar to Yeoman and Slush.
  •      4 aleshaleksey/AZDice — A dice roll success distribution generator for tabletop homebrewers.
  •      1 arthrp/consoletimer - Simple timer for your terminal.

Video

  •     11 yuvadm/slingr — A simple CLI for streaming media files over a local network to UPnP media renderers

Virtualization

Window managers

Web

Web Servers

  •    341 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
  •    188 TheWaWaR/simple-http-server — simple static http server
  •     89 thecoshman/http — Host These Things Please — A basic http server for hosting a folder fast and simply

Development tools

  •   2792 Racer — code completion for Rust
  •   2473 Rustup — the Rust toolchain installer
  •   2263 Rust Language Server — A server that runs in the background, providing IDEs, editors, and other tools with information about Rust programs
  •   2191 rustfmt — A Rust code formatter
  •    932 just — A handy command runner for project-specific tasks
  •    510 clog-tool/clog-cli — generates a changelog from git metadata (conventional changelog)
  •    436 artifact — the design doc tool made for developers Build Status
  •    408 rust-lang-nursery/rustfix — automatically applies the suggestions made by rustc
  •    314 git-journal — The Git Commit Message and Changelog Generation Framework
  •    245 dan-t/rusty-tags — create ctags/etags for a cargo project and all of its dependencies
  •    128 semantic-rs — automatic crate publishing
  •     85 fw — workspace productivity booster
  •     39 ptags — A parallel universal-ctags wrapper for git repository Build Status
  •     19 frewsxcv/crate-deps — generates images of dependency graphs for crates hosted on crates.io
  •     15 tinyrick a basic task dependency tool emphasizing Rust functions over raw shell commands.
  •      0 Module Linker — Extension that adds <a> links to references in mod, use and extern crate statements at GitHub.
  •      0 clippy — Rust lints

Build system

  •    336 dtolnay/cargo-expand — Expand macros in your source code
  •      2 liuchong/cargo-x — A very simple third-party cargo subcommand to execute a custom command
  •      0 cargo-graph — updated fork of cargo-dot with additional features. Unmaintained, see cargo-deps
  •      0 cargo-cache — inspect/manage/clean your cargo cache (~/.cargo//${CARGO_HOME}), print sizes etc
  •      0 cargo-check — A wrapper around cargo rustc -- -Zno-trans which can be helpful for running a faster compile if you only need correctness checks
  •      0 cargo-count — lists source code counts and details about cargo projects, including unsafe statistics
  •      0 cargo-deb — Generates binary Debian packages
  •      0 cargo-deps — build dependency graphs of Rust projects
  •      0 cargo-do — run multiple cargo commands in a row
  •      0 cargo-ebuild — cargo extension that can generate ebuilds using the in-tree eclasses
  •      0 cargo-edit — allows you to add and list dependencies by reading/writing to your Cargo.toml file from the command line
  •      0 cargo-find deprecated — Find crates from command line
  •      0 cargo-bitbake — A cargo extension that can generate BitBake recipes utilizing the classes from meta-rust
  •      0 cargo-info — queries crates.io for crates details from command line
  •      0 cargo-make — Rust task runner and build tool.
  •      0 cargo-modules — A cargo plugin for showing a tree-like overview of a crate's modules.
  •      0 cargo-multi — runs specified cargo command on multiple crates
  •      0 cargo-outdated — displays when newer versions of Rust dependencies are available, or out of date
  •      0 cargo-release — tool for releasing git-managed cargo project, build, tag, publish, doc and push
  •      0 cargo-script — lets people quickly and easily run Rust "scripts" which can make use of Cargo's package ecosystem
  •      0 cargo-testify — watches files changes, runs tests and notifies about the result with friendly OS notification
  •      0 cargo-update — cargo subcommand for checking and applying updates to installed executables
  •      0 cargo-watch — utility for cargo to compile projects when sources change
  •      0 cargo-benchcmp — A utility to compare Rust micro-benchmarks
  •      0 Cargo — the Rust package manager
  • CMake
  • Github actions
  • Webpack

Debugging

  • GDB
    •  35829 rust-gdb
    •   6528 gdbgui — Browser based frontend for gdb to debug C, C++, Rust, and go.
  • LLDB
  • rr
    •   4027 rr — rr is a lightweight tool for recording and replaying execution of applications

Deployment

Embedded

Rust Embedded

  • Cross compiling
    •   1169 japaric/rust-cross — everything you need to know about cross compiling Rust programs
    •    599 japaric/xargo — effortless cross compilation of Rust programs to custom bare-metal targets like ARM Cortex-M
  • Raspberry Pi
  • Arduino

FFI

See also Foreign Function Interface, The Rust FFI Omnibus (a collection of examples of using code written in Rust from other languages) and FFI examples written in Rust.

IDEs

See also Are we (I)DE yet? and Rust Tools.

Pattern recognition

  •     15 sfikas/rusteval — A tool used to evaluate the output of retrieval algorithms Build Status

Profiling

Services

  •     99 deps.rs — Detect outdated or insecure dependencies
  •      0 docs.rs — Automatic documentation generation of crates

Static analysis

[assert, static]

  •      0 static_assertions — Compile-time assertions to ensure that invariants are met Build Status

Testing

[testing]

  •    766 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
  •    753 rust-fuzz/afl.rs — A Rust fuzzer, using AFL
  •     35 AlKass/polish — Mini Testing/Test-Driven Framework Build Status Crates Package Status
  •      0 quickcheck — A Rust implementation of QuickCheck
  •      0 mockito — HTTP mocking
  •      0 speculate — An RSpec inspired minimal testing framework for Rust
  •      0 mutagen — A source-level mutation testing framework (nightly only)
  •      0 tarpaulin — A code coverage tool designed for Rust
  •      0 proptest — property testing framework inspired by the Hypothesis framework for Python

Transpiling

  •   1934 jameysharp/corrode — A C to Rust translator written in Haskell.
  •    560 immunant/c2rust — C to Rust translator and cross checker built atop Clang/LLVM. Build Status

Libraries

Artificial Intelligence

Genetic algorithms

  •     51 m-decoster/RsGenetic — Genetic Algorithm library in Rust. In maintenance mode.
  •     41 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).
  •     35 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.
  •     22 innoave/genevo — Execute genetic algorithm (GA) simulations in a customizable and extensible way.
  •      7 yurytsoy/revonet — Rust implementation of real-coded GA for solving optimization problems and training of neural networks.
  •      5 mneumann/evo-rs — Evolutionary Algorithm Library for Rust. Without changes for 3 years.

Machine learning

[machine learning]

See also About Rust’s Machine Learning Community.

Astronomy

[astronomy]

Asynchronous

  •   2984 mio — MIO is a lightweight IO library for Rust with a focus on adding as little overhead as possible over the OS abstractions
  •   2583 rust-lang-nursery/futures-rs — Zero-cost futures in Rust Travis CI Build Status
  •    601 Xudong-Huang/may — rust stackful coroutine library
  •    415 zonyitoo/coio-rs — A coroutine I/O library with a working-stealing scheduler
  •    113 dpc/mioco — Scalable, coroutine-based, asynchronous IO handling library Travis CI Build Status
  •     41 TeaEntityLab/fpRust — Monad/MonadIO, Handler, Coroutine/doNotation, Functional Programming features for Rust Travis CI Build Status

Audio

[audio]

Authentication

Automotive

Bioinformatics

  •      0 Rust-Bio — bioinformatics libraries in Rust.

Caching

Concurrency

Cloud

Command-line

Compression

Computation

Configuration

Cryptography

[crypto, cryptography]

Database

[database]

Data processing

  •   1126 weld-project/weld — High-performance runtime for data analytics applications
  •    797 bluss/ndarray — N-dimensional array with array views, multidimensional slicing, and efficient operations
  •     94 kernelmachine/utah — Dataframe structure and operations in Rust

Data structures

Data visualization

Date and time

[date, time]

Distributed systems

Email

[email, imap, smtp]

Encoding

[encoding]

Filesystem

[filesystem]

Game development

See also Are we game yet?

Geospatial

[geo, gis]

Graphics

[graphics]

Graph processing

GUI

[gui]

Image processing

Language specification

  •     50 shnewto/bnf — A library for parsing Backus–Naur form context-free grammars.

Logging

[log]

  •    684 slog-rs/slog — Structured, composable logging for Rust Build Status
  •    536 rust-lang-nursery/log — Logging implementation for Rust Build Status
  •    234 sfackler/log4rs — highly configurable logging framework modeled after Java's Logback and log4j libraries Build Status

Macro

  • cute
    •    162 mattgathu/cute — Macro for Python-esque list comprehensions in Rust. Build Status
  • hado
    •     33 ludat/hado-rs — A little macro for writing haskell-like do expressions without too much ceremony

Markup language

Mobile

Geal/rust_on_mobile

  • Android
  • iOS
    •    144 TimNN/cargo-lipo — A cargo lipo subcommand which automatically creates a universal library for use with your iOS application.
    •     40 vhbit/ObjCrust — using Rust to create an iOS static library
  • Pebble
    •     42 andars/pebble.rs — A crate that allows Rust to be used to develop Pebble applications.

Network programming

Parsing

Packaging formats

Peripherals

Platform specific

Scripting

[scripting]

  •   1670 gluon-lang/gluon — A small, statically-typed, functional programming language
  •    797 PistonDevelopers/dyon — A rusty dynamically typed scripting language
  •    419 murarth/ketos — A Lisp dialect functional programming language serving as a scripting and extension language for rust
  •    341 jonathandturner/rhai — A tiny and fast embedded scripting language resembling a combination of JS and Rust
  •      0 moss — A dynamically typed scripting language

Template engine

  • Handlebars
  • HTML
    •    746 Keats/tera — template engine based on Jinja2 and the Django template language.
    •    688 djc/askama — template rendering engine based on Jinja
    •    534 lfairy/maud — compile-time HTML templates
    •    150 Stebalien/horrorshow-rs — compile-time HTML templates
    •    101 kaj/ructe — HTML template system for Rust
  • Mustache
  •      9 tailhook/marafet — Compiler for Jade-like template language to cito.js-based virtual dom

Text processing

Text search

Virtualization

Web programming

See also Are we web yet? and Rust web framework comparison.

  • Client-side / WASM
    •      0 cargo-web — A Cargo subcommand for the client-side Web Build Status
    •      0 stdweb — A standard library for the client-side Web Build Status
    •      0 yew — Rust framework for making client web apps
  • HTTP Client
  • HTTP Server
    •   6965 Rocket — Rocket is web framework for Rust (nightly) with a focus on ease-of-use, expressability, and speed
    •   5354 Iron — A middleware-based server framework
    •   4580 hyperium/hyper — an HTTP implementation
    •   3795 actix/actix-web — A lightweight async web framework for Rust with websocket support
    •   2448 Nickel — inspired by Express
    •   1229 Gotham — A flexible web framework that does not sacrifice safety, security or speed.
    •    868 Ogeon/rustful — A RESTful web framework for Rust
    •    821 housleyjk/ws-rs — lightweight, event-driven WebSockets for Rust
    •    780 vi/websocat — CLI for interacting with WebSockets, with functionality of Netcat, Curl and Socat.
    •    581 carllerche/tower-web [tower-web] — A fast, boilerplate free, web framework for Rust
    •    569 Rustless — A REST-like API micro-framework inspired by Grape and Hyper
    •    556 rustforce/sapper — A lightweight web framework built on async hyper, implemented in Rust language.
    •    443 tomaka/rouille — Web framework in Rust
    •    362 handlebars-rust — an Iron web framework middleware.
    •    331 tiny-http — Low level HTTP server library
    •    188 GildedHonour/frank_jwt — JSON Web Token implementation in Rust.
    •    154 snapview/tungstenite-rs — Lightweight stream-based WebSocket implementation for Rust.
    •     57 danclive/sincere — A micro web framework for Rust(stable) based on hyper and multithreading.
    •     45 actix/sockjs — A SockJS server for Rust
    •     45 oltdaniel/zap — A lightning fast http framework for Rust
    •     11 Saphir — A progressive web framework with low-level control, without the pain.
    •      9 vityafx/urlshortener-rs [urlshortener] — A very simple urlshortener library for Rust.
    •      4 cyderize/rust-websocket — A framework for dealing with WebSocket connections (both clients and servers)
    •      0 branca — A Pure Rust implementation of Branca for Authenticated and Encrypted API tokens.
  •      0 WebSocket
  • Miscellaneous
    •    384 utkarshkukreti/select.rs [select] — A library to extract useful data from HTML documents, suitable for web scraping. Build Status
    •    173 cargonauts — A web framework intended for building maintainable, well-factored web apps.
    •    157 pyros2097/rust-embed — A macro to embed static assets into the rust binary
  • Reverse Proxy
  • Static Site Generators

Registries

A registry allows you to publish your Rust libraries as crate packages, to share them with others publicly and privately.

  •      0 Crates - The official public registry for Rust/Cargo.
  •      0 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.

Resources

License

CC0

@alongwill
Copy link

Looks like there might be a bug with retrieving the number of stars for https://github.com/BurntSushi/ripgrep

@kvnxiao
Copy link
Author

kvnxiao commented May 5, 2019

@alongwill
This is a known issue and it is not a bug with ripgrep specifically but a limitation of entries in the list linking to crates.io, which uses a client-sided javascript framework to render the page content. Since the CLI tool to sort awesome lists by stars attempts to retrieve the HTML content for non github.com / github.io links, it is unable to fetch the links for things that require javascript rendering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment