К основному содержанию
скилл Claude Code CX Codex Cursor

rust-async-patterns — скилл Rust для Claude Code

Скилл помогает писать и разбирать асинхронный Rust на Tokio: задачи, каналы, потоки и обработку ошибок. Пригодится для сетевых сервисов и отладки.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add wshobson/agents
/plugin install systems-programming@claude-code-workflows
Открыть на GitHub

Что делает 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-workflows

2Через Skills CLI (Vercel)

npx skills add wshobson/agents --skill rust-async-patterns -a claude-code

3Вручную: положить файлы

~/.claude/skills/rust-async-patterns/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/rust-async-patterns/

Похожие

migrate-to-shoehorn Matt Pocock Переводит type assertions с as в тестах на функции из @total-typescript/shoehorn. Нужен для частичных объектов и намеренно неверных данных в проверках. Claude Code 475 388установок typescript-advanced-types Seth Hobson Помогает агенту писать сложную типизацию TypeScript: generics, conditional types и преобразования типов. Нужен для библиотек, API-клиентов и строгих конфигураций. Claude Code CX Codex Cursor 92 169установок dotnet-best-practices официальный github Проверяет выделенный .NET/C# код по правилам проекта: от структуры и DI до тестов, логирования и безопасности. Нужен при ревью или доработке решения. GitHub Copilot 15 752установок nuget-manager официальный github Управляет NuGet-пакетами в .NET-проектах через dotnet CLI. Нужен при добавлении, удалении и обновлении зависимостей. GitHub Copilot 14 360установок typescript-mcp-server-generator официальный github Генерирует TypeScript-проект MCP-сервера с инструментами, ресурсами и конфигурацией. Пригодится, когда нужно быстро заложить сервер на MCP TypeScript SDK v2. GitHub Copilot 12 050установок java-junit официальный github Пишет, проверяет и исправляет Java-тесты на JUnit, AssertJ и Mockito. Нужен при добавлении, рефакторинге или разборе падений тестов в Maven и Gradle. GitHub Copilot 11 632установок

Вопросы о 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

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой