Post by Chris Han

Building Link2Me 🚀 | From 2 Failures & 1 Exit to Chasing 1-Person Unicorn | Rust/Python/Flutter Developer | Sharing the Journey

JS 툴체인의 무거운 레이어가 전부 Rust로 수렴하고 있습니다. 제가 개인적으로 애용하는 Astro도 지난주 7을 발표하면서 그 트렌드에 올라타고 있는 모양새입니다. 느린 세 지점을 전부 네이티브 Rust로 내려보냈거든요. 1. .astro 컴파일러 — Go 구현을 Rust로 전면 재작성 2. Markdown/MDX — unified(remark/rehype) → Sätteri라는 Rust 프로세서 3. 번들러 — Vite 8이 Rolldown 탑재, esbuild + Rollup을 하나로 통합 결과는 빌드 15~61% 단축, 일부 사이트는 2배 이상입니다. 공식 문서(6천 페이지)는 114초 → 73초로 줄었고요. 그런데 여기서 멈추면 절반만 본 겁니다. 핵심은 각자 따로 Rust로 짠 게 아니라는 점입니다. 컴파일러 파싱도 oxc, MDX 표현식 파싱도 oxc. CSS 스코핑은 Lightning CSS, CommonMark는 pulldown-cmark, 번들러는 Rolldown. 전부 이미 존재하던 Rust 생태계 조각을 가져다 붙인 겁니다. 몇 년 전이었으면 프레임워크마다 파서를, 번들러를, CSS 처리기를 제각각 다시 짰습니다. 지금은 oxc 같은 공용 Rust 기반 위로 다 같이 올라타는 중입니다. 이게 "수렴"의 진짜 의미입니다. 개별 재작성이 아니라 인프라 통합이요. 정직하게 짚을 부분도 있습니다. 이번 릴리스에서 가장 큰 렌더링 개선(2.4배)은 Rust가 아니었습니다. 재귀 렌더링을 큐 기반 단일 루프로 바꾼 순수 JS 알고리즘 개선입니다. 네이티브가 만능이 아니라는 뜻이죠. 병목이 파싱·번들링 같은 CPU 바운드면 Rust로 내려보내고, 순회 구조 문제면 알고리즘을 고칩니다. Astro 팀은 이 경계를 정확히 그었습니다. 패턴도 표준화됐습니다. 플랫폼별 네이티브 바이너리 + WASM 폴백. Rolldown이 그렇고, Lightning CSS가 그렇고, 이제 Astro 컴파일러와 Sätteri가 그렇습니다. 프론트엔드 툴링의 하부는 이렇게 조용히 Rust로 다시 깔리고 있습니다. 위에서 쓰는 우리는 설정 한 줄 안 바꿔도 그 속도를 그냥 받고요. Rust를 좋아하는 사람으로서, 이 흐름을 지켜보는 게 솔직히 뿌듯합니다. 한때 "시스템 언어"라는 상자에 갇혀 있던 Rust가, 이제는 우리가 매일 쓰는 웹 툴체인의 밑바닥을 조용히 떠받치고 있으니까요. #Rustacean #Astro #가즈아 #Rust