rust-async-patterns
Apprenez rapidement les patterns async Rust
Async Rust peut être difficile à structurer et à déboguer. Cette compétence vous donne des patterns clairs pour les tâches Tokio, les canaux, les flux et les erreurs.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "rust-async-patterns". Explique comment limiter la concurrence pour les requêtes HTTP async dans Tokio.
Résultat attendu:
- Utilise un flux sur les URLs et applique buffer_unordered avec une limite
- Collecte les résultats et gère les erreurs par requête
- Évite le spawn illimité pour protéger la mémoire et les sockets
Utilisation de "rust-async-patterns". Montre-moi comment coordonner entre les tâches async en utilisant des canaux.
Résultat attendu:
- Utilise mpc::channel pour la communication un-à-un entre producteur et consommateur
- Utilise broadcast::channel quand plusieurs consommateurs ont besoin du même message
- Utilise oneshot::channel quand tu as besoin d'une seule réponse d'une tâche spawnée
Utilisation de "rust-async-patterns". Comment gérer les erreurs dans le code async Rust correctement ?
Résultat attendu:
- Utilise anyhow pour les erreurs au niveau application avec enchaînement de contexte
- Utilise thiserror pour le code de bibliothèque afin de créer des types d'erreur personnalisés
- Enveloppe les opérations avec un timeout pour éviter le blocage indéterminé
Audit de sécurité
SûrPure educational documentation containing Rust async programming examples. All static findings are false positives: 'process spawn' refers to tokio::spawn for async task management (not command execution), 'backtick execution' refers to markdown code formatting, and 'weak cryptographic algorithm' refers to keywords in documentation fields. The skill contains no tool definitions, file access, network calls, or command execution capabilities.
Facteurs de risque
🌐 Accès réseau (6)
⚙️ Commandes externes (39)
Score de qualité
Ce que vous pouvez construire
Construire des services concurrents
Appliquez des patterns structurés pour l'orchestration des tâches, la gestion des erreurs et l'arrêt dans les services async Rust.
Déboguer les deadlocks async
Utilisez les conseils de tracing et les pièges courants pour diagnostiquer les tâches bloquées et la mauvaise utilisation des verrous.
Étudier les concepts async
Apprenez les futures, await, les flux et les canaux avec des exemples courts et ciblés.
Essayez ces prompts
Donne un exemple court de main async Tokio avec tracing et un appel async simulé. Explique chaque étape en une phrase.
Montre un pattern pour limiter les tâches async concurrentes pour une liste d'URLs en utilisant Tokio ou les flux futures.
Explique une approche d'arrêt progressif utilisant CancellationToken et un canal broadcast pour l'arrêt.
Fournis un design de trait async pour un dépôt avec get, save et delete, et note l'utilisation des objets de trait.
Bonnes pratiques
- Utilise tokio::select! pour faire la course entre les futures en toute sécurité
- Préfère les canaux pour la coordination plutôt que l'état mutable partagé
- Instumente les tâches async avec tracing pour l'observabilité
Éviter
- Appeler des fonctions bloquantes comme std::thread::sleep dans du code async
- Maintenir des verrous mutex ou rwlock à travers des points await
- Spawner des tâches illimitées sans limite de concurrence
Foire aux questions
Est-ce compatible avec les versions actuelles de Tokio ?
Est-ce que ça génère du code d'application complet ?
Puis-je l'utiliser dans un dépôt existant ?
Est-ce que ça accède ou stocke mes données ?
Et si mon code async仍然 reste bloqué ?
En quoi est-ce différent des guides async généraux ?
Détails du développeur
Auteur
wshobsonLicence
MIT
Dépôt
https://github.com/wshobson/agents/tree/main/plugins/systems-programming/skills/rust-async-patternsRéf
main
Structure de fichiers
📄 SKILL.md