Rari - Rust-Powered React 프레임워크
(rari.build)- Rust 컴파일 성능을 활용해 React 애플리케이션의 빌드와 실행 속도를 극대화한 런타임 가속 렌더링 인프라
- React Server Components를 기본 지원해 클라이언트로 전송되는 JavaScript 양을 줄임
- Rolldown-Vite 기반의 차세대 Rust 번들러로 설정 없이 빠른 빌드를 구현
- tsgo를 이용한 TypeScript 완전 지원으로 10배 빠른 타입 검사 제공
- Vite 기반 HMR, 상세 오류 메시지, 네이티브 속도의 개발 도구로 매끄러운 개발 경험 보장
Rust 기반 성능 최적화
- Rust로 컴파일되어 네이티브 수준의 속도를 제공
- 빌드와 런타임 모두에서 고속 처리 가능
- React 애플리케이션의 성능 병목을 최소화하는 구조
React Server Components 지원
-
React Server Components를 기본 내장
- 클라이언트로 전송되는 JavaScript 양을 줄여 로딩 효율 향상
- 서버 중심 렌더링을 통해 전송 최적화 실현
설정 없는 빌드 환경
-
Rolldown-Vite를 기반으로 한 Zero Configuration 구조
- 별도 설정 없이 즉시 빌드 가능
- Rust로 작성된 번들러가 번개 같은 빌드 속도 제공
번들링 및 타입 안전성
- Rolldown을 이용한 네이티브 속도의 번들링으로 최대 성능 확보
-
tsgo를 통한 TypeScript 완전 지원
- 10배 빠른 타입 검사와 정확한 타입 정의 제공
개발자 경험
- Vite 기반 HMR(Hot Module Replacement) 로 즉각적인 코드 반영
- 상세한 오류 메시지와 네이티브 속도의 개발 도구로 원활한 워크플로우 지원
- 개발 효율성과 생산성을 높이는 Rust-React 통합 환경 제공
Hacker News 의견들
-
사실 이 프로젝트가 마음에 들었음. 하지만 설명서와 문서 품질이 너무 부족함
“rust-powered”라는 표현이 단순히 rolldown으로 JS를 번들링한다는 뜻이라면 괜찮지만, Rust 프레임워크로 오해하기 쉬움
또 “seamless NPM package integration” 같은 문구는 LLM이 쓴 것처럼 느껴짐. 대부분의 JS 라이브러리가 이미 그렇게 작동하니까 의미가 없음
그래도 React용 간단한 프레임워크가 거의 없다는 점에서, 빈 프로젝트에서 RSC로 바로 넘어갈 수 있는 단순함은 정말 훌륭함. 이게 슬로건이 되어야 함
코드베이스는 문서보다 훨씬 성숙해 보였음. Vite 플러그인도 옵션 지원이 잘 되어 있는데, 아직 문서화가 안 되어 있을 뿐임
나중에 보니 Rust 런타임이 실제로 JS를 실행한다는 걸 알게 되었음. 그런데 이게 프레임워크와 분리된 건지, 아니면 Rust 런타임에서만 작동하는 건지 궁금함. Node에서도 실행 가능한지 알고 싶음- 메시지가 혼란스러웠다는 말에 동의함. 지금까지 혼자 작성해왔기 때문에, 문구 개선에 대한 PR은 언제든 환영임
“Rust-powered”는 번들러가 아니라 서버 런타임을 의미함. HTTP 서버, RSC 렌더러, 라우팅 모두 Rust로 작성되어 있고, React 컴포넌트는 내장된 V8 엔진으로 실행됨
npm 통합 부분은 Rust 런타임이 node_modules 해석을 직접 처리한다는 의미였음. Deno처럼 npm specifier를 쓰지 않음
“Zero to RSC in minutes”라는 슬로건 제안이 훨씬 명확함. 런타임 안정화에 집중하느라 문서가 뒤처졌는데, 이제 보완해야 할 시점임
- 메시지가 혼란스러웠다는 말에 동의함. 지금까지 혼자 작성해왔기 때문에, 문구 개선에 대한 PR은 언제든 환영임
-
React는 이제 현대 JS 프레임워크 중 최악이라고 생각함. Vue는 훨씬 앞서 있고, Svelte나 Solid, 심지어 Marko도 더 낫다고 느낌
- React가 지난 10년간 좋지 않은 추상화를 추가한 건 맞음. 특히 hooks와 effects
하지만 여전히 최악은 아님. JSX와 함수형 컴포넌트, 단순한 상태 관리라는 혁신으로 대중화에 성공했음
지금은 커뮤니티 규모가 너무 커서 쉽게 대체되지 않을 것임. 다른 프레임워크들이 조금씩 개선되긴 했지만, 혁신의 폭은 크지 않음 - “세상은 틀렸고 나만 옳다”는 식의 주장처럼 들림. 다른 프레임워크들이 그렇게 앞서 있다고 느끼지 않음. 여러 개 써봤지만 React가 가장 이해하기 쉬웠음
- React 개발자인데 최근 몇 달간 Vue를 써보니 이점이 거의 없었음
- 완전히 동의함. React는 비표준 패턴으로 작성하면 훨씬 나아지지만, 커뮤니티가 너무 교조적이라 그런 시도를 비웃음
나는 개인 프로젝트에서 MVC/MVVM 구조를 써서 훨씬 다루기 쉬움. IDE 플러그인 의존도도 낮고 TypeScript 버전도 자유롭게 선택 가능함 - SaaS SDK 지원 여부가 중요함. 대부분 React/Next.js용 SDK만 제공하므로, 다른 프레임워크를 쓰면 팀 내에서 이상하게 보임
- React가 지난 10년간 좋지 않은 추상화를 추가한 건 맞음. 특히 hooks와 effects
-
Rust + React 조합을 실험 중임. 내가 만든 react-vello는 Rust GPU 렌더러인 Vello를 React 렌더러로 노출함
WASM + WebGPU를 통해 브라우저에서 Rust가 렌더링을 담당하고, React로 선언적으로 도형과 텍스트를 그릴 수 있음- Rust + React 조합은 정말 아름다움. 복잡한 로직은 Rust로, UI는 React로 처리함
wasm-bindgen과 tsify로 양쪽을 연결하는 게 너무 쉬워서 마치 같은 언어처럼 느껴짐. 엔지니어링의 정수라고 생각함
React Vello도 멋져 보임, 공유해줘서 고마움 - Dioxus Native와 비슷한 접근으로 보임
- Rust 서버가 WebSocket으로 MorphDOM diff를 브라우저에 보내는 구조도 흥미로울 것 같음
- Firefox + Linux 환경에서는 데모가 작동하지 않음
- 정말 멋진 프로젝트임
- Rust + React 조합은 정말 아름다움. 복잡한 로직은 Rust로, UI는 React로 처리함
-
“React Server Components framework powered by a Rust runtime”이라는 설명이 핵심임
- 덕분에 개념을 이해했음. 이제 사이트로 돌아가서 자세히 살펴볼 예정임
-
Rust 기반 웹 프레임워크를 찾는다면 Leptos를 추천함
관련 링크: HN 토론, YouTube 데모- Leptos도 좋아함. Rust로 풀스택 앱을 만들고 싶은 사람에게 훌륭한 선택임
하지만 rari는 다른 접근을 취함. Rust 프레임워크가 아니라, Rust 런타임 위에서 동작하는 React Server Components 프레임워크임
목표는 Rust의 복잡성을 숨기고 JS/TS 개발자가 Rust를 몰라도 고성능 React 앱을 만들 수 있게 하는 것임
- Leptos도 좋아함. Rust로 풀스택 앱을 만들고 싶은 사람에게 훌륭한 선택임
-
“Rust-Powered Performance — Native speed with Rust compilation for blazing-fast builds and runtime”이라는 문구가 웃김
정작 Rust 자체는 컴파일이 느린데, 다른 언어의 속도를 자랑하게 도와주는 느낌임- “보물을 안내하지만 스스로는 가질 수 없는 자”라는 밈이 딱 어울림
- 런타임과 컴파일타임은 다름
-
ReasonML과 React-Reason처럼 작동하는지 궁금함. Rust가 JS 엔진을 재구현한 건지 이해가 안 됨
- ReasonML과는 다름. 여전히 일반 React/TypeScript로 작성함
Rust는 서버 런타임 역할을 함. Node.js 대신 Rust 서버가 내장된 V8 엔진으로 React Server Components를 실행함
즉, React 코드는 그대로지만 서버가 Rust 기반이라 Node보다 빠른 성능을 제공함 - ReasonML을 완전히 잊고 있었음
- ReasonML과는 다름. 여전히 일반 React/TypeScript로 작성함
-
작성자임. 지금은 문제 해결됨. rate limiter가 너무 공격적으로 동작했던 게 원인이었음
- 멋진 프로젝트임. 아키텍처를 살펴보니 백엔드에서 JS를 실행하기 위해 Deno VM을 사용하는 것 같음
나는 JVM 백엔드용으로 비슷한 걸 만들고 있음 — double-view
GraalVM으로 JS를 실행하지만, 통합 문제 때문에 JS를 WebAssembly로 컴파일해야 함. rari도 같은 방식을 쓰는지 궁금함
- 멋진 프로젝트임. 아키텍처를 살펴보니 백엔드에서 JS를 실행하기 위해 Deno VM을 사용하는 것 같음
-
이름이 “Ferrari”처럼 빠르고 React를 결합한 느낌이라 멋짐. 특정 사용 사례나 영감이 있었는지 궁금함
나도 최근 오픈소스 프로젝트를 공개했는데, 당신의 프로젝트가 주목받는 걸 보니 반가움- 고마움! 실제로 이름은 “Runtime Accelerated Rendering Infrastructure”의 약자 RARI에서 왔음
하지만 Ferrari 연관성도 마음에 듦, 성능 테마에 잘 어울림
Rust를 많이 쓰다 보니 React 개발에서도 그 성능 이점을 JS 개발자에게 제공하고 싶었음
Rust의 복잡함은 숨기되, 속도는 그대로 가져오는 게 목표였음
프로젝트 출시 축하함! 어떤 걸 만들었는지 궁금함
- 고마움! 실제로 이름은 “Runtime Accelerated Rendering Infrastructure”의 약자 RARI에서 왔음
-
문서가 Server Components로 시작하던데, 최근 보안 사고 이후에도 여전히 유행 중인지 궁금함
참고: React Server Components RCE 취약점 보고서