Rust

Awesome Rust

精选的Rust代码和资源列表.

如果您想贡献,请阅读 this.

Applications

也可以看看 Rust — Production 生产中运行Rust的组织.

  • alacritty —跨平台,GPU增强的终端仿真器
  • asm-cli-rust —用锈写的交互式程序集外壳.
  • linkerd/linkerd2-proxy — Kubernetes的超轻服务网格.
  • darrint/device-blocker —通过阻止家庭Wifi路由器上的互联网访问,将屏幕显示时间限制在儿童的各种移动设备上.
  • Fractalide —简单的Rust微服务
  • habitat —由创建的工具 Chef 来构建,部署和管理应用程序.
  • Herd —一个实验性的HTTP负载测试应用程序
  • jedisct1/flowgger —快速,简单,轻巧的数据收集器
  • limonite —静态博客/网站生成器
  • MaidSafe —分散的平台.
  • mdBook —一个命令行实用程序,用于从降价文件创建书籍
  • notty —一种新型的终端
  • Pijul —基于补丁的分布式版本控制系统
  • rsign —一个简单的命令行工具,用于生成/签名/验证旨在与Minisign兼容的数字签名 Codeship Status for danielrangel/rsign
  • Sandstorm Collections App
  • Servo —原型Web浏览器引擎
  • trust-dns — DNS服务器
  • kytan -高性能对等VPN

Audio

Cryptocurrencies

  • Bitcoin Satoshi's Vision —用于使用Bitcoin SV的Rust库.
  • cardano-cli — Cardano命令行界面(CLI)
  • ChainX — Polkadot上的完全去中心化的链间加密资产管理.
  • Grin — MimbleWimble协议的演变
  • hdwallet — BIP-32 HD钱包相关的密钥派生实用程序.
  • Holochain —可用于您一直想要构建的所有分布式应用程序的可扩展的P2P替代区块链的方法 Build Status
  • infincia/bip39-rs -BIP39的Rust实现.
  • Joystream —用户控制的视频平台.
  • Libra —天秤座的使命是建立一种简单的全球货币和金融基础架构,以增强数十亿人口的能力.
  • nearprotocol/nearcore —适用于低端移动设备的分散式智能合约平台.
  • Nervos CKB — Nervos CKB是公共的未经许可的区块链,是Nervos网络的常识层.
  • Parity-Bridge —任意两个基于以太坊的网络之间的桥梁
  • Parity-Ethereum -快速,轻巧和强大的以太坊客户端
  • Parity-Zcash -Zcash协议的Rust实现
  • Polkadot —具有集合安全性的异构多链技术
  • rust-cardano — Cardano基元,助手和相关应用程序的Rust实现
  • Substrate —用Rust编写的通用模块化区块链模板
  • wagyu -用于生成加密货币钱包的Rust库
  • zcash — Zcash是“ Zerocash”协议的实现.

Database

  • indradb —基于Rust的图形数据库
  • noria —动态更改Web应用程序后端的部分状态数据流
  • ParityDB —快速可靠的数据库,针对读取操作进行了优化

Emulators

也可以看看 crates matching keyword 'emulator'.

准将64 * kondrak/rust64 * 掌上游戏机 * Gekkio/mooneye-gb * mvdnes/rboy * NivenT/RGB * mohanson/gameboy —功能齐全的跨平台GameBoy模拟器. 永远的男孩! * NES * iamsix/oxidenes * koute/pinky * pcwalton/sprocketnes * Playstation * simias/rustation * ZX频谱 * pacmancoder/rustzx * rodrigorc/raze —对于WebAssembly, live version here 虚拟男孩 * emu-rs/rustual-boy 英特尔8080 CPU * mohanson/i8080 — Rust的英特尔8080 cpu模拟器 仿真器开发工具 * SNES * ioncodes/snesutilities -ROM分析仪/提取器

Games

也可以看看 Games Made With Piston.

Graphics

Industrial automation

Observability

Operating systems

