“除了安全和性能,我们还有:
- 泛型;
- 特征;
- 代数类型;
- 函数式和命令式范式;
- 可能是世界上最好的依赖管理和构建工具,实际上解决了‘依赖地狱’问题;
- 对内嵌文档、测试和性能评测的美妙支持;
- 一个大的且正在生长的库、抽象、工具生态;
- 过程宏;
- 与已有代码的 FFI 交互性;
- 支持一打平台(更多的在路上!);
- 对开发者体验是正向的、毋庸置疑的满足。
Rust 是唯一一个下面所有框框都打勾的语言:
- 内存安全
- 类型安全
- 消除数据竞争
- 使用前编译
- 建立(并且鼓励)在零抽象之上
- 最小的运行时(无停止世界的垃圾搜集器,无 JIT 编译器,无 VM)
- 低内存占用(程序可以运行在资源受限的环境,比如小的微控制器)
- 裸金属目标(比如,写一个 OS 内核或者设备驱动,把 Rust 当一个 ‘高层’汇编器使用)”
“Rust 有一个很香的地方:它像 C 和 C++ 那样底层,因此也具有底层的这些优势(比如,控制、大小、速度等)。同时呢,它又像 Haskell 那样高层,自带令人吃惊的大量功能传承。它还是命令式的,所以容易被大多数人上手。然后它又像 Python 一样灵活,比如,' 鸭子类型(duck-typing)' 的概念出现在编译时(比如,特征限定),然后它又没有陈旧的面向对象模型以及由这个模型导致的各种出名的问题。
最后但很重要的是,还有一连串的东西被包含进来:精简短小的语法,语言提供的数目不多的特性,标准库及其一致性,高质量的文档的集成,包括对初学者和高级用户都适用的学习材料,这些都是促成因素。”
安装及工具:https://www.rust-lang.org/zh-CN/learn/get-started
📕 入门秘笈 (PDF档下载)
- Rust简介
- Rust的特点
- Rust开发环境安装
- Rust第一个程式
- Rust if语句
- Rust if in a let语句
- Rust loop回圈
- Rust for回圈
- Rust while回圈
- Rust所有权
- Rust参照和借用
- Rust切片
- Rust结构体
- Rust结构体更新语法
- Rust结构体方法语法
- Rust列举
- 匹配运算子
- Rust if let控制流程
- Rust模组
- Rust档案系统
- Rust公开函式
- Rust use关键字参照模组
- Rust向量
- Rust字串
- Rust错误处理
- Rust不可恢复的错误
- Rust可恢复的错误
- Rust泛型
- Rust Trait
- Rust生命周期
- Rust智慧指标
- Rust Box
- Rust Deref trait
- Rust Drop trait
- 标准库API文档
- Rust Reference: Rust reference 文档,有中文翻译版本 Rust语言规范 正在翻译过程中
- Rust编译错误索引:发生编译错误时,可以通过索引找到具体错误解释
- rustdoc文档:
restdoc
工具的使用文档 - Rustonomicon: rust的参考文档。但是目前并不完整,可能有遗漏和错误
- Unstable Book: 用于尚不稳定特性的文档
- Rustonomicon: unsafe rust的黑暗艺术,有中文翻译版本 Rust高级编程
- The Cargo Book: cargo使用介绍,有中文翻译版本 Cargo教程 正在进行中
- Rust Edition Guide: Rust 版本指南,传递 Rust 不同版本之间大的变更信息
- Command line apps in Rust: 在Rust中编写命令行程序
- alacritty — 跨平台、GPU 增强的终端模拟器
- AnderEnder/s3find-rs — 用于遍历 Amazon S3 层次结构的命令行实用程序,类似于 Amazon S3 的 find
- andschwa/rust-genetic-algorithm — 一种用于学术基准问题的遗传算法
- asm-cli-rust — 一个用 Rust 编写的交互式程序集外壳.
- ballista — 使用 Rust、Apache Arrow 和 Kubernetes 的分布式计算平台的 PoC!
- cloudflare/boringtun — 用户空间 WireGuard VPN 实现
- darrint/device-blocker — 通过阻止家庭 Wifi 路由器上的互联网访问来限制儿童各种移动设备的屏幕时间.
- denoland/deno — 使用 V8、Rust 和 Tokio 构建的安全 JavaScript/TypeScript 运行时
- dlecan/generic-dns-update — 使用您的 IP 地址更新 DNS 区域文件的工具
- Factotum — A system to programmatically run data pipelines
- fcsonline/drill — 受 Ansible 语法启发的 HTTP 负载测试应用程序
- Fractalide — 简单的 Rust 微服务
- habitat — 一个工具 Chef 构建、部署和管理应用程序.
- Herd — 一个实验性的 HTTP 负载测试应用程序
- intecture/api — API 驱动的服务器管理和配置工具
- ivanceras/diwata — postgresql 的数据库管理工具
- jedisct1/flowgger — 快速、简单和轻量级的数据收集器
- kbknapp/docli — 用于管理 DigitalOcean 基础设施的命令行实用程序
- kytan — 高性能点对点 VPN
- limonite — 静态博客 / 网站生成器
- linkerd/linkerd2-proxy — Kubernetes 的超轻服务网格.
- MaidSafe — 一个去中心化的平台.
- mdBook — 从 Markdown 文件创建书籍的命令行实用程序
- nicohman/eidolon — 适用于 linux 和 macosx 的无 Steam 和 drm 游戏注册表和启动器
- notty — 一种新型终端
- Pijul — 基于补丁的分布式版本控制系统
- rsign — 一个简单的命令行工具,用于生成 / 签署 / 验证旨在与 Minisign 兼容的数字签名
- Rudr — Kubernetes 实现 Open Application Model 规格
- rx — 受 Vi 启发的现代像素艺术编辑器
- Sandstorm Collections App
- Servo — 原型 Web 浏览器引擎
- tiny — 终端 IRC 客户端
- trust-dns — DNS 服务器
- updns — DNS 代理工具
- Weld — 全假 REST API 生成器
- wezterm — 一个gpu加速的跨平台终端模拟器和多路复用器
- enginesound — 用于按程序生成半逼真引擎声音的 GUI 和命令行应用程序. 具有深度配置、可变采样率和频率分析窗口.
- indiscipline/zrtstr — 用于检查立体声 wav 文件是否为仿立体声(即具有相同通道)并将此类文件转换为单声道的命令行实用程序.
- Lyriek — 一个多线程 GTK 3 应用程序,用于获取当前播放歌曲的歌词.
- Phate6660/musinfo — 从 mpd 查询音乐信息并将其显示在通知中的程序.
- Phate6660/rsmpc — mpc 的实现,但不是直接实现,因为会有一些差异.
- Phate6660/rsmpc — 用于 mpd 的 gtk 前端.
- Polaris — 音乐流媒体应用程序.
- Spotify TUI — 一个用 Rust 编写的用于终端的 Spotify 客户端.
- Spotifyd — 作为 UNIX 守护程序运行的开源 Spotify 客户端.
- Bitcoin Satoshi's Vision — 用于处理比特币 SV 的 Rust 库.
- cardano-cli — 卡尔达诺命令行界面 (CLI)
- ChainX — Polkadot 上完全去中心化的链间加密资产管理.
- CITA — 面向企业用户的高性能区块链内核.
- coinbase-pro-rs — Rust 中的 Coinbase pro 客户端,支持同步 / 异步 / websocket
- ethaddrgen — 用 Rust 制作的自定义以太坊虚地址生成器
- Grin — MimbleWimble 协议的演变
- hdwallet — BIP-32 HD 钱包相关的密钥推导实用程序.
- Holochain — 区块链的可扩展 P2P 替代方案,适用于您一直想要构建的所有分布式应用程序. 旧仓库的链接是 this 不再维护.ibc-rs - Rust 的实现 Interblockchain Communication 协议
- infincia/bip39-rs — BIP39 的 Rust 实现.
- Joystream — 一个用户管理的视频平台
- Diem — Diem 的使命是建立一个简单的全球货币和金融基础设施,为数十亿人赋能.
- Lighthouse — Rust Ethereum 2.0 客户端
- near/nearcore — 用于低端移动设备的去中心化智能合约平台.
- Nervos CKB — Nervos CKB 是一个公共的免许可区块链,是 Nervos 网络的公共知识层.
- Nimiq — Nimiq 节点的 Rust 实现
- Parity-Bitcoin — Parity 比特币客户端
- Parity-Bridge — 任何两个基于以太坊的网络之间的桥梁
- Parity-Ethereum — 快速、轻便、强大的以太坊客户端
- Parity-Zcash — Zcash 协议的 Rust 实现
- Phala-Network/phala-blockchain — 基于 Intel SGX 和 Substrate 的机密智能合约区块链
- Polkadot — 具有集中安全性的异构多链技术
- rbtc — 将 BTC 转换为任何货币,反之亦然.
- rust-cardano — Cardano 原语、助手和相关应用程序的 Rust 实现
- Substrate — 用 Rust 编写的通用模块化区块链模板
- tendermint-rs - Tendermint 区块链数据结构和客户端的 Rust 实现
- wagyu [wagyu] — 用于生成加密货币钱包的 Rust 库
- zcash — Zcash 是 “Zerocash” 协议的实现.
- YeeCo yeeroot — YeeCo yeeroot 是一个无需许可、安全、高性能和可扩展的公共区块链平台,由基于 Rust 编写的 PoW 共识的全分片技术提供支持
- indradb — 基于 Rust 的图形数据库
- Materialize - 由 Timely Dataflow 提供支持的流式 SQL 数据库:heavy_dollar_sign
- noria — 用于 Web 应用程序后端的动态变化、部分状态的数据流
- Lucid — High performance and distributed KV store accessible through a HTTP API.
- ParityDB — 快速可靠的数据库,针对读操作进行了优化
- PumpkinDB — 事件溯源数据库引擎
- seppo0010/rsedis — Rust 中的 Redis 重新实现
- Skytable — 多模型 NoSQL 数据库
- tikv — Rust 中的分布式 KV 数据库
- sled —(测试版)现代嵌入式数据库
- TerminusDB - 开源图形数据库和文档存储
- kondrak/rust64
- Ruffle — Ruffle 是用 Rust 编程语言编写的 Adobe Flash Player 模拟器. Ruffle 使用 WebAssembly 面向桌面和 Web.
- Gekkio/mooneye-gb
- mvdnes/rboy
- NivenT/RGB
- mohanson/gameboy — 全功能跨平台 GameBoy 模拟器. 永远的男孩!
- michelhe/rustboyadvance-ng - RustboyAdvance-ng 是一款 Gameboy Advance 模拟器,具有桌面、安卓和 WebAssembly 支持.
- iamsix/oxidenes
- koute/pinky
- pcwalton/sprocketnes
- Amjad50/plastic — plastis 是一个用 Rust 构建的全功能 NES 模拟器.
- rustation-ng — 使用 Rust 的 Playstation 模拟器
- pacmancoder/rustzx
- rodrigorc/raze — 对于 WebAssembly, live version here * 虚拟男孩
- emu-rs/rustual-boy
- mohanson/i8080 — Rust 的 Intel 8080 cpu 模拟器
- lifthrasiir/angolmois-rust — 一款支持 BMS 格式的极简音乐视频游戏
- citybound - 你应得的城市模拟
- schulke-214/connect-four — 一个简单的连接四个实现.
- doukutsu-rs — 对 Cave Story 引擎的 Rust 重新实现,并进行了一些增强.
- rsaarelm/magog — Rust 中的 roguelike 游戏
- schulke-214/rsnake — 用 Rust 编写的 Snake.
- soydos — Pusoy Dos 的 wasm 实现
- cristicbz/rust-doom — Doom 的渲染器,可能会发展成为一款可玩的游戏
- Thinkofname/rust-quake — Rust 中的地震地图渲染器
- rhex — 六边形 ascii roguelike
- garkimasera/rusted-ruins - 具有像素艺术的可扩展开放世界流氓游戏
- Veloren — 一个开放世界、开源的多人体素 RPG 游戏,目前处于 alpha 开发阶段
- swatteau/sokoban-rs — 推箱子实现
- aleshaleksey/TGWM — 具有回合制机制的 RPG(正在进行中)
- ozkriff/zemeroth — 一款小型 2D 回合制六角策略游戏
- Zone of Control — 回合制六角策略游戏
- phantomion/snake_game - 用 Rust 编写的简单终端蛇游戏.
- Limeth/euclider — 实时 4D CPU 光线追踪器
- RazrFalcon/resvg — 一个 SVG 渲染库.
- ivanceras/svgbob — 将 ASCII 图转换为 SVG 图形
- RazrFalcon/svgcleaner — 整理 SVG 图形
- Twinklebear/tray_rust — 光线追踪器
- turnage/valora — 生成美术图书馆
- mikigraf/Image-Processing-CLI-in-Rust — 用于处理图像、生成直方图的 CLI.
- locka99/opcua — OPC UA 图书馆.
- slowtec/tokio-modbus - 一种 tokio-based modbus 图书馆.
- BiancoRoyal/modbus-iiot-rust — 纯锈 modbus 没有或更少依赖的库.
- timberio/vector — 高性能、日志、指标和事件路由器.
- Mnwa/gtsa — 将 gelf 消息(Graylog 的消息)代理到 Sentry 的简单解决方案
- OpenTelemetry — OpenTelemetry 提供一组 API、库、代理和收集器服务,以从您的应用程序中捕获分布式跟踪和指标. 您可以使用 Prometheus、Jaeger 和其他可观察性工具分析它们.
- nebulet/nebulet — 实现在 Ring 0 中运行的 WebAssembly“用户模式” 的微内核.
- redox-os/redox
- thepowersgang/rust_os
- tock/tock — 适用于基于 Cortex-M 的微控制器的安全嵌入式操作系统
- espanso — 一个用 Rust 编写的跨平台文本扩展器 eureka — 无需离开终端即可输入和存储您的想法的 CLI 工具
- pier-cli/pier — 用于管理(添加、搜索元数据等)所有单行程序、脚本、工具和 CLI 的中央存储库
- subilo - 持续部署代理
- kpcyrd/authoscope — 一个可编写脚本的网络认证破解器
- lethe — 安全的跨平台驱动器擦除实用程序
- arvancloud/libinjection-rs — Rust 绑定 libinjection
- ripasso — 密码管理器,与 pass 兼容的文件系统
- kpcyrd/rshijack — 一个 TCP 连接劫持者,对 shijack 进行 Rust 重写
- rustscan/rustscan — 使用此端口扫描工具使 Nmap 更快
- kpcyrd/sniffglue — 一个安全的多线程数据包嗅探器
- kpcyrd/sn0int — 半自动 OSINT 框架和包管理器
- Rust 最大中文社区论坛:https://rustcc.cn/
- 小众中文社区的翻译资料/论坛:https://learnku.com/rust
- 2021 年去哪学 Rust:https://loige.co/where-to-go-to-learn-rust-in-2021/
- Rust Cheat Sheet(Rust语法备忘单):https://cheats.rs/
- Rust 中文书架与资讯:https://budshome.com/ | https://blog.budshome.com/
- 简要而基础的 Rust 知识(适合在 Rust Book 阶段当作补充材料):https://learning-rust.github.io/
- 微软发布的 Rust 新手教程:https://docs.microsoft.com/en-us/learn/paths/rust-first-steps/
- Rust-leetcodes刷题:https://stevenbai.top/rust-leetcode/
- Rust by Example 通过例子学 Rust:https://doc.rust-lang.org/rust-by-example/index.html
- 电子书下载 :https://jp1lib.org/s/Rust