Contents
타우리(Tauri)란?
타우리는 Rust 와 HTML을 이용하여 Webview를 통해 데스크탑용 애플리케이션을 구축하는데 사용되는 툴킷입니다. 데스크탑에 설치되어 있는 OS의 기본 Webview를 이용하기 때문에 배포파일의 크기가 다른 웹앱(크로미엄, 일렉트론 등)에 비해 매우 작으며, OS에서 Webview를 관리하기 때문에 별도로 업데이트 및 유지 관리가 필요하지 않습니다. 또한 Rust에 의해 컴파일되어 별도의 런타임을 제공하지 않아도 독립적으로 실행이 가능합니다.
NOT
VM이나 가상화 환경이 아니다.
Webview OS 애플리케이션을 만들기 위한 어플리케이션 툴킷입니다.
단순한 커널 랩퍼(Wrapper)가 아니다.
직접적으로 OS에 대한 시스템 호출을 위해 WRY와 TAO를 이용합니다.
라이선스
MIT 또는 Apache-2.0 라이선스 적용.
아키텍쳐
타우리는 런타임, 매크로, 유틸리티 및 API를 포함하는 툴킷으로 컴파일시에 tauri.conf.json 파일에서 필요한 기능들을 확인하고 앱 생성시에 기능들을 추가하게 됩니다.
- tauri-runtime
하위 수준의 webview 라이브러리와 타우리 사이의 런타임 라이브러리입니다. - tauri-macros
Tauri-codegen 크레이트를 활용하여 컨텍스트, 핸들러 및 명령을 위한 매크로를 만듭니다. - tauri-utils
환경 파일 구문 분석, 플랫폼 트리플(Platform triples) 감지, CSP(Content Security Policy) 와 Assets 관리 등과 같은 많은 곳에서 재사용이 가능한 유용한 유틸리티를 제공하는 공통 코드입니다. - tauri-runtime-wry
이 라이브러리는 인쇄, 모니터 감지와 윈도우 관련 작업과 같은 WRY를 위한 시스템 수준의 특별한 상호작용을 할 수 있게 합니다. - tauri-build
cargo에 필요한 어떤 특수 기능을 조작하기 위해 빌드시 매크로를 적용합니다. - tauri-codegen
앱과 시스템 트레이를 위한 아이콘을 포함하여 Assets을 삽입, 해시 및 압축한다. 컴파일시 tauri.con.json을 분석하고 Config 구조체를 생성합니다. - 업스트림(Upstream) 라이브러리
- WRY Cross-platform Webview rendering library : Windows, macOS, Linux와 같은 모든 주요 데스크탑 플랫폼을 지원하는 크로스 플랫폼용 Webview 렌더링 Rust 라이브러리이며 플랫폼에 맞는 웹뷰를 선택하고 상호작용을 결정해주는추상화 계층입니다. Webview와의 인터페이스를 유지하고 관리합니다.
- TAO Cross-platform application window creation library : Windows, MacOS, Linux와 같은 모든 주요 플랫폼을 지원하는 크로스 플랫폼용 창 생성 Rust 라이브러리이며 애플리케이션 윈도우를 만들고 관리합니다. (Rust로 작성되었으며 메뉴 표시줄 및 시스템 트레이 등과 같은 것을 구현할 수 있습니다.)
타우리 도구
기본 도구
- API (JavaScript / TypeScript)
Webview가 백엔드 활동을 위해 호출/수신 하도록 프론트엔드 프레임워크에 임포트하기 위해 CommonJS(cjs)와 ECMAScript Module(esm) JavaScript 엔드포인트(요청을 받아 응답을 제공하는 서비스를 사용할 수 있는 지점)를 생성하는 TypeScript 라이브러리 입니다. 호스트에 웹뷰의 메시지 전달을 위해 사용합니다. - Bundler (Rust / Shell)
MacOS, Windows 및 Linux 등의 플랫폼용 타우리 앱을 빌드하기 위한 라이브러리입니다. (참고로 현재 모바일 플랫폼을 위한 알파 버전이 나와 있습니다.) - cli.rs (Rust)
이 Rust 실행 파일은 MacOS, Windows 및 Linux의 CLI가 필요로 하는 요구 활동에 대한 모든 인터페이스를 제공합니다. - cli.js (JavaScript)
각 플랫폼의 npm 패키지를 생성하기 위해 napi-rs를 사용하여 cli.rs를 래핑한 래퍼입니다. - create-tauri-app (JavaScript)
선택한 프론트엔드 프레임워크의 새 프로젝트를 신속하게 구축할 수 있도록 해주는 툴킷입니다.
추가 도구
- tauri-action
어떠한 설정도 없이 모든 플랫폼(MacOS, Linux 및 Windows)을 위한 아주 기본적인 타우리 앱을 생성할 수 있습니다. 만약 프로젝트에 Tauri 파일이 포함되어 있지 않으면 컴파일시에 파일을 생성합니다. - tauri-vscode
이 프로젝트는 몇 가지 유용한 기능으로 Visual Studio Code 인터페이스를 향상시킵니다. - vue-cli-plugin-tauri
vue-cli 프로젝트에 Tauri를 매우 빠르게 설치할 수 있습니다.
그 외
- Awesome Tauri : 타우리에서 사용할 수 있는 유용한 플러그인들이 있는 github. 링크
본문 내용 출처 : https://tauri.app/v1/references/architecture/
각주
업스트림(Upstream) : 클라이언트나 로컬기기(일반적으로 컴퓨터나 모바일기기)에서 서버나 원격 호스트(서버)로 전송되는 데이터 또는 보내는 것을 의미합니다. ↩