rust-async-patterns – skill Lập trình cho agent AI
Làm chủ lập trình bất đồng bộ trong Rust với Tokio, async trait, xử lý lỗi và các mẫu đồng thời. Dùng khi xây dựng ứng dụng Rust bất đồng bộ, triển khai hệ thống đồng thời hoặc gỡ lỗi mã async.
Cài skill rust-async-patterns bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/rust-async-patterns-1cfac.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /rust-async-patterns – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/rust-async-patterns-1cfac.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $rust-async-patterns – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/rust-async-patterns-1cfac.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /rust-async-patterns – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/rust-async-patterns-1cfac.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /rust-async-patterns – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Rust Async Patterns
Production patterns for async Rust programming with Tokio runtime, including tasks, channels, streams, and error handling.
When to Use This Skill
- Building async Rust applications
- Implementing concurrent network services
- Using Tokio for async I/O
- Handling async errors properly
- Debugging async code issues
- Optimizing async performance
Core Concepts
1. Async Execution Model
Future (lazy) → poll() → Ready(value) | Pending
↑ ↓
Waker ← Runtime schedules2. Key Abstractions
| Concept | Purpose |
| ---------- | ---------------------------------------- |
| Future | Lazy computation that may complete later |
| async fn | Function returning impl Future |
| await | Suspend until future completes |
| Task | Spawned future running concurrently |
| Runtime | Executor that polls futures |
Quick Start
# Cargo.toml
[dependencies]
tokio = { version = "1", features = ["full"] }
futures = "0.3"
async-trait = "0.1"
anyhow = "1.0"
tracing = "0.1"
tracing-subscriber = "0.3"use tokio::time::{sleep, Duration};
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()> {
// Initialize tracing
tracing_subscriber::fmt::init();
// Async operations
let result = fetch_data("https://api.example.com").await?;
println!("Got: {}", result);
Ok(())
}
async fn fetch_data(url: &str) -> Result<String> {
// Simulated async operation
sleep(Duration::from_millis(100)).await;
Ok(format!("Data from {}", url))
}Detailed patterns and worked examples
Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.
Best Practices
Do's
- Use
tokio::select!- For racing futures - Prefer channels - Over shared state when possible
- Use
JoinSet- For managing multiple tasks - Instrument with tracing - For debugging async code
- Handle cancellation - Check
CancellationToken
Don'ts
- Don't block - Never use
std::thread::sleepin async - Don't hold locks across awaits - Causes deadlocks
- Don't spawn unboundedly - Use semaphores for limits
- Don't ignore errors - Propagate with
?or log - Don't forget Send bounds - For spawned futures
Skill liên quan
- python-debugpy – Gỡ lỗi Python: REPL pdb + debugpy từ xa (DAP).
- context-driven-development – Hướng dẫn triển khai và duy trì ngữ cảnh như một artifact được quản lý cùng với mã…
- convex – Chuyên gia backend reactive Convex: thiết kế schema, hàm TypeScript, đăng ký real-time…
- convex-backend – Xây dựng backend reactive với hàm Convex, kiểm tra schema, tích hợp auth và quy trình…
- copilot-delegate – Chỉ giao tác vụ viết code cho GitHub Copilot CLI (`copilot`) khi người dùng yêu cầu rõ…
- copilot-sdk – Xây dựng ứng dụng tương tác với GitHub Copilot theo cách lập trình. SDK bao bọc Copilot…
- screen-reader-testing – Kiểm thử ứng dụng web với trình đọc màn hình gồm VoiceOver, NVDA và JAWS. Dùng khi kiểm…
- cowork-to-code-bridge – Dùng cầu nối cowork-to-code đã cài sẵn và được xác minh độc lập để chạy các hành động…