Skip to main content

Rust: libs

📅 2026-03-31 ✏️ 2026-03-31 CS RUST
No related notes

1 · Rust libs#

1.1 · 常用第三方 crate#

Rust 标准库故意保持小巧(“小标准库哲学”),大量能力由社区 crate 提供。

https://ohadravid.github.io/posts/2024-12-state-of-the-crates

1.1.1 · 异步运行时 & 网络

crate用途
tokio异步运行时,事实标准
axumHTTP 服务器(tokio 团队出品,基于 tower)
reqwestHTTP 客户端(建议用 rustls 后端避免 OpenSSL)
tonic / prostgRPC 服务端/客户端 + protobuf
tower / tower-http中间件抽象层(超时、限流、认证等)

1.1.2 · 序列化

crate用途
serde / serde_json序列化/反序列化框架 + JSON
bincode紧凑二进制格式(配合 serde)
tomlTOML 配置文件解析
serde_yamlYAML 解析
serde_qsquerystring 解析
humantime-serde人类可读的 duration("3m" → 180s)

1.1.3 · 错误处理

crate用途
thiserror定义错误类型(derive Error)
anyhow应用做错误处理(.context() 附加上下文)

1.1.4 · CLI#

crate用途
clap功能丰富的命令行解析
argh轻量命令行解析(Google 出品)

1.1.5 · 日志 & 可观测

crate用途
tracing / tracing-subscriber结构化日志 + 分布式追踪
prometheusPrometheus 指标采集
env_logger简单的基于环境变量的日志

1.1.6 · 数据库

crate用途
sqlx异步 SQL(编译期检查查询)
sea-orm / sea-query异步 ORM + 查询构建器
diesel同步 ORM,编译期安全

1.1.7 · 测试

crate用途
rstest参数化测试 + fixture(类似 pytest)
criterion基准测试
approx浮点近似比较
testcontainers用 Docker 容器做集成测试

1.1.8 · 时间 & ID#

crate用途
chrono日期时间处理(UTC 为主)
jiff更完善的时区支持(新秀)
uuidUUID 生成与解析

1.1.9 · 并发 & 数据结构

crate用途
rayon数据并行(并行迭代器)
dashmap并发 HashMap(分片锁)
papaya无锁并发 HashMap
crossbeam并发原语(channel、epoch GC 等)
parking_lot更快的 Mutex/RwLock

1.1.10 · 构建 & 宏

crate用途
bon为 struct 自动生成 Builder
strum枚举增强(EnumIter、EnumString 等)
darling编写 proc macro 时解析属性
derivative自定义 derive(如隐藏敏感字段的 Debug)

1.1.11 · 其他常用

crate用途
regex正则表达式
rand随机数生成
bytes高效字节缓冲区(网络编程常用)
itertools迭代器扩展方法
rustc-hash更快的非加密 HashMap hasher
tikv-jemallocatorjemalloc 分配器(减少内存碎片)
image图像处理
ndarray多维数组(Rust 的 numpy)
dotenvy加载 .env 文件(dotenv 的维护分支)