728x90
반응형

Tauri 소개

Tauri는 기본 웹기술(프론트엔드)과 Rust 프로그래밍 언어를 활용해 플랫폼 간 응용 프로그램을 빠르게 만들 수 있는 프레임워크다.

Rust를 기반으로 개발되어 메모리 안정성과 성능이 우수하며 거의 모든 프론트엔드 프레임워크와 호환된다.

Windows, macOS, Linux 등 데스크탑 응용프로그램을 만들수 있으며 조만간 모바일에서도 사용이 가능하게 진화중이다.

2022-06-15일에 정식버전(1.0)이 런칭되었다.
https://tauri.app/releases

 

Releases | Tauri Apps

View releases on GitHub

tauri.app

그리고 2022-09-16에 1.1.1 버전으로 빠르게 버전업하고 있는거 보니 개발진들의 노고가 느껴지는것 같다.

게다가 이번에 Tauri-egui 0.1 버전이 같이 런칭되었는데 Tauri용 GUI 라이브러리이다.

아직은 초기버전이라 안정성을 기대할 수 없지만 너무 기대된다. 어떻게 진화하고 발전해나갈지.

사이트에 한국어 선택도 있다!! 올레!!

사이트 자체에 한국어 언어 선택도 있으니 영어에 부담을 느끼자 않고도 Tauri의 기술적인 내용을 확인해 볼 수 있다.

Tuari 공식 홈페이지. GitHub

https://tauri.app/

 

Build smaller, faster, and more secure desktop applications with a web frontend | Tauri Apps

Tauri is a framework for building tiny, blazing fast binaries for all major desktop platforms. Developers can integrate any front-end framework that compiles to HTML, JS and CSS for building their user interface.

tauri.app

https://github.com/tauri-apps/tauri

 

GitHub - tauri-apps/tauri: Build smaller, faster, and more secure desktop applications with a web frontend.

Build smaller, faster, and more secure desktop applications with a web frontend. - GitHub - tauri-apps/tauri: Build smaller, faster, and more secure desktop applications with a web frontend.

github.com

 

특징 소개

1. 브라운필드의 단어적 의미는 현재 사용되지는 않지만 이전에 개발된 토지를 의미한다.

이 의미는 뭐냐면 현재 학습해서 사용중인 거의 모든 종류의 프론트엔드 기술을 접목시켜서 사용할 수 있다는 의미이다.

바닐라JS, HTML/CSS, React, VueJs, Svelte, Yew, Next.js 등등 

게다가 기존에 작성된 프론트엔드 프로젝트를 연동할 수도 있다.

2. Rust 언어가 가지고 있는 메모리 안전성과 속도로 모든 종류의 기존공격을 간단하게 없앨 수 있다.

Tauri 개발진들이 보안에 관해서 많은 신경을 쓰는것 같다. 보안에 대한 자세한 내용은 더 알아보기 버튼을 클릭해 자세히 확인하도록 하자.

3. MIT 혹은 MIT/Apache2.0 라이션스 적용으로 변경 및 재배포가 가능하다.

4. 번들크기가 Electron에 비해 현저히 작다.

5. 크로스 플랫폼으로 개발이 가능하다. (단 모바일 버전은 출시 예정임)

 

6. 성능과 보안을 중요시 하는 Rust 언어로 개발되었고 Rust의 성장과 함께  빠르게 성장하고 있다.

 

Authme라는 크로스플랫폼 2FA앱으로 항목별 비교

  • 번들 : OS의 웹뷰를 사용하는 Tauri가 훨씬 작음. 2.5MB vs. 85MB
  • 시작시간 : Tauri ~2초 vs. Electron ~4초
  • 램 사용량 :
    • 윈도우에서는 Tauri 80MB, Electron 120MB로 큰 차이 없음
    • 리눅스에서는 Tauri 80MB, Electron 쪽에 뭔가 많이 떠서 500MB 이상으로 큰 차이가 남
  • AppBackend : Electron은 Node.js 런타임을 사용하므로 JavaScript 코딩이면 되지만, Tauri는 Rust 코딩이 필요함
    • Tauri 로드맵에서는 Python, C++, Deno도 지원 예정이라고
  • 렌더링 : Electron은 윈/맥/리눅스 모두 크로미엄을 이용, Tauri는 윈(Edge WebView2)/리눅스(WebKitGTK)/맥(WebKit)
    • 브라우저별 차이가 있을 수 있어서, Tauri에서는 폴리필을 이용해야 할 경우가 있음
  • 보안 : Tauri는 매우 많은 보안 기능들을 내장하여 기본적으로 안전
  • 자동 업데이트 :
    • Tauri쪽이 더 간단. 내장 Updater가 있음(직접 업데이트 서버를 운영해야한다는 단점은 있음)
    • Electron은 electron-updater가 많이 쓰임. 장점은 GitHub 릴리즈에서 직접 바이너리를 가져오는게 가능해서 편리함
  • 개발자 경험 :
    • Tauri는 그냥 CLI만 설치하면 모든게 바로 사용 가능(핫 리로딩, 번들링, 앱 생성등)
    • Electron은 그런거 없이 프레임워크 자체만 줌. 핫 리로딩/번들링을 알아서 해야함
    • Tauri의 가장 큰 장점은 모든 웹프레임워크와 호환된다는 것

결론

  • Tauri를 선택
  • 아직 부족한 부분이 있지만, 몇년내에 Tauri팀이 Electron을 따라잡을 것
  • 특히 기대하는 것은 Deno를 백엔드로 사용가능하게 되는 것과 더 편한 자동 업데이트 및 iOS/Android 지원
728x90

+ Recent posts