Zpět na domů

Rust místo Node.js: 5-10x zrychlení CLI

Článek popisuje migraci CLI-skriptů z Node.js na Rust pomocí AI: zrychlení 5-10x na file traversal a CPU-úlohách. Detaily procesu, benchmarky, distribuce binárníků a omezení přístupu.

5-10x rychleji: Node.js CLI na Rust s AI
Advertisement 728x90

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:

Google AdInline article slot
  • Rekurzivní procházení pomocí glob a 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.

Google AdInline article slot

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í |

|---------------------|------------|----------|-----------|

Google AdInline article slot

| 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 --prof nebo příkaz time.

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

Advertisement 728x90

Číst dál