1
0
mirror of https://github.com/rust-unofficial/awesome-rust.git synced 2024-12-07 11:13:18 +02:00
awesome-rust/README.md
2019-02-20 14:53:42 +01:00

155 KiB

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).

Audio

  • 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

  • nearprotocol/nearcore — decentralized smart-contract platform for low-end mobile devices.
  • ethaddrgen — Custom Ethereum vanity address generator made in Rust
  • coinbase-pro-rs — Coinbase pro client in Rust, supports sync/async/websocket
  • Grin — Evolution of the MimbleWimble protocol
  • Substrate — Generic modular blockchain template written in Rust
  • Polkadot — Heterogeneous multi‑chain technology with pooled security
  • Parity-Ethereum — Fast, light, and robust Ethereum client
  • Parity-Bridge — Bridge between any two ethereum-based networks
  • Parity-Bitcoin — The Parity Bitcoin client
  • Parity-Zcash — Rust implementation of the Zcash protocol
  • ArgusObserver/wagu [wagu] — Generate a wallet for any cryptocurrency
  • rust-cardano — Rust implementation of Cardano primitives, helpers, and related applications
  • cardano-cli — Cardano Command Line Interface (CLI)
  • Nervos CKB - Nervos CKB is a public permissionless blockchain, the common knowledge layer of Nervos network.
  • ChainX - Fully Decentralized Interchain Crypto Asset Management on Polkadot.
  • hdwallet - BIP-32 HD wallet related key derivation utilities.

Database

  • indradb/indradb — Rust based graph database
  • Mentat — Project Mentat is a persistent, embedded knowledge base. It draws heavily on DataScript and Datomic. Mentat is intended to be a flexible relational (not key-value, not document-oriented) store that makes it easy to describe, grow, and reuse your domain schema.
  • 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

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

  • simeg/eureka [eureka] — a CLI tool to input and store your ideas without leaving the terminal

Security tools

System tools

Text editors

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

Text processing

  • BurntSushi/ripgrep — combines the usability of The Silver Searcher with the raw speed of grep
  • chmln/sd [sd] -Intuitive find & replace CLI
  • BurntSushi/xsv — a fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)
  • TankerHQ/ruplacer — Find and replace text in source files
  • 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.

Utilities

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

Video

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

Virtualization

Window managers

Web

Web Servers

  • thecoshman/http — Host These Things Please — a basic http server for hosting a folder fast and simply

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
  • 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 in mod, use and extern crate statements at GitHub.
  • ptags — A parallel universal-ctags wrapper for git repository Build Status
  • 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
  • artifact — the design doc tool made for developers Build Status
  • semantic-rs — automatic crate publishing
  • fw — workspace productivity booster
  • tinyrick a basic task dependency tool emphasizing Rust functions over raw shell commands.

Build system

Debugging

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

Deployment

Embedded

Rust Embedded

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

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

Profiling

Static analysis

[assert, static]

Testing

[testing]

Transpiling

Services

  • deps.rs - Detect outdated or insecure dependencies
  • docs.rs - Automatic documentation generation of crates

Libraries

Artificial Intelligence

Genetic algorithms

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

Machine learning

[machine learning]

See also About Rust’s Machine Learning Community.

Astronomy

[astronomy]

Asynchronous

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

Audio

[audio]

Authentication

Automotive

Bioinformatics

  • Rust-Bio — bioinformatics libraries in Rust.

Caching

Concurrency

Cloud

Command-line

Compression

Computation

Configuration

Cryptography

[crypto, cryptography]

Database

[database]

Data processing

  • 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

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

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

Logging

[log]

Macro

  • cute
    • mattgathu/cute — Macro for Python-esque list comprehensions in Rust. Build Status
  • hado
    • 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
    • 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

Parser

Packaging formats

Platform specific

Scripting

[scripting]

  • 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
  • JohnBSmith/moss [moss] — A dynamically typed scripting language
  • jonathandturner/rhai — A tiny and fast embedded scripting language resembling a combination of JS and Rust

Template engine

Text processing

Virtualization

Web programming

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

Peripherals

Resources

License

CC0