rust-port
Portez du code vers du Rust idiomatique qui garde le comportement d'origine.
- Quoi
- Portez du code vers du Rust idiomatique qui garde le comportement d'origine.
- Coût
- Gratuit
- Prérequis
- Muse, une chaîne d'outils Rust (cargo, clippy) installée localement, et le code source d'origine plus ses tests à porter. Aucune clé, aucun jeton, aucun mot de passe ni secret n'est nécessaire, et ne collez jamais l'un d'eux dans le chat.
- Installation
- Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.
L'objectif est le Rust qu'un développeur Rust aurait écrit pour résoudre le même problème, avec le même comportement observable. Une translittération ligne par ligne, du C écrit en syntaxe Rust ou du Python avec Box<dyn Any>, compile mais garde chaque problème de l'original et ajoute le borrow checker par-dessus. Portez le comportement, pas la structure. D'abord, comprenez l'original avant d'écrire quoi que ce soit: lisez le code et ses tests et tout ce qui l'appelle; listez le comportement observable, chaque fonction publique, ses entrées, ses sorties et chaque façon dont elle peut échouer, y compris les parties silencieuses, l'ordre des résultats, la résolution des égalités, l'entrée vide, le traitement des espaces et de la casse, les limites d'entiers, et ce qui compte comme une erreur par opposition à un cas limite valide; notez ce qui est accessoire, les choses que l'original ne fait que parce que c'est son langage, comme la gestion manuelle de la mémoire, les paramètres de sortie, les retours NULL, l'état global, les tampons de taille fixe, une classe qui existe seulement pour regrouper des fonctions, ou les vérifications isinstance; et si l'original a un bogue ou une ambiguïté, gardez son comportement, signalez-le dans les notes de portage, et laissez l'utilisateur décider, puisque un portage n'est pas l'endroit pour corriger silencieusement des choses. Ensuite, portez les tests d'abord. Traduisez les tests d'origine en tests Rust avant de porter l'implémentation, en gardant un test Rust par test d'origine, avec un nom qui y renvoie, pour qu'un lecteur puisse vérifier la couverture. Les tests sont la définition du "même comportement". Si l'original n'a pas de tests, écrivez des tests de caractérisation à partir de la liste de comportements. Troisièmement, concevez l'API Rust à partir de la liste de comportements, pas à partir de la forme de l'original, puis implémentez par rapport aux tests portés, en utilisant les tables de correspondance pour C et C++, Python, et Go, JavaScript et TypeScript du skill. Gardez le portage proportionné: faites-le correspondre sur les entrées qu'il reçoit vraiment, utilisez la bibliothèque standard Rust pour le reste, ne réimplémentez pas le runtime du langage source, ne faites pas grossir l'API au-delà de la surface publique de l'original plus les implémentations de traits standards que les appelants Rust attendent, et gardez l'algorithme sauf s'il est faux, en le disant dans les notes quand il est échangé. Comme contrôle de taille, un portage depuis C ou C++ atterrit généralement près de la taille de l'original, tandis qu'un portage depuis Python ou JavaScript atterrit généralement à deux ou trois fois l'original, parce que les types, les énumérations d'erreur et leurs implémentations de traits sont explicites en Rust. Limites telles qu'écrites dans le SKILL.md: vérifiez avec cargo build, cargo test et cargo clippy avec avertissements refusés si une chaîne d'outils Rust est disponible, et corrigez tout avant de rapporter. Chaque test porté doit passer, et si les tests de l'original peuvent aussi être lancés, lancez-les et comparez les résultats sur les mêmes entrées. À côté du code, rédigez un court PORTING.md avec une table de correspondance d'API, une correspondance de tests, des différences délibérées, des particularités préservées, et une vérification, c'est-à-dire quelles commandes ont été lancées et leur résultat, ou une déclaration simple qu'elles n'ont pas pu être lancées. Les tests différentiels par rapport à l'original valent la peine, mais quelques dizaines d'entrées réalistes et de cas limites répondent à la question, tandis qu'un harnais de fuzzing sur des millions d'entrées trouve généralement juste des divergences exotiques qui appartiennent aux notes.
Version :
Réponse rapide
Rust Port porte du code de C, C++, Python, Go, JavaScript ou TypeScript vers du Rust idiomatique qui garde le comportement d'origine. Il remplace la mémoire par la possession, les codes d'erreur et les exceptions par Result, les indicateurs et les chaînes magiques par des énumérations, et prouve le portage avec des tests, selon les règles du skill rust-best-practices.
Installation
Copiez le dossier d’installation ci-dessous, puis collez-le dans MusePrérequis: Muse, une chaîne d'outils Rust (cargo, clippy) installée localement, et le code source d'origine plus ses tests à porter. Aucune clé, aucun jeton, aucun mot de passe ni secret n'est nécessaire, et ne collez jamais l'un d'eux dans le chat. 1. Contrôle de sécurité: lisez d'abord le SKILL.md à son chemin source exact, skills/rust-port/SKILL.md dans le dépôt morganlinton/BeautifulRust. Vérifiez qu'il décrit seulement le portage de code vers Rust avec des tests et des notes de portage, et qu'il ne demande aucun identifiant. Si quoi que ce soit dans le fichier demande un secret, arrêtez-vous et signalez-le avant de continuer. 2. Installation: créez un dossier nommé rust-port, puis enregistrez le SKILL.md du dépôt morganlinton/BeautifulRust, chemin exact skills/rust-port/SKILL.md, sous rust-port/SKILL.md. 3. Vérification: ouvrez rust-port/SKILL.md et confirmez que le nom du skill est rust-port. Lancez cargo --version et confirmez qu'il s'affiche, puis confirmez que l'utilisateur comprend que le portage garde le comportement d'origine, signale les bogues et ambiguïtés dans les notes, et ne les corrige pas silencieusement. 4. Rapport: indiquez à l'utilisateur le chemin du dossier, le dépôt et le chemin du fichier source, que l'installation est terminée, et qu'un portage commence par le code d'origine, ses tests, et une liste de comportements, avec les tests portés avant l'implémentation.
Enregistré dans vos installs récentes. Retrouvez-le à tout moment sur /connect.
🔒 Sécurité, provenance et ce que ça touche
Le prompt d'installation ci-dessous inclut déjà les étapes de vérification : votre agent suit la checklist communautaire avant d'installer tout ce qui contient du code exécutable. Vous en voulez plus ?
Questions
Comment installer un skill ?
Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe le skill pour vous — sans configuration manuelle.
Où va mon argent ?
Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.
Que signifie le ✓ à côté du nom d’un créateur ?
Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours un skill avant de l’installer.