TL;DR

  • Whisker는 세밀한 반응형 런타임, Taffy 레이아웃, 네이티브 Host 렌더러를 사용해 Rust로 iOS·Android·웹·데스크톱 앱을 구축하는 프레임워크임.
  • 가상 DOM(Virtual DOM) 없이 컴포넌트와 반응형 상태를 렌더링하는 구조임.
  • 소스 코드를 수정하고 저장하면 앱을 재시작하지 않고 1초 이내에 핫 리로드되며, 수정하지 않은 컴포넌트의 상태는 유지됨.
  • whisker run과 whisker build가 whisker.rs의 설정을 바탕으로 gen/ 아래 네이티브 프로젝트를 생성함.
  • 현재 프리알파 단계이며, 런타임·스타일링·렌더러·모듈·라우팅·핫 리로드가 네 플랫폼에서 동작하고 API는 1.0 전에 변경될 수 있음.

시작하기

  • CLI 설치와 iOS 시뮬레이터용 Rust 타깃 추가 후 새 프로젝트를 만들고 실행하는 흐름임.
  • cargo install whisker-cli로 CLI를 설치함.
  • Apple Silicon의 iOS 시뮬레이터에는 aarch64-apple-ios-sim 타깃을 추가함.
  • whisker new my-app으로 프로젝트를 만들고 디렉터리에 들어간 뒤 whisker run ios로 실행함. android, web, desktop도 실행 대상으로 선택 가능함.
  • 플랫폼별 Rust 타깃과 추가 요구 사항이 다름.
  • Android: aarch64-linux-android 타깃과 Android SDK, NDK, JDK가 필요함.
  • 웹: wasm32-unknown-unknown 타깃이 필요함.
  • Intel Mac의 iOS 시뮬레이터: aarch64-apple-ios-sim 대신 x86_64-apple-ios 타깃이 필요함.
  • whisker doctor로 누락된 항목을 확인하거나 Installation 안내를 참고할 수 있음.
  • whisker run은 소스 변경을 감시하고 앱을 재시작하지 않은 채 1초 이내에 실행 중인 앱에 변경 사항을 반영하며, 수정하지 않은 컴포넌트의 상태를 보존함.

앱 구성

  • 앱 메타데이터와 플랫폼 설정은 whisker.rs에 저장함.
  • whisker run과 whisker build는 해당 설정으로 gen/ 아래 네이티브 프로젝트를 생성하므로 별도의 실행 절차가 필요하지 않음.
  • cargo add로 플러그인을 추가하고 whisker.rs에서 설정함.
  • 예제 카운터 앱은 signal(0)으로 상태를 만들고, computed로 카운트 문자열을 구성함. 탭 이벤트가 발생하면 값을 1 증가시키며, css!로 레이아웃과 색상, 간격, 글꼴 크기를 지정함.

문서

  • 설치 안내, 핵심 개념, 가이드, 전체 API 참조를 whisker.rs/docs에서 제공함.

상태

  • 현재 프리알파 단계임.
  • 유지형 Rust 런타임, 타입 지정 스타일링, Host 렌더러, 모듈, 라우팅, 핫 리로드가 iOS·Android·웹·데스크톱에서 동작함.
  • 1.0 전에 API가 변경될 수 있음.

라이선스

  • Apache-2.0 또는 MIT 중 선택한 라이선스로 사용 가능함.