Rust로 쓰는 Compose 모양의 UI,그리는 것은 Compose.
Compose 모양의 Rust API, 스키마에서 생성되는 좁은 C ABI, 그리고 Compose 자신의 텍스트 레이아웃, 위젯, 플랫폼 IME로 그리는 미리 컴파일된 Compose 렌더러입니다.
웹뷰도, 동봉된 JVM도 없는 네이티브 UI. 데스크톱 앱 하나를 실행 파일 하나로 배포하는 것이 목표입니다.
- 웹뷰 없음
- 동봉된 JVM 없음
- 한글 포함 플랫폼 IME 그대로
- 제자리에서 읽는 레코드
// Planned shape for 1.0.0. Does not compile against 0.0.x.
#[composable]
fn counter() {
let count = remember(|| mutable_state_of(0));
Column(Modifier::new().fill_max_width(), || {
Text(format!("{}", count.get()));
Button(|| count.set(count.get() + 1), || Text("+1"));
});
}
코드는 Rust에, 픽셀은 Compose에
코드와 상태는 Rust가 갖고, 픽셀과 텍스트 스택과 입력기는 Kotlin이 갖습니다. 둘 사이에는 좁은 C ABI 하나뿐입니다. 한 스레드 위에서 동기로 호출하고, 레코드는 쓰인 자리에서 읽히므로, 키를 누르면 같은 호출 안에서 답이 돌아옵니다.
여기 보인 작성 API는 2026-10-20의 1.0.0에 들어옵니다. 그 아래의 경계, 스키마, 렌더러는 지금 0.0.1로 배포됩니다.
28.76 MB실행 파일 하나, notepad 샘플, macOS arm64
35.1 MB그 실행 파일이 창을 띄웠을 때의 실제 점유 메모리
약 12 ns브라우저에서 렌더러가 Host를 부르는 호출 한 번
6.95 MB브라우저의 렌더러와 Skia, gzip 기준
앞의 두 숫자는 실행 파일 안에 링크되는 Kotlin/Native 렌더러의 것이며, 이것은 0.0.1 다음에 기본이 됩니다. 0.0.1은 데스크톱에서 GraalVM 네이티브 이미지를 배포합니다. 어디서 무엇이 도나를 보십시오.
현재 상태
| 부분 | 상태 |
|---|---|
| 경계, 프로토콜, 스키마, 렌더러 다운로드 | 0.0.1에 구현 |
작성 API: #[composable], remember, launch | 2026-10-20의 1.0.0을 향한 계획 |
| macOS, Android, Web | 처음부터 끝까지 동작 |
| Linux, Windows, iOS | 빌드되고 시작됨 |