rust-async-patterns — скилл Rust для Claude Code
Скилл помогает писать и разбирать асинхронный Rust на Tokio: задачи, каналы, потоки и обработку ошибок. Пригодится для сетевых сервисов и отладки.
/plugin marketplace add wshobson/agents
/plugin install systems-programming@claude-code-workflowsЧто делает rust-async-patterns
rust-async-patterns подсказывает паттерны асинхронного Rust с Tokio. Он разбирает модель Future, async fn, await, задачи и runtime, а также показывает работу с каналами, потоками и конкурентными операциями. Скилл подходит для создания async-приложений, сетевых сервисов и поиска проблем в асинхронном коде.
В материалах есть стартовая конфигурация Cargo.toml с tokio, futures, async-trait, anyhow, tracing и tracing-subscriber. Отдельные рекомендации посвящены tokio::select!, JoinSet, CancellationToken, ограничениям через семафоры и обработке ошибок. Подробные примеры находятся в references/details.md.
Ставьте его, если проект использует Tokio или вы разбираетесь с конкурентным Rust. Для синхронного Rust этот скилл будет лишним.
Какие задачи решает
- настроить async-приложение на Tokio
- разобраться с Future, await и задачами
- организовать обмен через каналы
- обработать ошибки в асинхронном коде
- найти блокировки и проблемы отмены
Примеры запросов агенту
- Разбери этот async-код на Rust и найди блокировки между await.
- Покажи, как заменить общий state на каналы и управлять задачами через JoinSet.
- Проверь обработку ошибок и отмену задач в этом Tokio-сервисе.
Как установить rust-async-patterns
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install systems-programming@claude-code-workflows2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill rust-async-patterns -a claude-code3Вручную: положить файлы
~/.claude/skills/rust-async-patterns/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/rust-async-patterns/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill rust-async-patterns -a codex2Вручную: положить файлы
.agents/skills/rust-async-patterns/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill rust-async-patterns -a cursor2Вручную: положить файлы
.cursor/skills/rust-async-patterns/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents rust-async-patterns2Вручную: положить файлы
.github/skills/rust-async-patterns/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/systems-programming/skills/rust-async-patternsВручную: положить файлы
.devin/skills/rust-async-patterns/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о rust-async-patterns
Как установить rust-async-patterns в Claude Code?
Выполните npx skills add wshobson/agents --skill rust-async-patterns -a claude-code. Скилл появится в ~/.claude/skills/rust-async-patterns/SKILL.md.
Что делает rust-async-patterns?
Скилл помогает проектировать и отлаживать асинхронный Rust с Tokio. Он охватывает задачи, каналы, потоки, обработку ошибок и отмену.
Какие зависимости нужны для примеров rust-async-patterns?
В стартовом примере используются tokio, futures, async-trait, anyhow, tracing и tracing-subscriber. Конфигурация задаётся в Cargo.toml.
Исходный текст
SKILL.md · MIT
---
name: rust-async-patterns
description: Master Rust async programming with Tokio, async traits, error handling, and concurrent patterns. Use when building async Rust applications, implementing concurrent systems, or debugging async code.
---
# 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 schedules
```
### 2. 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
```toml
# 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"
```
```rust
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::sleep` in 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
© Seth Hobson · MIT · wshobson/agents