최근 수정 시각 : 2026-10-13 13:17:03

Tauri


타우리
Tauri
파일:TAURI_Glyph_Color.svg
<colbgcolor=#fff,#1c1d1f><colcolor=#1f2023,#fff> 종류 GUI 프레임워크
라이선스 Apache License 2.0, MIT 라이선스
파일:홈페이지 아이콘.svg | 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg

1. 개요2. 현황3. 지원 OS4. 여담

1. 개요


프론트엔드로는 JavaScript를, 백엔드로는 Rust를 사용하는 크로스플랫폼 GUI 프레임워크. 일렉트론과 유사하지만 백엔드로 Rust를 사용한다는 것을 비롯한 여러 차이점이 있다.

Chromium 이 아닌 각 OS에 포함된 시스템 웹뷰 (리눅스의 경우 webkitgtk) 를 사용하며 Rust로 백엔드를 작성하기 때문에 일렉트론의 고질적인 메모리 사용량과 관련된 문제들을 해결할 것으로 주목받는 프레임워크이다.

2. 현황

주목받는 것과 별개로 실제 대규모 프로젝트 채택률은 지지부진하다. Electron 과 달리 OS 내장 웹뷰를 사용하는 특성상 OS 종류와 버전에 따른 동작에 차이가 있을 수 있으며, Electron 또한 백엔드에서 Rust, C++를 사용 가능하다. Electron 이라고 백엔드 Rust를 못 쓰는 것이 아니기 때문에 프로젝트 일관성을 위해 메모리 사용량을 다소 포기하는 게 현 시점에서는 가장 투입대비 산출이 좋은 선택이다. Electron도 표시되는 껍데기만 웹기술을 사용할 거라면 그렇게 엄청난 컴퓨터에 부담이라고 보기 어렵다.

플랫폼별 지원 역량의 불균형 또한 고질적인 문제다. Windows는 시스템 차원에서 WebView2를 표준 GUI 런타임으로 밀어주고 있으나, macOS와 Linux에서는 웹뷰 기반의 앱 개발이 제조사의 주류 생태계 전략에서 벗어나 있어 최적화나 API 지원 우선순위에서 밀려나 있다. 이로 인해 '한 번 작성해서 어디서나 실행한다(Write Once, Run Anywhere)'는 크로스플랫폼 프레임워크 본연의 가치인 일관성 확보에 난항을 겪게 된다.

다만 UI나 시스템이 복잡하지 않으며 단순한 시각정보 제공이 목적인 프로그램들에서는 점유율이 계속 올라가고 있다. 내부용 자동화툴이나 아니면 편의성 도구 등 UI 나 시스템 복잡성이 필요하지 않은 프로젝트들에서 현대적인 UI 를 가장 효율적으로 만들어 낼 수 있는 프레임워크 중 하나이기 때문이다. 또한, 상술한 WebView2 와의 궁합 덕분에 오히려 윈도우 전용 프로그램을 만드는데 .NET 프레임워크 대체하는 용도로는 상당히 쓸 만하다.

타입스크립트와 러스트 둘 다 최근 AI가 비교적 잘 다루는 편이므로, 바이브 코딩과 궁합이 뛰어나기도 하다. 웹 개발만 잔뜩 하고 러스트는 뒷방 늙은이 수준으로 추방하거나[1], 거꾸로 웹은 화면만 보여주고 러스트가 다 해먹을 수 있는데 AI는 두 형태를 모두 다 잘 하기 때문이다.

3. 지원 OS

출처: Tauri Prerequisites

Windows 7 을 지원하지만 까다롭다.
  1. Windows 7 을 지원하는 마지막 Tauri 버전이 2.11 이다.[3] 터미널에 다음 명령어를 실행한다.
    npm create tauri-app@~2.11.0
  2. Rust 1.77.2 을 사용해야 한다. /src-tauri/Cargo.toml 에 다음을 추가한다.
    {{{#!syntax python
[package]
edition = "2021"
rust-version = "1.77.2"
}}}
1. 프로젝트 루트 경로에 /.cargo/config.toml 를 생성하고 아래와 같이 작성한다.
{{{#!syntax python
[resolver]
incompatible-rust-versions = "fallback"
}}}
1. Cargo를 사용하여 의존성을 확인하고 Cargo.lock을 생성해야 하지만, Rust 1.77.2 툴체인의 Cargo에서는 의존성 해결이 정상적으로 이루어지지 않는다. 따라서 Cargo.lock 생성 시에는 Stable 툴체인의 Cargo를 사용한다. 반면 실제 프로젝트 빌드는 Rust 1.77.2 툴체인을 사용한다. 터미널에 다음 명령어를 실행한다.
* 프로젝트 루트에서 사용
cargo +stable generate-lockfile --manifest-path src-tauri/Cargo.toml
* 또는 src-tauri 에서 사용
cargo +stable generate-lockfile
1. 이후 Rust 패키지를 추가하더라도 Rust 버전에 따른 하위 호환성 체크가 안되어 컴파일이 안될 수 있다. 하나의 패키지가 의존하는 다른 여러 패키지들이 요구하는 Rust 버전을 고려하여 패키지 버전을 낮춰봐야 한다.
1. Windows 10 미만의 OS 는 WebView2 가 사전설치되어 있지 않으므로 앱 배포시 WebView2 런타임 설치 안내가 필요하다.
1. Windows 10 미만의 OS 에 WebView2 를 설치하더라도 WebView2 109 버전에서 지원이 끊겼기 때문에 프론트엔드 설계시 하위 호환성에 유의한다.

4. 여담

  • 자체 웹뷰 이름이 WRY다. 공식 저장소에도 로드롤러가 있는 걸 볼 때 노린 거다.[4][5]

[1] 문자 그대로 타우리를 띄우기만 하고, 실패 시 오류 한 줄 띄우면 된다.[2] 데스크탑과 동기화가 필요한 프로그램을 짤 때 유용하게 쓸 수 있다.[3] [email protected], 2026-09-26[4] 현재는 확인할 수 없고 wry-v0.49 에서 제거되었다.[5] https://aznhe21.hatenablog.com/entry/2022/12/03/rust-wry