也可以看看 A comparison of operating systems written in Rust.

Productivity

  • eureka -一个CLI工具,无需离开终端即可输入和存储您的想法

Security tools

System tools

Text editors

  • xi-editor —具有用Rust编写的后端的现代编辑器.

Text processing

  • ripgrep —结合了Silver Searcher的可用性和grep的原始速度
  • phiresky/ripgrep-all — ripgrep,但也可以搜索PDF,电子书,Office文档,zip,tar.gz等. Build Status
  • sd —直观的查找和替换CLI
  • whitfin/runiq —从未排序的输入中过滤重复行的有效方法.
  • whitfin/bytelines —将输入线作为字节片读取,以提高效率.
  • xsv — A fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)
  • Lispre/so_stupid_search -一种简单快捷的人类字符串搜索工具

Utilities

  • brycx/checkpwn —一个“我曾经被拥有”(HIBP)命令行实用程序工具,可让您轻松检查受到破坏的帐户和密码.
  • whitfin/s3-concat —一个命令行工具,用于使用灵活模式远程连接Amazon S3文件.
  • whitfin/s3-meta —一个命令行工具,用于收集有关您的Amazon S3存储桶的元数据.
  • amar-laksh/workstation —一个命令行工具,可通过使您与屏幕保持一定距离来帮助您管理工作站,并通过OPENCV在您不在时锁定屏幕!
  • fcsonline/tmux-thumbs —用Rust编写的tmux手指的闪电般快速版本,像vimium / vimperator一样复制/粘贴tmux.
  • yaa110/cb -用于管理剪贴板的命令行界面 Build Status

Video

Virtualization

Window managers

Web

Web Servers

Development tools

