MichaelFu

好记性不如烂笔头

Programming Rust

Programming Rust

这本书是 O'Reilly 出版社的,对本书进行了学习和记录,内容大体上没有遗漏,只是对一些描述做了精简,出版社书籍链接。文档源码 gamelife1314/gamelife1314.github.io

表述有误的地方请评论或者提 pr 指正。

  1. 《第3章-Fundamental Types》
  2. 《第4章-Ownership and Moves》
  3. 《第5章-References》
  4. 《第6章-Expressions》
  5. 《第7章-Error Handling》
  6. 《第8章-Crates and Modules》
  7. 《第9章-Structs》
  8. 《第10章-Enums and Patterns》
  9. 《第11章-Traits and Generics》
  10. 《第12章-Operator Overloading》
  11. 《第13章-Utility Traits》
  12. 《第14章-Closures》
  13. 《第15章-Iterators》
  14. 《第16章-Collections》
  15. 《第17章-Strings and Text》
  16. 《第18章-Input and Output》
  17. 《第19章-Concurrency》
  18. 《第20章-Asynchronous Programming》
  19. 《第21章-Macros》
  20. 《第22章-Unsafe Code》
  21. 《第23章-Foreign Functions》

其他文章

WEB

  • reqwest:高级 HTTP 客户端;
  • actix-webWeb 框架;
  • surf:跨平台 HTTP 客户端,简单易用;
  • rocketweb 框架;
  • axum:使用 TokioTowerHyper 构建的符合人体工程学的模块化 Web 框架;
  • dieselRustORM 框架;
  • SeaORMRustORM 框架;
  • sqlx:异步的纯 Rust 实现的 Sql 工具箱;
  • yewYew 是一个设计先进的 Rust 框架,目的是使用 WebAssembly 来创建多线程的前端 web 应用。
  • seed:创建 Web 前端应用的 Rust 框架;
  • MoonZoonRust 全栈框架;
  • comrakmarkdown 解析;

FFI

编译

协议

  • hyper:快速的 HTTP 实现;
  • tonic:原生的 grpc 客户段和服务端,支持 async/await
  • prostRustprotocol buffer 实现;
  • tungstenitewebsocket 协议实现;

测试

  • headless_chrome:一个高级的控制无头浏览器或者 Chromium 的框架;
  • thirtyfour:类似 Selenium 的自动化测试框架;
  • fantoccini:通过 WebDriver 以编程方式与网页交互的高级 API;

GUI

命令行

  • dialoguer:可以用于构建交互式命令行;
  • indicatif:用于提供友好的进度条;
  • clap
  • tuiRust 终端 UI

云原生

嵌入式

区块链

数据库

  • bonsaidbRust 写的本地数据库;

数据类型

  • fnv:基于 Fowler–Noll–Vo 算法实现的 HashMap
  • dashmapRust 中超快的并发 map

静态网站

  • mdBook:类似 gitbookRust 实现;
  • getzola:静态网站生成器;

wasmtime

  • spinSpin 用于使用 WebAssembly 构建和运行快速、安全和可组合的云微服务;
  • trunk:构建、打包以及发布 wasm 应用;
  • wasmerWasmer 提供基于 WebAssembly 的超轻量级容器,其可以在任何地方运行:从桌面到云、以及 IoT 设备,并且也能嵌入到 任何编程语言中;
  • wasmtime:单独的 wasm 运行时;
  • WasmEdge:WasmEdge 是一个轻量级、高性能和可扩展的 WebAssembly 运行时,适用于云原生、边缘和去中心化应用程序。它为无服务器应用程序、嵌入式功能、微服务、智能合约和物联网设备提供支持;
  • rustwasmrustwasm 生态系统;
  • wasm-packwasm 工作流工具;
  • wasm-bindgen:提供Wasm 模块和 JavaScript 之间级交互的高级 API
  • bytecodealliance

机器学习

日志监控

并发异步

  • smol:一个小而快的异步运行时;
  • rayon:计算密集型任务的任务分解;
  • tokioTokio 是一个事件驱动的非阻塞 I/O 平台,用于使用 Rust 编程语言编写异步应用程序。
  • actixRustactor 框架;
  • bastion:高可用分布式容错运行时;
  • waker_fn:转换闭包为 waker
  • crossbeam:提供很多用于并发编程的工具,例如线程阻塞;
  • async_trait:提供了一个宏,可以在 trait 中包含异步的方法;
  • futures-lite:完全兼容 futures,提供了 pin!

其他 crate

  • thiserror:自动派生标准库中的 std::error::Error
  • anyhow:提供了 anyhow::Result<T> 用于任何可能失败返回错误的函数;
  • lazy_static:可以用于初始化全局可变静态变量;
  • [once_cell`](https://crates.io/crates/once_cell):`once_cell`提供了`unsync::OnceCell`和`sync::OnceCell`这两种`Cell`,用来存储堆上的信息,并且具有最多只能赋值一次的特性;
  • unicode-width:获取 Unicode 字符宽度;
  • enum_primitive:提供宏能自动从数字转换成枚举;
  • serde_jsonjson 序列化;
  • argonautica:使用 Argon2 hashing algorithm 进行密码 hash
  • parking_lot:提供了比标准库更快的 Mutex 等;
  • itertools:扩展了内置的 Iterator,提供了更多的迭代适配器方法;
  • bytes:处理二进制内容的库;
  • colored:在终端中添加颜色的最简单方法;
  • tabled:以表格的形式输出结构体和枚举;
  • chronoRust 的日期和时间处理库;
  • nom:解析器组合库;
  • rusoto_coreRust 实现的 AWS SDK
  • polars:用于 RustPython 快速的 DataFrame 库;
  • pprof-rs:借助 backtrace-rs 实现的 Rust CPU 分析器;

学习资料

在线工具

0%