Migrace CLI skriptů z Node.js do Rustu: 5–10× zrychlení s pomocí AI
CLI skripty běžící na Node.js 18 zpracovávaly soubory projektu: rekurzivní procházení adresářů, počítání řádků podle přípon, parsování Markdownu s extrakcí front matter. Na MacBooku M4 trvalo spuštění 2 sekundy. Na Intel Core i5-1035G1 s 8 GB RAM to bylo 8 sekund. Tento rozdíl je zásadní při opakovaném spouštění.
Přepis do Rustu s pomocí AI asistenta (Claude Code) přinesl 5–10× zrychlení. Kód vznikal iterativně: kompilátor Rustu odhaloval chyby a AI je automaticky opravovalo bez nutnosti ručního zásahu.
Technický kontext úloh
Skripty řešily typické úlohy:
- Rekurzivní procházení pomocí
globa agregace statistik o počtu řádků v souborech. - Parsování Markdownu, extrakce front matter a tvorba indexu.
Úzké hrdlo: sekvenční spouštění promisů a neoptimalizovaný glob. Node.js by šlo vylepšit, ale Rust exceluje v procházení souborů a operacích náročných na CPU – podobně jako ripgrep nebo fd ve srovnání s grep/find (10–20× rychlejší).
Experiment se zaměřil na jednoduché úlohy: každý skript měl kolem 200 řádků kódu, bez síťové komunikace, vícevláknovosti nebo komplexní business logiky.
Proces migrace s pomocí AI
- Předal jsem zdrojové kódy nástroji Claude Code s pokynem k přepisu do Rustu.
- Kompilátor odhaloval chyby v typech a životnosti (
lifetimes) – AI je iterativně opravovalo. - Revize finálního kódu: 20 minut na kontrolu logiky a srovnání s původní verzí.
Výsledný kód v Rustu byl překvapivě čitelný. Přísná typová kontrola vytvořila efektivní zpětnou vazbu: přesné chybové hlášky kompilátoru fungovaly jako automatická code review pro AI. Nebylo nutné ručně ladit ani studovat základy Rustu.
Distribuce binárních souborů
Binární soubory z Rustu jsou specifické pro jednotlivé platformy, takže jejich ukládání do gitu není efektivní. Řešení vychází z přístupu nástroje esbuild: npm balíčky obsahující předkompilované binárky pro různé platformy. npm install stáhne a nainstaluje přesně tu verzi, která odpovídá vašemu systému, bez nutnosti kompilace ze zdrojových kódů.
Benchmarky
| Počítač | Node.js 18 | Rust | Zrychlení |
|---------------------|------------|----------|-----------|
| i5-1035G1, 8 GB | ~8 s | 1–1,5 s | 5–7× |
| MacBook M4 | ~2 s | ~0,3 s | ~6× |
Výsledky jsou typické pro kombinaci souborového I/O a CPU agregace. Podobně jako u nástroje ccusage, kde lze na specifických operacích dosáhnout až 1000× zrychlení.
Omezení tohoto přístupu
Z hlediska úloh:
- Síťová komunikace nebo databáze – žádný přínos (Rust neurychlí čekání na odpověď).
- Skripty pod 1 sekundu – nevyplatí se investovat čas do migrace.
- Vždy profilujte: použijte
node --profnebo příkaztime.
Z hlediska AI generování:
- Vhodné pouze pro jednoduché skripty. Složitá architektura (trait,
async) se nehodí. - Údržba kódu generovaného AI vytváří technický dluh.
- Tým bez přístupu k AI nástrojům bude mít problém kódu porozumět.
Klíčové poznatky
- Kombinace Rustu a AI přináší 5–10× zrychlení u procházení souborů a CLI úloh náročných na CPU.
- Kompilátor Rustu automatizuje ladění generovaného kódu.
- Distribuce přes npm s platformově specifickými binárkami je praktické řešení.
- Před migrací vždy profilujte; přístup se hodí pouze pro jednoduché izolované skripty.
- Technický dluh: vzniká závislost na AI pro budoucí refaktoring.
Tento přístup lze snadno škálovat na podobné utility, kde Node.js naráží na limity I/O nebo výpočetního výkonu.
— Editorial Team
Zatím žádné komentáře.