---
name: rust-engineer
description: '用于 Rust 语言开发最佳实践、异步编程和系统级编程指导。来源：skills.sh 1.5K+ installs。'
version: "1.0.0"
author: "seaworld008"
source: "skills.sh"
source_url: "https://skills.sh/404kidwiz/claude-supercode-skills/rust-engineer"
license: "MIT"
tags: '["development", "engineer", "rust"]'
created_at: "2026-03-27"
updated_at: "2026-03-27"
quality: 4
complexity: "intermediate"
---

# Rust Engineer Toolkit

Rust is a systems programming language that provides memory safety without garbage collection, along with high performance and expressive syntax. This skill covers the essential pillars of modern Rust engineering.

## 触发条件

- 需要构建高性能、低延迟的后端服务。
- 正在开发需要极高可靠性的系统软件（如数据库、编译器、嵌入式设备）。
- 项目对内存安全有严格要求，且不希望有 GC 带来的不可预测停顿。
- 需要编写可作为 C/C++ 替代方案的安全组件。
- 涉及到复杂的并发编程场景。

## 核心能力

### 1. 所有权与生命周期 (Ownership & Lifetimes)
Rust 的核心机制，决定了内存如何管理。
- **Borrow Checker**: 深入理解“一个可变引用或多个不可变引用”的规则。
- **Lifetime Annotations**: 处理跨函数引用的显式标注，避免“悬垂指针”。
- **Smart Pointers**: 合理使用 `Box<T>`, `Rc<T>`, `Arc<T>`, `RefCell<T>` 进行动态分配和内部可变性管理。

### 2. async/await 异步编程
Rust 的异步是零开销抽象且不绑定运行时。
- **Tokio Runtime**: 掌握业界标准的多线程异步运行时配置。
- **Futures & Streams**: 处理单个异步操作及异步序列数据流。
- **Select/Join Macros**: 并发调度多个异步任务，处理超时和取消逻辑。
- **Zero-copy Parsing**: 利用异步 I/O 直接在缓冲区上操作数据。

### 3. Error Handling 最佳实践
- **Result & Option**: 替代异常机制的健壮错误处理。
- **Anyhow & Thiserror**: 使用 `thiserror` 定义结构化库错误，用 `anyhow` 处理应用程序层级的错误传播。
- **Propagating Errors**: 熟练使用 `?` 运算符优雅地传播错误。

### 4. Traits 与泛型设计
实现代码复用和抽象的基础。
- **Derive Macros**: 自动实现 `Debug`, `Clone`, `Serialize/Deserialize` 等基础 trait。
- **Trait Bounds**: 为泛型参数施加约束，确保类型安全。
- **Dynamic Dispatch (dyn)**: 理解虚表（vtable）与对象安全，平衡运行时灵活性与编译时性能。

### 5. unsafe 代码审查
- **Memory Safety Boundary**: 明确 `unsafe` 块的职责，仅在必要时（如 FFI、高性能数据结构）使用。
- **Soundness**: 确保 `unsafe` 代码对外暴露的是安全的抽象层。
- **Miri**: 使用 Miri 解释器检测 `unsafe` 代码中的未定义行为（UB）。

### 6. Cargo Workspace 管理
- **Multi-crate Projects**: 使用 Workspace 管理大型单体仓库中的多个组件库。
- **Shared Dependencies**: 统一依赖版本，减少编译时间和二进制体积。
- **Cargo.toml 配置**: 掌握 `profile.release` 的优化参数（LTO, codegen-units, panic=abort）。

### 7. 性能剖析 (Performance Profiling)
- **Criterion**: 用于高精度基准测试（Benchmark），跟踪性能回归。
- **Flamegraph**: 生成调用链路火焰图。
- **Perf/VTune/Instruments**: 系统级性能分析工具的集成。

## 常用命令/模板

### 常用 Cargo 命令
```bash
# 构建并运行
cargo run --release

# 检查代码是否能编译通过（不生成二进制，非常快）
cargo check

# 运行所有单元测试和集成测试
cargo test

# 生成并打开项目文档
cargo doc --open

# 运行基准测试
cargo bench
```

### 典型的异步任务模板 (Tokio)
```rust
use tokio::time::{sleep, Duration};
use anyhow::Result;

async fn process_task(id: u32) -> Result<String> {
    sleep(Duration::from_secs(1)).await;
    Ok(format!("Task {} completed", id))
}

#[tokio::main]
async fn main() -> Result<()> {
    let mut handles = vec![];

    for i in 0..5 {
        handles.push(tokio::spawn(process_task(i)));
    }

    for handle in handles {
        let res = handle.await??;
        println!("{}", res);
    }

    Ok(())
}
```

### 错误定义模板 (Thiserror)
```rust
use thiserror::Error;

#[derive(Error, Debug)]
pub enum DataError {
    #[error("Disconnect from database: {0}")]
    Disconnect(String),
    #[error("Invalid token found in input")]
    InvalidToken,
    #[error(transparent)]
    Other(#[from] anyhow::Error),
}
```

## 边界与限制

- **编译时间**: 复杂的泛型和宏会导致较长的编译时间，尤其是在冷启动时。
- **学习曲线**: “借用检查器”是初学者的主要障碍（Fighting the borrow checker）。
- **库生态**: 相比 Python/JS，某些垂直领域的库（如 GUI、某些特定的机器学习框架）可能不够成熟。
- **运行时绑定**: Rust 语言标准不含运行时，开发者需要自行选择（如 Tokio, async-std），这在多库协作时可能带来兼容性挑战。
- **动态反射**: Rust 几乎不支持运行时的类反射，这使得高度动态化的某些编程模式实现起来较为繁琐。

---
*Generated by Skill Master - Professional Edition*
