앱 로직은 Go로 실행하고, 각 플랫폼의 네이티브 뷰로 화면을 그리는 크로스 플랫폼 네이티브 UI 엔진입니다.
marc2332/freya
Rust로 데스크톱과 모바일 앱을 만드는 크로스 플랫폼 네이티브 선언형 GUI 라이브러리입니다.
- 스타
- 3,344
- 포크
- 151
- 열린 이슈
- 42
- 마지막 커밋
- 6시간 전
어떤 프로젝트인가요?
Freya는 데스크톱과 기타 플랫폼에서 네이티브 인터페이스를 렌더링하는 Rust용 선언형 GUI 라이브러리입니다. 개발자는 Rust 함수와 컴포넌트로 UI를 작성하며, use_state 같은 훅으로 설정한 상태가 바뀌면 해당 상태에 의존하는 부분만 자동으로 다시 렌더링됩니다. 0.4 버전부터는 Dioxus 대신 자체 반응형 코어를 기반으로 동작합니다.
Button, Switch, Slider, VirtualScrollView, Calendar, ColorPicker를 비롯한 다양한 컴포넌트가 기본 제공됩니다. 선택적 feature flag를 활성화하면 tree-sitter 기반 코드 에디터, Markdown 뷰어, 라우팅, freya-radio를 통한 전역 상태 관리, Fluent 기반 i18n, Material Design 스타일링, Blitz를 통한 HTML/CSS 렌더링, PTY를 지원하는 터미널 에뮬레이터, Plotters를 통한 그래프 기능을 추가할 수 있습니다.
또한 freya-testing을 이용한 헤드리스 테스트를 지원합니다. 클릭을 시뮬레이션하고 UI를 이미지 파일로 렌더링할 수 있으며, 컴포넌트 트리를 검사하는 devtools 앱도 제공합니다.
핵심 기능
- 01훅 기반 상태를 사용하는 선언형 컴포넌트 모델로, 상태에 의존하는 UI를 자동으로 다시 렌더링합니다.
- 02Button, Switch, Slider, Calendar, VirtualScrollView 등의 기본 제공 컴포넌트가 있습니다.
- 03텍스트 처리에는 Rope를, 구문 강조에는 tree-sitter를 사용하는 선택적 코드 에디터를 제공합니다.
- 04feature flag를 통해 라우팅, 전역 상태 관리, Fluent 기반 국제화를 추가할 수 있습니다.
- 05PTY를 지원하는 내장 터미널 에뮬레이터와 Blitz를 통한 HTML/CSS 렌더링을 제공합니다.
- 06UI를 파일로 렌더링할 수 있는 헤드리스 테스트를 지원합니다.
활용 사례
- 순수 Rust로 네이티브 데스크톱 도구나 유틸리티를 만듭니다.
- 코드 에디터나 터미널 인터페이스 같은 개발자 도구를 제작합니다.
- 그래프 기능을 활용해 데이터 시각화 대시보드를 프로토타이핑합니다.
- 창을 열지 않고 Rust GUI 애플리케이션의 UI 테스트를 작성합니다.
빠른 시작
- 1
Cargo.toml에 Freya를 추가하세요
- 2
서브모듈과 함께 저장소를 클론하세요
git clone --recurse-submodules https://github.com/marc2332/freya.git - 3
프로젝트 디렉터리로 이동하세요
cd freya - 4
예제를 실행하세요
cargo run --example counter
사용 전 알아둘 점
- 예제를 실행하려면 Rust 개발 환경과 git 서브모듈이 필요합니다.
- Windows의 windows-gnu 빌드에서는 컴파일 오류가 발생할 수 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- freya은(는) 무엇인가요?
- Rust로 데스크톱과 모바일 앱을 만드는 크로스 플랫폼 네이티브 선언형 GUI 라이브러리입니다. Freya는 데스크톱과 기타 플랫폼에서 네이티브 인터페이스를 렌더링하는 Rust용 선언형 GUI 라이브러리입니다. 개발자는 Rust 함수와 컴포넌트로 UI를 작성하며, use_state 같은 훅으로 설정한 상태가 바뀌면 해당 상태에 의존하는 부분만 자동으로 다시 렌더링됩니다. 0.4 버전부터는 Dioxus 대신 자체 반응형 코어를 기반으로 동작합니다.
- freya은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- freya은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- freya은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. freya의 마지막 커밋은 2026년 11월 7일입니다.
- freya은(는) 어디에 사용할 수 있나요?
- 순수 Rust로 네이티브 데스크톱 도구나 유틸리티를 만듭니다. 코드 에디터나 터미널 인터페이스 같은 개발자 도구를 제작합니다. 그래프 기능을 활용해 데이터 시각화 대시보드를 프로토타이핑합니다. 창을 열지 않고 Rust GUI 애플리케이션의 UI 테스트를 작성합니다.
- freya는 어떻게 설치하나요?
- Cargo.toml에 Freya를 추가하세요 서브모듈과 함께 저장소를 클론하세요: git clone --recurse-submodules https://github.com/marc2332/freya.git 프로젝트 디렉터리로 이동하세요: cd freya 예제를 실행하세요: cargo run --example counter
- freya은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/marc2332/freya
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Slint는 Rust, C++, JavaScript, Python 앱에서 네이티브 UI를 만들 수 있는 선언형 GUI 툴킷입니다.
Rust 기반 GPUI 프레임워크로 선언형 UI를 렌더링하는 네이티브 데스크톱 앱용 Elixir 라이브러리입니다.
C#과 XAML로 데스크톱, 모바일, 임베디드 및 WebAssembly 앱을 만드는 크로스 플랫폼 .NET UI 프레임워크입니다.
프런트엔드 경험 없이 Flutter 기반 UI로 웹, 데스크톱, 모바일 앱을 만들 수 있는 Python 프레임워크입니다.
Rust 또는 TSX로 앱을 작성하고 플랫폼별 네이티브 위젯으로 렌더링하는 크로스 플랫폼 UI 엔진입니다.