Build system

  • Cargo — Rust包管理器
  • cargo-benchcmp —用来比较Rust微基准的实用程序
  • cargo-bitbake —可以使用meta-rust中的类来生成BitBake食谱的商品扩展
  • cargo-cache —检查/管理/清理您的货物缓存(〜/ .cargo //$ {CARGO_HOME}),打印尺寸等
  • cargo-check —围绕“ rustc货物”的包装器--Zno-trans,如果只需要正确性检查,则对于运行更快的编译很有帮助
  • cargo-count —列出源代码计数和有关货运项目的详细信息,包括不安全的统计信息
  • cargo-deb —生成二进制Debian软件包
  • cargo-deps —构建Rust项目的依赖图
  • cargo-do -连续运行多个货运命令
  • cargo-ebuild —可以使用树内eclass生成ebuild的货物扩展
  • cargo-edit —允许您通过从命令行读取/写入Cargo.toml文件来添加和列出依赖关系
  • cargo-find 不推荐使用 —从命令行查找包装箱
  • cargo-graph —更新了cargo-dot'的fork并增加了其他功能. 无需维护,请参阅cargo-deps`
  • cargo-info —从命令行查询crates.io以获取详细信息
  • cargo-license — cargo子命令,用于快速查看所有依赖项的许可证.
  • cargo-make -Rust任务运行器和构建工具.
  • cargo-modules —一个货物插件,用于显示包装箱模块的树状概览.
  • cargo-multi -在多个箱子上运行指定的货运命令
  • cargo-outdated —当可用的新版本的Rust依赖项或已过期时显示
  • cargo-release -用于发布由git管理的货物项目,构建,标记,发布,文档和推送的工具
  • cargo-script —让人们快速轻松地运行Rust脚本,这些脚本可以利用Cargo的包裹生态系统
  • cargo-testify —通过友好的OS通知监视文件更改,运行测试并通知结果
  • cargo-tree –货物子命令,以树状格式可视化条板箱的依存关系图 CircleCI
  • cargo-update — cargo子命令,用于检查更新并将其应用于已安装的可执行文件
  • cargo-watch —实用程序,用于货源变化时货物编译项目
  • liuchong/cargo-x —一个非常简单的第三方cargo子命令,用于执行自定义命令
  • dtolnay/cargo-expand —在源代码中扩展宏
  • CMake
  • Devolutions/CMakeRust —对于将Rust库集成到CMake项目中很有用
  • SiegeLord/RustCMake —一个示例项目,显示CMake与Rust的用法
  • Github动作
  • icepuma/rust-action —锈github动作
  • Webpack
  • Ralvke/rust-loader — Webpack Rust加载程序(wasm)

Debugging

Deployment

*码头工人 * emk/rust-musl-builder —用于使用musl-libc和musl-gcc编译静态Rust二进制文件的Docker映像,以及有用的C库的静态版本 * kpcyrd/mini-docker-rust —一个非常小的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引擎 * DenisKolodin/rust-app-engine — App Engine Rust boilerplate * Heroku * emk/heroku-buildpack-rust — Heroku上用于Rust应用程序的构建包

Embedded

Rust Embedded

交叉编译 * japaric/rust-cross —关于交叉编译Rust程序需要了解的一切 * japaric/xargo -轻松地将Rust程序交叉编译到定制的裸机目标(如ARM Cortex-M) 树莓派 * Ogeon/rust-on-raspberry-pi —有关如何为Raspberry Pi交叉编译Rust项目的说明. * Arduino * avr-rust/ruduino ` t Arduino Uno的可重用组件.

FFI

也可以看看 Foreign Function Interface, The Rust FFI Omnibus (使用其他语言使用Rust编写的代码的示例集合)和 FFI examples written in Rust.

IDEs

也可以看看 Are we (I)DE yet?Rust Tools.

Pattern recognition

Profiling

Services

  • deps.rs —检测过时或不安全的依赖关系
  • docs.rs -自动生成包装箱文档

Static analysis

[assert, static]

Testing

[testing]

  • mockiato -Rust 2018的严格而友好的模拟库
  • mutagen —源级别的突变测试框架(仅每晚)
  • AlKass/polish —小型测试/测试驱动框架 Build Status Crates Package Status
  • proptest -受到 Hypothesis Python框架
  • quickcheck —的Rust实现 QuickCheck
  • mockito — HTTP模拟
  • speculate — RSpec启发的Rust最小测试框架
  • tarpaulin —专为Rust设计的代码覆盖工具
  • trust —一个Travis CI和AppVeyor模板,可以在5种架构上测试您的Rust板条箱,并针对Linux,macOS和Windows发布其二进制版本

Transpiling

Libraries

Artificial Intelligence

Genetic algorithms

  • Martin1887/oxigen —快速,并行,可扩展和适应性强的遗传算法库. 使用该库的示例仅在几秒钟内并使用不到1 MB的内存即可解决N = 255的N Queens问题.
  • 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 -Rust实编码GA的实现,用于解决优化问题和神经网络训练.

Machine learning

[machine learning]

也可以看看 About Rust’s Machine Learning Community.

Astronomy

[astronomy]

  • fitsio —适合包装cfitsio的接口库

Asynchronous

  • rustasync/runtime -运行时不可知的API,旨在使异步感觉像其stdlib的一部分 Crates.io Build status

Audio

[audio]

Authentication

Automotive

Bioinformatics

  • Rust-Bio — Rust中的生物信息学库.

Caching

Concurrency

Cloud

Command-line

参数解析 * clap-rs [clap]-一个易于使用的功能齐全的命令行参数解析器 * docopt/docopt.rs [docopt] —的Rust实现 DocOpt * TeXitoi/structopt [structopt] —通过定义结构来解析命令行参数 * killercup/quicli [quicli] —在Rust中快速构建出色的CLI应用程序 以人为本的设计 * rust-cli/human-panic [human-panic] —人类的恐慌讯息 行编辑器 * srijs/rust-copperline [copperline] —纯Rust命令行编辑库 * MovingtoMars/liner [liner] —提供类似readline功能的库 * murarth/linefeed [linefeed] —可配置的,可扩展的交互式线阅读器 * kkawakam/rustyline [rustyline] — Rust中的readline实现 管道 * imp/pager-rs [pager] —通过外部寻呼机输出输出 * hniksic/rust-subprocess [subprocess] —与外部管道交互的设施 * oconnor663/duct.rs [duct] —子流程管道和IO重定向的构建器 * philippkeller/rexpect [rexpect] —自动执行交互式应用程序,例如ssh,ftp,passwd等 进展 * mitsuhiko/indicatif [indicatif] — indicate progress to users * a8m/pb [pbr]-Rust的控制台进度栏 * FGRibreau/spinners [spinners] — 60多个优雅的终端机 提示 * hashmismatch/terminal_cli.rs [terminal_cli] —构建交互式命令提示符 * starship/starship [starship]-任何shell的最小,快速,可高度自定义的提示 Build status 风格 * 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] —受启发的TUI库 blessed-contribtermui * BearLibTerminal * cfyzium/bearlibterminal [bear-lib-terminal] — BearLibTerminal 绑定 * ncurses * jeaye/ncurses-rs [ncurses] — ncurses 绑定 * ihalila/pancurses [pancurses] — curses库,支持linux和Windows 术语盒 * gchp/rustbox [rustbox] —绑定到 Termbox

Compression

Computation

Configuration

Cryptography

[crypto, cryptography]

) * steffengy/schannel-rs — Schannel的绑定(Windows本机TLS) * zebradil/rustotpony -一次性密码生成器(又名Google Authenticator,TOTP)的CLI管理器

Database

[database]

Data processing

Data structures

Data visualization

Date and time

[date, time]

Distributed systems

锑 * antimonyproject/antimony [antimony] —流处理/分布式计算平台 * Apache Hadoop * whitfin/efflux — Rust中的Easy Hadoop Streaming和MapReduce接口. * Apache Kafka * fede1024/rust-rdkafka [rdkafka] — librdkafka 绑定 * spicavigo/kafka-rust 豆茎 * schickling/rust-beanstalkdBeanstalkd 绑定 * HDFS * hyunsik/hdfs-rs — libhdfs绑定

Email

[email, imap, smtp]

Encoding

[encoding]

Filesystem

[filesystem] 运作 * 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]-零细节,注重隐私的可嵌入文件系统.

Game development

也可以看看 Are we game yet? 快板 * SiegeLord/RustAllegroAllegro 5 绑定 * Challonge * vityafx/challonge-rs [challonge ]-Challonge REST API的客户端库. 帮助组织比赛. * Corange * lucidscape/corange-rsCorange 绑定 实体组件系统(ECS) * slide-rs/specs —规格并行ECS 游戏引擎 * Amethyst —面向数据的游戏引擎 * Piston * ggez —轻巧的游戏框架,可让您以最小的摩擦制作2D游戏 * Kiss3D —用Rust编写的Keep It简单,愚蠢的3d图形引擎 * Unrust — unrust —基于纯生锈(webgl 2.0 /原生)的游戏引擎 * Vulkust — Vulkust —用Rust编写的基于Vulkan的安全,高度多线程的游戏引擎. * SDL [sdl] * brson/rust-sdl — SDL1绑定 * Rust-SDL2/rust-sdl2 — SDL2绑定 * SFML * jeremyletang/rust-sfmlSFML 绑定 * Tcod-rs * tomassedovic/tcod-rs — Rust的Libtcod绑定. 维多利亚 * VictoremWinbringer/Victorem [Victorem] — Easy UDP Game Server和UDP Client框架,用于创建简单的2D和3D在线游戏原型 * Voxlap * bbodi/rust-voxlapVoxlap 绑定

Geospatial

[geo, gis]

  • Georust —用Rust编写的地理空间工具和库
  • rust-reverse-geocoder —受https://github.com/thampiman/reverse-geocoder的启发,Rust中的一种离线离线反向地理编码器

Graphics

[graphics]

*字体 * redox-os/rusttype —像FreeType这样的库的纯Rust替代品 * OpenGL [opengl] * brendanzab/gl-rs * glium/glium — Rust语言的安全OpenGL包装器. * Kiss3d -绘制简单的几何图形并与它们一起使用 * PistonDevelopers/glfw-rs * glutin —锈替代 GLFW * PDF * kaj/rust-pdf * fschutt/printpdf — PDF写作库 * J-F-Liu/lopdf — PDF文档操作 * WASM-PDF –使用JavaScript和WASM(WebAssembly)生成PDF文件 * Vulkan [vulkan] * vulkano [vulkano] —

Graph processing

GUI

[gui]

Image processing

Language specification

Logging

[log]

Macro

*可爱 * mattgathu/cute — Rust中用于Python式列表推导的宏. Build Status * hado * ludat/hado-rs —无需太多仪式即可编写类似haskell的do表达式的宏

Markup language

Mobile

Geal/rust_on_mobile

安卓 * rust-windowing/android-rs-glue -Rust和Android之间的粘合 * iOS * TimNN/cargo-lipo — cargo lipo子命令,可自动创建用于您的iOS应用程序的通用库. * vhbit/ObjCrust -使用Rust创建iOS静态库 卵石 * andars/pebble.rs —一个允许使用Rust来开发Pebble应用程序的板条箱. * Android / iOS * i-schuetz/rust_android_ios —一个示例,分别使用rust-swig和cbindgen将共享的Rust lib用于Android和iOS.

Network programming

Parsing

Packaging formats

Peripherals

Platform specific

*跨平台 * svartalf/rust-battery —有关笔记本电池的跨平台信息

Scripting

[scripting]

Template engine

车把 * sunng87/handlebars-rust —具有继承功能,自定义帮助程序支持的车把模板引擎. * HTML * lfairy/maud —编译时HTML模板 * Stebalien/horrorshow-rs —编译时HTML模板 * kaj/ructe — Rust的HTML模板系统 * Keats/tera —基于Jinja2和Django模板语言的模板引擎. * djc/askama —基于Jinja的模板渲染引擎 小胡子 * rustache/rustache * tailhook/marafet —类似于Jade的模板语言到基于cito.js的虚拟dom的编译器

Text processing

Unsafe

  • zerocopy -用于将任意字节序列安全地重新解释为本地Rust类型的实用程序

Virtualization

Web programming

也可以看看 Are we web yet?Rust web framework comparison.

客户端/ WASM * cargo-web —客户端Web的Cargo子命令 Build Status * seed -用于创建Web应用程序的Rust框架 Build Status * stdweb —客户端Web的标准库 Build Status * yew —用于制作客户端Web应用程序的Rust框架 * HTTP客户端 * alexcrichton/curl-rustlibcurl 绑定 * hyperium/hyper — HTTP实现 * seanmonstar/reqwest —符合人体工程学的Rust客户端. * DoumanAsh/yukikaze —美丽优雅的Yukikaze是基于hyper的小型HTTP客户端库. * HTTP服务器 * actix/actix-web — A lightweight async web framework for Rust with websocket support * branca —用于身份验证和加密的API令牌的Branca的Pure Rust实现. * Gotham —不会牺牲安全性,安全性或速度的灵活Web框架. * hyperium/hyper — HTTP实现 * GildedHonour/frank_jwt — Rust中的JSON Web令牌实现. * handlebars-rust — Iron Web框架中间件. * Iron —基于中间件的服务器框架 * Juniper — Rust的GraphQL服务器库
* Nickel -受启发 Express * Ogeon/rustful — Rust的RESTful Web框架 * Rocket —火箭是Rust的Web框架(每晚),重点是易用性,可表达性和速度 * Rustless —受REST启发的类似REST的API微框架 GrapeHyper * Saphir —具有低级控制权的渐进式Web框架,轻松自如. * rustforce/sapper —一种轻量级的Web框架,该框架基于Rust语言实现的异步超同步. * tiny-http —低级HTTP服务器库 * tomaka/rouille — Rust中的Web框架 * carllerche/tower-web [tower-web] —用于Rust的快速,免费的Web框架 * danclive/sincere —基于超线程和多线程的Rust(stable)微型Web框架. * oltdaniel/zap — Rust的闪电般快速的http框架 * WebSocket * actix/sockjs - 一种 SockJS Rust的服务器 * cyderize/rust-websocket —用于处理WebSocket连接(客户端和服务器)的框架 * housleyjk/ws-rs —用于Rust的轻量级,事件驱动的WebSocket * snapview/tungstenite-rs —用于Rust的基于轻量级流的WebSocket实现. * vi/websocat -用于与WebSocket交互的CLI,具有Netcat,Curl和Socat的功能. * vityafx/urlshortener-rs [urlshortener] —一个非常简单的用于Rust的urlshortener库.
杂项 * cargonauts —用于构建可维护的,结构合理的Web应用程序的Web框架. * pyros2097/rust-embed —将静态资产嵌入rust二进制文件的宏 * utkarshkukreti/select.rs [select] —一个库,可从HTML文档中提取有用的数据,适用于Web抓取. Build Status * pwoolcoc/soup [soup]-一个类似于Pythons BeautifulSoup的库,旨在快速,轻松地操作和查询HTML文档. Build Status 反向代理 * sozu-proxy/sozu [sozu] — HTTP反向代理. Build Status 静态网站生成器 * getzola/zola [zola]-具有内置功能的自觉静态站点生成器. Build Status * cobalt-org/cobalt.rs —用Rust编写的静态站点生成器 * FuGangqiang/mdblog.rs — Markdown文件中的静态站点生成器. * leven-the-blog/leven [leven] —一个简单的并行化博客生成器.

Registries

通过注册表,您可以将Rust库发布为板条箱程序包,以与其他人私下共享.

  • Crates -Rust / Cargo的官方公共注册表.
  • Cloudsmith 💲 -全面管理的包裹管理SaaS,为公共和私人货物/铁锈登记处(以及许多其他服务)提供一流的支持. 具有慷慨的免费层,并且对于开源也完全免费.

Resources

基准 * TeXitoi/benchmarksgame-rs —的Rust实现 The Computer Language Benchmarks Game 甲板和演示 * Learning systems programming with Rust —提出者 Julia Evans @ Rustconf 2016. * Shipping a Solid Rust Crate —提出者 Michael Gattozzi @ RustConf 2017年 * Rust: Hack Without Fear! —提出者 Nicholas Matsakis @ C ++现在2018 学习 * Programming Community Curated Resources for Learning Rust —编程社区投票推荐的推荐资源列表. * exercism.io —编程练习,可帮助您学习Rust中的新概念. * Idiomatic Rust —教了惯用的Rust的经过同行评审的文章/演讲/回购合集. * Learning Rust With Entirely Too Many Linked Lists —通过实现几种不同类型的列表结构,深入探索Rust的内存管理规则. * Rust by Example * Rust Cookbook —收集了一些简单的示例,这些示例演示了使用Rust生态系统的板条箱完成常见编程任务的良好实践. * Rust in Motion —的视频系列 Carol NicholsJake Goulding (已付费) * rust-learning -学习Rust的有用资源的集合 * Rustlings -小练习,使您习惯于阅读和编写Rust代码 * stdx -首先了解这些板条箱,作为std的扩展 * University of Pennsylvania's Comp Sci Rust Programming Course * Build a language VM 播客 * New Rustacean —关于学习Rust的播客 * Rustacean Station -一个社区项目,用于为Rust创建播客内容 * Rusty Spike —关于Rust的所有新闻 * RustCamp 2015 Talks * Rust Design Patterns * Rust Guidelines * RustBooks — RustBooks列表 * Rust Subreddit —一个subreddit(论坛),其中发布和讨论与锈相关的问题,文章和资源

License

CC0