프로젝트 소개
Dioxus는 단일 코드베이스에서 Rust로 크로스 플랫폼 애플리케이션을 구축하기 위한 프레임워크 및 툴링 세트입니다. README에 따르면 동일한 프로젝트가 WebAssembly와 DOM을 통해 웹을 타겟팅할 수 있으며, 웹뷰 또는 실험적으로 WGPU나 Skia 기반의 Freya 렌더러를 통해 macOS, Linux, Windows 데스크톱을 지원하고, ipa 및 apk 출력과 직접적인 Java 및 Objective-C 호출을 통해 iOS 및 Android 모바일을 지원하며, 서버 사이드 렌더링도 가능합니다.
프로그래밍 모델은 Element를 반환하는 함수와 선언적 마크업을 위한 rsx! 매크로를 중심으로 하며, 상태는 시그널(signals)을 통해 처리됩니다. README는 이러한 상태 관리가 React, Solid, Svelte의 아이디어를 차용했다고 설명합니다. 풀스택 작업을 위해 이 프레임워크는 axum과 통합되며 서버 함수, 추출기(extractors), 미들웨어, 라우팅, Suspense, 하이드레이션(hydration), 정적 사이트 생성, 증분 재생성, WebSockets, SSE, 스트리밍, 파일 업로드 및 다운로드, 폼을 제공하며, 기존 axum 백엔드를 통합하는 옵션도 제공합니다.
툴링은 dioxus-cli를 통해 제공됩니다. dx serve 명령은 마크업, 스타일 및 에셋에 대한 통합 핫 리로딩과 함께 앱을 실행하며, 실험적인 dx serve --hotpatch 옵션은 Rust 코드를 실시간으로 업데이트합니다. dx bundle 명령은 최적화를 통해 앱을 빌드하고 번들링하며, README는 웹을 위한 avif 생성, wasm 압축 및 최소화를 언급합니다. 설치는 설치 스크립트나 git을 통한 cargo install로 가능하며, 저장소 예제는 cargo run --example로 실행할 수 있습니다.
또한 이 프로젝트는 shadcn/ui 및 Radix Primitives를 모델로 한 일련의 퍼스트 파티 프리미티브 컴포넌트를 제공하고, MDN 문서를 사용하여 HTML 요소와 리스너를 문서화하며, 문서 사이트가 새로운 기능의 테스트베드로 사용되고 Dioxus 자체로 지속적 통합(CI)을 실행한다고 밝히고 있습니다.
Dioxus는 활발한 Discord와 GitHub 이슈 트래커, 커뮤니티 운영 SDK 및 관련 크레이트(crates)를 위한 GitHub 조직을 갖춘 커뮤니티 주도 프로젝트로 설명됩니다. 또한 FutureWei, Satellite.im 및 GitHub Accelerator 프로그램의 지원을 받는 소규모 전임 핵심 팀이 있습니다. 저장소에는 중국어, 포르투갈어(브라질), 일본어, 터키어 및 한국어로 번역된 README가 포함되어 있습니다. 라이선스는 MIT 또는 Apache-2.0 듀얼 라이선스입니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.