1 Web开发
1.1 Web框架
01.Axum框架
a.基础特性
基于tokio
示例:use axum::Router;
类型安全
高性能
b.路由定义
Router::new()
示例:.route("/", get(handler))
链式调用
清晰结构
c.处理器
async fn handler
示例:提取器模式
类型安全
自动解析
d.中间件
Layer系统
示例:tower中间件
组合灵活
功能强大
02.Actix-web框架
a.Actor模型
基于actix
示例:高并发
消息驱动
成熟稳定
b.路由系统
宏定义
示例:#[get("/")]
简洁语法
类型安全
c.提取器
Path、Query、Json
示例:自动解析
类型安全
错误处理
d.中间件
wrap方法
示例:日志、认证
灵活组合
功能丰富
03.Rocket框架
a.声明式路由
属性宏
示例:#[get("/hello/<name>")]
简洁优雅
类型安全
b.请求守卫
自动验证
示例:认证、授权
类型系统
编译检查
c.状态管理
State<T>
示例:共享状态
类型安全
并发安全
d.模板引擎
内置支持
示例:Tera、Handlebars
类型安全
易于使用
04.框架选择
a.Axum
现代简洁
示例:tokio生态
类型安全
推荐使用
b.Actix-web
高性能
示例:成熟稳定
功能丰富
生产就绪
c.Rocket
开发体验
示例:声明式
易于上手
功能完整
d.选择建议
新项目Axum
示例:性能Actix
简单Rocket
根据需求
05.Web开发基础
a.HTTP服务器
监听端口
示例:bind("127.0.0.1:3000")
异步处理
高并发
b.路由匹配
URL模式
示例:/users/:id
参数提取
类型安全
c.请求处理
提取器
示例:Json<T>
自动解析
错误处理
d.响应构建
Response类型
示例:Json、Html
状态码
头部设置
1.2 HTTP客户端
01.reqwest库
a.基础使用
异步HTTP
示例:reqwest::get(url).await
简单易用
功能丰富
b.请求构建
Client::new()
示例:.get(url).send().await
链式调用
灵活配置
c.请求体
Json、Form
示例:.json(&data)
自动序列化
类型安全
d.响应处理
text、json
示例:.json::<T>().await
自动解析
错误处理
02.高级特性
a.连接池
Client复用
示例:共享Client
性能优化
资源管理
b.超时设置
timeout方法
示例:.timeout(Duration::from_secs(30))
避免永久等待
健壮性
c.重定向
自动跟随
示例:redirect::Policy
配置策略
灵活控制
d.代理设置
Proxy配置
示例:Client::builder().proxy()
网络配置
企业环境
03.认证授权
a.Basic认证
header设置
示例:.basic_auth(user, pass)
简单认证
常用场景
b.Bearer Token
Authorization头
示例:.bearer_auth(token)
API认证
OAuth2
c.Cookie
自动管理
示例:cookie_store
会话保持
状态管理
d.自定义头
header方法
示例:.header("X-API-Key", key)
灵活配置
API集成
04.错误处理
a.Result类型
reqwest::Result
示例:处理网络错误
类型安全
错误传播
b.状态码检查
status方法
示例:.error_for_status()
HTTP错误
业务逻辑
c.超时错误
timeout处理
示例:重试机制
健壮性
用户体验
d.重试策略
自动重试
示例:指数退避
临时故障
可用性
05.最佳实践
a.复用Client
连接池
示例:全局Client
性能优化
资源管理
b.超时设置
避免永久等待
示例:合理超时
系统稳定
用户体验
c.错误处理
完整处理
示例:网络、解析
健壮性
日志记录
d.测试
mock服务
示例:wiremock
单元测试
集成测试
1.3 模板引擎
01.Tera模板
a.基础语法
Jinja2风格
示例:{{ variable }}
简单易用
功能丰富
b.控制结构
if、for
示例:{% for item in items %}
逻辑控制
列表渲染
c.过滤器
内置过滤器
示例:{{ name | upper }}
数据转换
格式化
d.继承
extends、block
示例:模板复用
DRY原则
维护性
02.Askama模板
a.编译期检查
类型安全
示例:#[derive(Template)]
编译期错误
性能优化
b.语法
类Jinja2
示例:{{ self.name }}
简洁清晰
易于学习
c.集成
框架集成
示例:Axum、Actix
无缝使用
类型安全
d.性能
零成本
示例:编译期生成
高性能
无运行时
03.Handlebars
a.语法
{{}}标记
示例:{{name}}
简单直观
跨语言
b.Helper
自定义helper
示例:扩展功能
灵活强大
代码复用
c.部分模板
partial
示例:组件复用
模块化
维护性
d.使用场景
简单模板
示例:邮件、报告
易于使用
跨平台
04.选择建议
a.Askama
类型安全
示例:编译期检查
性能最佳
推荐使用
b.Tera
功能丰富
示例:复杂模板
灵活强大
易于使用
c.Handlebars
简单场景
示例:跨语言
兼容性
易于迁移
d.根据需求
性能Askama
示例:功能Tera
简单Handlebars
实际测试
1.4 数据库访问
01.SQLx库
a.编译期检查
宏验证SQL
示例:sqlx::query!
类型安全
编译期错误
b.异步支持
完全异步
示例:.fetch_one(&pool).await
高性能
tokio集成
c.连接池
Pool管理
示例:PgPool::connect()
资源复用
并发控制
d.数据库支持
PostgreSQL、MySQL、SQLite
示例:跨数据库
统一API
灵活选择
02.Diesel ORM
a.类型安全
编译期检查
示例:schema定义
强类型
无SQL注入
b.查询构建
DSL语法
示例:users.filter(id.eq(1))
链式调用
可读性
c.迁移
schema管理
示例:diesel migration
版本控制
团队协作
d.性能
零成本抽象
示例:编译优化
高性能
类型安全
03.SeaORM
a.异步ORM
完全异步
示例:Entity::find()
现代设计
高性能
b.实体定义
derive宏
示例:#[derive(DeriveEntityModel)]
简洁代码
类型安全
c.关系映射
一对多、多对多
示例:Related trait
关系处理
查询优化
d.迁移
schema管理
示例:sea-orm-cli
版本控制
自动化
04.选择建议
a.SQLx
灵活SQL
示例:复杂查询
编译检查
推荐使用
b.Diesel
类型安全
示例:同步场景
成熟稳定
功能丰富
c.SeaORM
异步ORM
示例:现代项目
易于使用
活跃开发
d.根据需求
SQL控制SQLx
示例:ORM用Diesel/SeaORM
性能测试
团队熟悉度
05.数据库最佳实践
a.连接池
复用连接
示例:配置大小
性能优化
资源管理
b.事务处理
ACID保证
示例:begin().await
数据一致性
错误回滚
c.查询优化
索引使用
示例:explain分析
性能提升
避免N+1
d.错误处理
数据库错误
示例:约束违反
业务逻辑
用户反馈
1.5 WebSocket
01.tokio-tungstenite
a.服务端
accept连接
示例:accept_async(stream).await
异步处理
高并发
b.客户端
connect连接
示例:connect_async(url).await
双向通信
实时数据
c.消息处理
Message类型
示例:Text、Binary
协议支持
灵活处理
d.关闭连接
优雅关闭
示例:close frame
资源清理
状态管理
02.Axum WebSocket
a.集成
WebSocketUpgrade
示例:路由升级
框架集成
简单易用
b.处理器
async handler
示例:on_upgrade
消息循环
状态管理
c.广播
多客户端
示例:channel分发
实时通知
聊天应用
d.心跳
保持连接
示例:ping/pong
检测断开
自动重连
03.实时应用
a.聊天室
多用户
示例:消息广播
在线状态
历史记录
b.实时通知
推送消息
示例:事件驱动
用户订阅
即时更新
c.协作编辑
同步状态
示例:OT/CRDT
冲突解决
实时协作
d.游戏服务器
状态同步
示例:低延迟
高并发
实时交互
04.最佳实践
a.心跳机制
检测连接
示例:定期ping
超时断开
自动重连
b.消息队列
缓冲消息
示例:channel
流量控制
背压处理
c.错误处理
连接断开
示例:重连逻辑
优雅降级
用户体验
d.安全性
认证授权
示例:token验证
消息验证
防止攻击
05.性能优化
a.连接管理
连接池
示例:限制数量
资源控制
系统稳定
b.消息压缩
减少带宽
示例:permessage-deflate
性能提升
成本降低
c.负载均衡
分布式
示例:sticky session
水平扩展
高可用
d.监控
连接数
示例:消息量
性能指标
问题发现
1.6 认证授权
01.JWT认证
a.jsonwebtoken库
生成验证
示例:encode/decode
无状态
跨服务
b.Token结构
Header、Payload、Signature
示例:Claims定义
标准格式
安全性
c.中间件
验证Token
示例:提取Claims
自动认证
错误处理
d.最佳实践
过期时间
示例:refresh token
安全存储
HTTPS传输
02.Session管理
a.tower-sessions
会话存储
示例:Cookie/Redis
状态管理
用户跟踪
b.存储后端
内存、Redis
示例:持久化
分布式
高可用
c.安全性
CSRF保护
示例:SameSite
HttpOnly
Secure标志
d.使用场景
传统Web
示例:服务端渲染
状态保持
简单场景
03.OAuth2
a.oauth2库
标准实现
示例:授权流程
第三方登录
API访问
b.授权流程
授权码
示例:redirect
token交换
安全性
c.提供商
Google、GitHub
示例:社交登录
用户便利
快速集成
d.实现
客户端
示例:回调处理
token管理
刷新机制
04.权限控制
a.RBAC
角色权限
示例:role检查
灵活管理
可扩展
b.中间件
权限验证
示例:guard
自动检查
拒绝访问
c.策略
细粒度
示例:资源级别
灵活控制
业务逻辑
d.实现
数据库
示例:权限表
动态配置
管理界面
2 命令行工具
2.1 Clap参数解析
01.Clap基础
a.derive API
#[derive(Parser)]
示例:结构体定义
类型安全
简洁代码
b.参数定义
#[arg]属性
示例:short、long
自动解析
帮助生成
c.子命令
#[command(subcommand)]
示例:git风格
层次结构
功能分组
d.验证
value_parser
示例:类型检查
自定义验证
错误提示
02.参数类型
a.位置参数
顺序参数
示例:<input>
必需参数
清晰语义
b.选项参数
--flag
示例:-o、--output
可选参数
灵活配置
c.标志
bool类型
示例:--verbose
开关选项
简单控制
d.多值参数
Vec<T>
示例:--file <FILES>...
可变参数
批量处理
03.高级特性
a.默认值
default_value
示例:配置默认
用户便利
向后兼容
b.环境变量
env属性
示例:从环境读取
配置灵活
部署友好
c.冲突检查
conflicts_with
示例:互斥选项
逻辑验证
用户提示
d.依赖关系
requires
示例:依赖选项
逻辑完整
错误提示
04.帮助文档
a.自动生成
--help
示例:完整帮助
用户友好
自动维护
b.自定义
about、long_about
示例:详细说明
使用示例
清晰文档
c.版本信息
--version
示例:自动版本
Cargo.toml
发布管理
d.补全脚本
shell补全
示例:bash、zsh
用户体验
效率提升
05.最佳实践
a.清晰命名
直观选项
示例:--output而非-o
用户友好
可读性
b.合理默认
常用配置
示例:减少输入
用户便利
向后兼容
c.完整文档
帮助信息
示例:使用示例
错误提示
用户指导
d.验证输入
早期检查
示例:文件存在
友好错误
快速失败
2.2 输入输出
01.标准输入输出
a.println!宏
输出文本
示例:格式化输出
简单直接
常用方式
b.eprintln!宏
错误输出
示例:stderr
错误分离
管道友好
c.stdin读取
BufRead
示例:逐行读取
用户输入
交互式
d.格式化
format!宏
示例:字符串构建
灵活格式
类型安全
02.文件操作
a.读取文件
std::fs::read
示例:read_to_string
简单API
错误处理
b.写入文件
std::fs::write
示例:write_all
原子操作
错误处理
c.追加写入
OpenOptions
示例:append模式
日志文件
增量更新
d.目录操作
read_dir
示例:遍历目录
递归处理
文件过滤
03.进度显示
a.indicatif库
进度条
示例:ProgressBar
用户反馈
美观显示
b.样式定制
template
示例:自定义格式
品牌一致
信息丰富
c.多进度条
MultiProgress
示例:并行任务
清晰展示
实时更新
d.使用场景
长时间操作
示例:下载、处理
用户体验
避免焦虑
04.彩色输出
a.colored库
彩色文本
示例:.red()、.green()
视觉区分
信息层次
b.使用场景
错误警告
示例:成功失败
日志级别
用户友好
c.终端检测
支持检查
示例:isatty
兼容性
自动降级
d.最佳实践
适度使用
示例:不过度
可读性
可访问性
05.交互式输入
a.dialoguer库
交互提示
示例:Input、Confirm
用户友好
验证输入
b.选择菜单
Select
示例:多选单选
清晰界面
键盘导航
c.密码输入
Password
示例:隐藏输入
安全性
用户体验
d.使用场景
配置向导
示例:交互式工具
用户引导
减少错误
2.3 配置管理
01.配置文件
a.TOML格式
serde支持
示例:config.toml
易读易写
Rust生态
b.JSON格式
通用格式
示例:serde_json
跨语言
工具丰富
c.YAML格式
人类友好
示例:serde_yaml
复杂配置
可读性
d.选择建议
Rust用TOML
示例:API用JSON
复杂用YAML
根据场景
02.config库
a.多源配置
文件、环境、参数
示例:Config::builder()
优先级
灵活组合
b.层次结构
嵌套配置
示例:app.server.port
组织清晰
易于管理
c.类型安全
反序列化
示例:#[derive(Deserialize)]
编译检查
错误提示
d.默认值
default配置
示例:合并策略
向后兼容
用户便利
03.环境变量
a.std::env
读取环境
示例:env::var("KEY")
系统集成
部署配置
b.dotenv库
.env文件
示例:开发环境
本地配置
不提交
c.优先级
覆盖规则
示例:env > file
灵活配置
部署友好
d.最佳实践
敏感信息
示例:密钥环境变量
安全性
不硬编码
04.配置验证
a.启动检查
验证配置
示例:必需字段
早期失败
清晰错误
b.类型约束
serde验证
示例:范围检查
业务规则
数据完整
c.默认值
合理默认
示例:减少配置
用户便利
向后兼容
d.文档说明
配置示例
示例:注释说明
用户指导
减少错误
2.4 日志系统
01.log门面
a.log crate
日志门面
示例:log::info!
统一接口
实现分离
b.日志级别
Error、Warn、Info、Debug、Trace
示例:分级输出
过滤控制
调试生产
c.宏使用
log!宏
示例:格式化
类型安全
编译优化
d.初始化
logger实现
示例:env_logger
配置日志
启动设置
02.env_logger
a.环境配置
RUST_LOG
示例:RUST_LOG=debug
灵活控制
运行时配置
b.格式定制
Builder
示例:自定义格式
时间戳
模块过滤
c.过滤规则
模块级别
示例:my_app=debug
精确控制
性能优化
d.使用场景
开发调试
示例:简单应用
快速集成
默认选择
03.tracing框架
a.结构化日志
span和event
示例:追踪上下文
分布式追踪
性能分析
b.订阅者
Subscriber
示例:多输出
灵活配置
组合使用
c.层次结构
Layer系统
示例:过滤、格式化
模块化
功能组合
d.使用场景
复杂应用
示例:微服务
性能分析
生产环境
04.日志最佳实践
a.合适级别
Error错误
示例:Info正常
Debug调试
分级清晰
b.结构化
键值对
示例:user_id=123
易于解析
查询分析
c.上下文信息
足够信息
示例:请求ID
问题定位
追踪链路
d.性能考虑
条件编译
示例:debug!开销
生产优化
开发详细
05.错误报告
a.color-eyre
美观错误
示例:堆栈跟踪
上下文信息
调试友好
b.anyhow集成
错误链
示例:context
完整信息
问题定位
c.用户友好
清晰消息
示例:操作建议
避免技术
可操作性
d.日志记录
错误日志
示例:log::error!
问题追踪
运维支持
2.5 测试与发布
01.单元测试
a.#[test]
测试函数
示例:assert_eq!
自动发现
cargo test
b.测试组织
tests模块
示例:#[cfg(test)]
就近测试
私有访问
c.断言宏
assert!、assert_eq!
示例:验证结果
清晰错误
调试信息
d.覆盖率
tarpaulin
示例:测试覆盖
质量指标
持续改进
02.集成测试
a.tests目录
独立测试
示例:tests/integration.rs
黑盒测试
公共API
b.测试辅助
common模块
示例:共享代码
测试工具
代码复用
c.命令测试
assert_cmd
示例:CLI测试
端到端
实际场景
d.快照测试
insta
示例:输出验证
回归测试
易于维护
03.性能测试
a.criterion
基准测试
示例:性能测量
统计分析
回归检测
b.配置
benches目录
示例:#[bench]
独立运行
不影响测试
c.分析
火焰图
示例:性能瓶颈
优化指导
可视化
d.持续监控
CI集成
示例:性能回归
自动化
质量保证
04.打包发布
a.cargo build
编译发布
示例:--release
优化构建
生产就绪
b.跨平台
target配置
示例:交叉编译
多平台
用户覆盖
c.二进制优化
strip、LTO
示例:减小体积
性能优化
发布配置
d.版本管理
Cargo.toml
示例:语义化版本
变更日志
发布流程
05.分发方式
a.crates.io
Rust包仓库
示例:cargo publish
社区分发
依赖管理
b.GitHub Releases
二进制发布
示例:CI自动化
多平台
用户下载
c.包管理器
Homebrew、apt
示例:系统集成
用户便利
自动更新
d.容器化
Docker镜像
示例:跨平台
环境一致
部署简单
2.6 CLI最佳实践
01.用户体验
a.清晰输出
结构化信息
示例:表格、列表
易于阅读
视觉层次
b.进度反馈
长时间操作
示例:进度条
用户安心
可中断
c.错误提示
友好消息
示例:操作建议
问题定位
可恢复
d.帮助文档
完整示例
示例:常见用法
快速上手
减少支持
02.性能优化
a.启动时间
延迟加载
示例:按需初始化
快速响应
用户体验
b.并发处理
rayon
示例:并行任务
性能提升
资源利用
c.缓存
避免重复
示例:计算结果
性能优化
用户体验
d.增量操作
只处理变化
示例:文件监控
效率提升
资源节省
03.兼容性
a.向后兼容
API稳定
示例:版本管理
用户信任
平滑升级
b.平台支持
跨平台
示例:Windows、Linux、macOS
用户覆盖
测试完整
c.依赖管理
最小依赖
示例:减少冲突
构建快速
维护简单
d.优雅降级
功能检测
示例:可选特性
兼容性
用户体验
04.安全性
a.输入验证
防止注入
示例:路径遍历
安全第一
数据完整
b.权限检查
最小权限
示例:文件访问
安全操作
用户保护
c.敏感信息
不记录密码
示例:安全存储
隐私保护
合规要求
d.更新机制
安全更新
示例:签名验证
漏洞修复
用户安全
3 序列化与数据处理
3.1 Serde序列化
01.Serde基础
a.derive宏
自动实现
示例:#[derive(Serialize, Deserialize)]
零成本
类型安全
b.JSON格式
serde_json
示例:to_string、from_str
通用格式
Web API
c.其他格式
TOML、YAML、MessagePack
示例:多格式支持
灵活选择
场景适配
d.性能
零成本抽象
示例:编译期生成
高性能
无运行时
02.自定义序列化
a.字段属性
#[serde(rename)]
示例:重命名字段
API兼容
灵活映射
b.跳过字段
#[serde(skip)]
示例:忽略字段
敏感信息
临时数据
c.默认值
#[serde(default)]
示例:缺失字段
向后兼容
健壮性
d.自定义函数
serialize_with
示例:特殊格式
业务逻辑
灵活控制
03.复杂类型
a.枚举
标签表示
示例:externally tagged
类型安全
灵活格式
b.泛型
类型参数
示例:自动推导
代码复用
类型安全
c.生命周期
借用数据
示例:零拷贝
性能优化
内存效率
d.递归类型
Box包装
示例:树结构
无限递归
类型安全
04.错误处理
a.Result类型
序列化错误
示例:类型不匹配
格式错误
错误传播
b.自定义错误
Error trait
示例:业务错误
清晰信息
调试友好
c.验证
反序列化验证
示例:业务规则
数据完整
早期失败
d.最佳实践
明确错误
示例:用户友好
日志记录
问题定位
05.性能优化
a.流式处理
StreamDeserializer
示例:大文件
内存效率
实时处理
b.零拷贝
借用数据
示例:&str而非String
性能提升
内存节省
c.缓冲
BufReader
示例:减少IO
性能优化
批量处理
d.格式选择
MessagePack
示例:二进制格式
性能最佳
体积最小
3.2 数据验证
01.validator库
a.derive验证
#[derive(Validate)]
示例:声明式
类型安全
自动验证
b.内置验证器
email、url、length
示例:常用规则
开箱即用
减少代码
c.自定义验证
custom函数
示例:业务规则
灵活扩展
复杂逻辑
d.错误消息
自定义消息
示例:用户友好
国际化
清晰提示
02.数据清洗
a.trim处理
去除空白
示例:用户输入
数据规范
一致性
b.格式转换
大小写
示例:标准化
数据一致
查询优化
c.默认值
填充缺失
示例:合理默认
健壮性
用户便利
d.类型转换
字符串解析
示例:数值转换
类型安全
错误处理
03.数据转换
a.From/Into
类型转换
示例:DTO转换
类型安全
代码清晰
b.Builder模式
构建对象
示例:复杂初始化
可读性
灵活性
c.映射
字段映射
示例:API适配
解耦
灵活性
d.最佳实践
明确转换
示例:避免隐式
类型安全
可维护性
3.3 CSV和Excel
01.CSV处理
a.csv crate
读写CSV
示例:Reader、Writer
高性能
灵活配置
b.反序列化
serde集成
示例:自动映射
类型安全
简洁代码
c.大文件
流式处理
示例:逐行读取
内存效率
实时处理
d.错误处理
格式错误
示例:跳过错误行
健壮性
日志记录
02.Excel处理
a.calamine
读取Excel
示例:xlsx、xls
多格式
纯Rust
b.数据提取
Range迭代
示例:单元格访问
灵活读取
类型转换
c.写入Excel
rust_xlsxwriter
示例:创建工作簿
格式化
公式支持
d.使用场景
数据导入导出
示例:报表生成
批量处理
数据分析
03.数据处理
a.polars
DataFrame
示例:类pandas
高性能
表达式API
b.操作
filter、select、join
示例:数据分析
链式调用
类型安全
c.性能
并行处理
示例:Arrow格式
内存效率
大数据
d.使用场景
数据分析
示例:ETL
统计计算
机器学习
04.最佳实践
a.内存管理
流式处理
示例:大文件
避免OOM
性能优化
b.错误处理
健壮性
示例:格式错误
数据验证
日志记录
c.性能优化
并行处理
示例:批量操作
缓冲IO
内存复用
d.数据验证
类型检查
示例:业务规则
早期失败
数据质量
4 网络编程
4.1 TCP/UDP
01.TCP编程
a.TcpListener
监听连接
示例:bind地址
accept连接
异步处理
b.TcpStream
读写数据
示例:BufReader
双向通信
错误处理
c.并发处理
tokio spawn
示例:每连接一任务
高并发
资源管理
d.协议实现
自定义协议
示例:消息帧
序列化
状态机
02.UDP编程
a.UdpSocket
绑定端口
示例:send_to、recv_from
无连接
低延迟
b.广播
broadcast
示例:局域网发现
一对多
服务发现
c.多播
multicast
示例:组播地址
高效分发
流媒体
d.使用场景
实时通信
示例:游戏、视频
低延迟
容忍丢包
03.协议实现
a.HTTP客户端
reqwest
示例:REST API
高层抽象
易于使用
b.gRPC
tonic
示例:RPC框架
高性能
类型安全
c.MQTT
rumqttc
示例:物联网
发布订阅
轻量级
d.自定义协议
tokio-util
示例:codec
灵活控制
性能优化
04.网络安全
a.TLS/SSL
rustls
示例:HTTPS
加密通信
证书验证
b.认证
token验证
示例:API密钥
访问控制
安全性
c.限流
governor
示例:速率限制
防滥用
系统保护
d.防火墙
IP过滤
示例:白名单
访问控制
安全加固
05.性能优化
a.连接池
复用连接
示例:r2d2
减少开销
提高吞吐
b.缓冲
BufReader/Writer
示例:批量IO
减少系统调用
性能提升
c.零拷贝
sendfile
示例:文件传输
内核优化
高性能
d.负载均衡
分布式
示例:一致性哈希
水平扩展
高可用
4.2 DNS和服务发现
01.DNS解析
a.trust-dns
DNS客户端
示例:异步解析
高性能
完整实现
b.解析类型
A、AAAA、CNAME
示例:多记录类型
灵活查询
完整支持
c.缓存
本地缓存
示例:减少查询
性能优化
降低延迟
d.使用场景
服务发现
示例:动态解析
负载均衡
故障转移
02.服务发现
a.Consul
服务注册
示例:健康检查
动态发现
配置中心
b.etcd
键值存储
示例:服务注册
分布式锁
配置管理
c.mDNS
零配置
示例:局域网发现
简单易用
无需服务器
d.使用场景
微服务
示例:动态扩展
故障恢复
负载均衡
03.负载均衡
a.客户端负载
轮询、随机
示例:本地策略
简单高效
无单点
b.一致性哈希
分布式缓存
示例:节点变化
最小迁移
高效路由
c.健康检查
探活机制
示例:定期检测
故障剔除
自动恢复
d.权重分配
加权轮询
示例:性能差异
灵活调度
资源利用
5 系统编程
5.1 文件系统
01.文件操作
a.std::fs
基础API
示例:read、write
同步操作
简单直接
b.tokio::fs
异步文件
示例:异步读写
非阻塞
高并发
c.元数据
Metadata
示例:大小、权限
文件信息
条件处理
d.权限管理
Permissions
示例:chmod
访问控制
安全性
02.目录操作
a.遍历目录
read_dir
示例:递归遍历
文件过滤
批量处理
b.walkdir
递归遍历
示例:深度优先
灵活过滤
性能优化
c.glob模式
glob crate
示例:模式匹配
文件查找
批量操作
d.监控变化
notify
示例:文件监控
实时响应
自动化
03.路径处理
a.Path和PathBuf
路径类型
示例:join、parent
跨平台
类型安全
b.规范化
canonicalize
示例:绝对路径
符号链接
路径解析
c.相对路径
relative_from
示例:路径转换
灵活处理
可移植性
d.最佳实践
使用Path
示例:避免字符串
类型安全
跨平台
04.临时文件
a.tempfile
临时文件
示例:NamedTempFile
自动清理
安全性
b.临时目录
TempDir
示例:测试环境
隔离环境
自动清理
c.使用场景
测试
示例:缓存
中间文件
原子操作
d.安全性
权限控制
示例:避免竞争
安全创建
清理保证
05.内存映射
a.memmap2
文件映射
示例:大文件
零拷贝
高性能
b.只读映射
Mmap
示例:共享内存
快速访问
内存效率
c.可写映射
MmapMut
示例:修改文件
原子操作
性能优化
d.使用场景
大文件处理
示例:数据库
共享内存
性能关键
5.2 进程管理
01.进程创建
a.Command
执行命令
示例:spawn进程
管道重定向
环境变量
b.子进程
Child
示例:wait等待
kill终止
状态获取
c.管道
Stdio
示例:进程通信
数据传递
流式处理
d.环境变量
env设置
示例:配置传递
隔离环境
安全性
02.信号处理
a.signal-hook
信号捕获
示例:SIGINT、SIGTERM
优雅关闭
资源清理
b.信号发送
kill进程
示例:进程控制
协调操作
系统集成
c.使用场景
守护进程
示例:优雅重启
资源清理
状态保存
d.最佳实践
注册处理器
示例:清理资源
保存状态
日志记录
03.系统信息
a.sysinfo
系统信息
示例:CPU、内存
进程列表
监控指标
b.性能监控
资源使用
示例:实时监控
性能分析
容量规划
c.跨平台
统一API
示例:Windows、Linux
兼容性
可移植性
d.使用场景
监控工具
示例:性能分析
资源管理
运维支持
6 嵌入式与系统底层
6.1 嵌入式Rust
01.no_std环境
a.核心库
core crate
示例:无标准库
嵌入式
裸机编程
b.alloc
堆分配
示例:动态内存
可选特性
资源受限
c.panic处理
panic_handler
示例:自定义panic
错误处理
系统稳定
d.启动代码
entry宏
示例:程序入口
初始化
硬件配置
02.HAL抽象
a.embedded-hal
硬件抽象
示例:GPIO、SPI
跨平台
可移植性
b.设备驱动
trait实现
示例:传感器
模块化
代码复用
c.平台支持
STM32、nRF
示例:芯片支持
生态丰富
社区活跃
d.使用场景
物联网
示例:传感器
控制器
实时系统
03.RTIC框架
a.实时调度
任务优先级
示例:硬实时
资源共享
无竞争
b.中断处理
硬件任务
示例:中断驱动
低延迟
确定性
c.资源管理
静态分配
示例:编译期检查
无死锁
类型安全
d.使用场景
实时控制
示例:电机控制
数据采集
通信协议
04.Embassy框架
a.异步嵌入式
async/await
示例:协作调度
资源高效
易于编程
b.驱动支持
丰富驱动
示例:网络、USB
现代设计
活跃开发
c.功耗管理
低功耗
示例:睡眠模式
电池供电
节能优化
d.使用场景
物联网
示例:无线通信
传感器网络
电池设备
05.嵌入式最佳实践
a.资源受限
内存优化
示例:静态分配
代码大小
性能优化
b.实时性
确定性
示例:中断延迟
优先级
调度策略
c.可靠性
错误处理
示例:看门狗
故障恢复
系统稳定
d.调试
probe-rs
示例:在线调试
日志输出
性能分析
6.2 硬件交互
01.GPIO
a.数字IO
输入输出
示例:LED、按钮
电平控制
中断触发
b.PWM
脉宽调制
示例:LED调光
电机控制
模拟输出
c.中断
外部中断
示例:按键检测
事件驱动
低功耗
d.使用场景
控制器
示例:传感器
执行器
人机交互
02.通信协议
a.UART
串口通信
示例:调试输出
设备通信
简单可靠
b.I2C
总线通信
示例:传感器
多设备
两线接口
c.SPI
高速通信
示例:存储器
显示屏
全双工
d.CAN
车载网络
示例:汽车电子
工业控制
可靠性高
03.DMA
a.直接内存访问
无CPU参与
示例:数据传输
高效IO
降低负载
b.配置
通道设置
示例:外设到内存
优先级
中断通知
c.使用场景
高速IO
示例:ADC采集
串口接收
性能关键
d.注意事项
内存对齐
示例:缓冲区
并发访问
数据一致性
7 工具与生态
7.1 开发工具
01.Cargo工具
a.cargo-edit
依赖管理
示例:cargo add
版本升级
便捷操作
b.cargo-watch
自动重编译
示例:文件监控
开发效率
快速反馈
c.cargo-expand
宏展开
示例:查看生成代码
调试宏
理解机制
d.cargo-outdated
依赖检查
示例:版本更新
安全补丁
维护工具
02.代码质量
a.clippy
代码检查
示例:最佳实践
性能建议
错误预防
b.rustfmt
代码格式化
示例:统一风格
团队协作
可读性
c.cargo-audit
安全审计
示例:漏洞检查
依赖安全
合规要求
d.cargo-deny
依赖策略
示例:许可证检查
安全策略
合规管理
03.测试工具
a.nextest
快速测试
示例:并行执行
性能提升
CI友好
b.cargo-tarpaulin
覆盖率
示例:测试覆盖
质量指标
持续改进
c.proptest
属性测试
示例:随机测试
边界发现
健壮性
d.mockall
mock框架
示例:单元测试
依赖隔离
测试简化
04.性能工具
a.flamegraph
性能分析
示例:火焰图
热点发现
优化指导
b.valgrind
内存分析
示例:泄漏检测
性能剖析
问题定位
c.perf
系统级分析
示例:CPU性能
缓存分析
系统优化
d.hyperfine
基准测试
示例:命令对比
统计分析
性能验证
05.文档工具
a.mdBook
文档生成
示例:Markdown书籍
美观排版
易于维护
b.cargo-readme
README生成
示例:从文档注释
自动同步
减少重复
c.rustdoc
API文档
示例:cargo doc
自动生成
在线发布
d.docusaurus
文档网站
示例:完整文档
搜索功能
版本管理
7.2 生态系统
01.Web生态
a.框架
Axum、Actix
示例:高性能
类型安全
生产就绪
b.ORM
Diesel、SeaORM
示例:数据库
类型安全
迁移管理
c.模板
Askama、Tera
示例:HTML生成
类型安全
性能优化
d.认证
OAuth2、JWT
示例:用户认证
安全性
标准协议
02.CLI生态
a.参数解析
Clap
示例:命令行
类型安全
帮助生成
b.终端UI
ratatui
示例:TUI应用
交互界面
美观展示
c.进度条
indicatif
示例:进度反馈
用户体验
美观显示
d.日志
tracing、log
示例:结构化日志
性能分析
问题追踪
03.数据处理
a.序列化
Serde
示例:多格式
类型安全
高性能
b.数据分析
polars
示例:DataFrame
高性能
表达式API
c.CSV/Excel
csv、calamine
示例:数据导入
批量处理
报表生成
d.数据库
SQLx、Diesel
示例:类型安全
异步支持
迁移管理
04.系统编程
a.异步运行时
tokio、async-std
示例:高并发
异步IO
生态丰富
b.并发
rayon、crossbeam
示例:数据并行
无锁结构
高性能
c.网络
reqwest、hyper
示例:HTTP客户端
服务器
协议实现
d.系统接口
nix、libc
示例:系统调用
平台特性
底层控制
05.专业领域
a.游戏开发
Bevy
示例:ECS引擎
高性能
现代设计
b.GUI
egui、iced
示例:跨平台
声明式
现代UI
c.机器学习
burn、candle
示例:深度学习
高性能
纯Rust
d.区块链
substrate
示例:区块链框架
模块化
生产级
7.3 最佳实践
01.项目结构
a.标准布局
src、tests、examples
示例:约定目录
清晰组织
工具支持
b.模块组织
逻辑分组
示例:功能模块
清晰边界
易于维护
c.文档
README、CHANGELOG
示例:完整文档
用户指导
版本记录
d.配置
Cargo.toml
示例:元数据
依赖管理
发布配置
02.代码规范
a.命名约定
snake_case
示例:一致风格
可读性
团队协作
b.错误处理
Result优先
示例:类型安全
错误传播
健壮性
c.文档注释
///注释
示例:API文档
使用示例
用户友好
d.测试
完整覆盖
示例:单元集成
质量保证
重构信心
03.性能优化
a.基准测试
criterion
示例:性能测量
回归检测
优化验证
b.分析工具
flamegraph
示例:性能瓶颈
优化指导
可视化
c.编译优化
release配置
示例:LTO、strip
性能提升
体积优化
d.算法优化
选择合适
示例:数据结构
时间空间
实际测量
04.持续集成
a.GitHub Actions
自动化
示例:测试、发布
质量保证
效率提升
b.代码检查
clippy、fmt
示例:自动检查
代码质量
风格统一
c.测试覆盖
tarpaulin
示例:覆盖率报告
质量指标
持续改进
d.自动发布
cargo publish
示例:版本发布
自动化
减少错误