Rust로 만든 고성능 웹 프레임워크 Proa 공개
원제 Show HN: Proa – A Rust web framework with fast SSR and multi-target rendering
101 포인트댓글 28

Key Point
한 번의 Rust 코드로 여러 렌더 타겟을 생성하고 React보다 237배 빠른 서버 렌더링을 제공하는 새로운 웹 프레임워크의 등장으로, SSR 기반 웹 개발의 패러다임이 어떻게 변할 수 있는지 보여줍니다.
핵심 요약
- Rust 기반의 웹 프레임워크 Proa를 소개합니다. 빠른 서버 사이드 렌더링(SSR)과 다중 렌더 타겟 지원을 특징으로 합니다.
- 하나의 타입된 컴포넌트로 HTML, Markdown 등 여러 렌더 타겟을 동시에 생성할 수 있습니다.
- 벤치마크 결과에 따르면 Proa의 서버 렌더링 속도는 React의 renderToString보다 237배 빠릅니다(8vCPU AMD EPYC-Milan VPS 기준).
- GitHub, Sentry, Airbnb 같은 대규모 앱을 Proa로 재구성한 데모를 제공하며, 모두 빠른 서버 렌더링과 선택적 상호작용을 보여줍니다.
- RSJS 아일랜드 방식으로 필요한 부분만 JavaScript로 컴파일하며, 각 아일랜드는 공유 런타임 포함 약 1.3KB(gzip)의 JavaScript를 생성합니다.
- Streaming SSR을 지원해 문서 순서대로 HTML을 내보내거나 느린 데이터가 페이지 로드를 차단하지 않도록 Suspense 경계에서 준비된 청크를 순서대로 스트리밍할 수 있습니다.
- DataLoader 기반의 WebContext를 통해 모든 렌더에 타입된 요청 스코프 데이터, 응답 메타데이터, 라우트 상태, 로더 캐싱에 접근할 수 있습니다.
- Axum 네이티브 라우팅으로 사용하거나 Node, Go, Python, Ruby, Java에서 FFI를 통해 호출할 수 있어 기존 스택과 함께 사용 가능합니다.
- 한 라우트만 먼저 Proa로 옮겨 기존 Next.js나 Rails 앱과 함께 실행하면서 프로덕션에서 지연 시간과 비용을 비교할 수 있습니다.
- Proa UI는 Shadcn 스타일의 58개 컴포넌트를 제공하며, 모두 타입된 Rust 소스 형태로 저장소에 포함되어 커스터마이징 가능합니다.
- 출력 자동 이스케이프, CSRF 보호, 보안 헤더, 고정 업스트림 프록시 등 보안 기능이 프레임워크 차원에서 제공됩니다.
- cargo build 중에 WCAG과 WAI-ARIA 검사를 실행해 배포 전 마크업 결함이 컴파일 단계에서 발견됩니다.