30P by xguru 2022-08-23 | favorite | 댓글 6개

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 지원

Tauri는 자체 빌드한 엔진이 아니라 시스템에 있는 webview라이브러리를 사용하는 것 같네요.

인스톨러 용량 비교시 2.5MB vs. 85MB 이며,
설치후는 3.64MB vs. 221MB 가 되네요.

와 이거 좋아보여요!

모바일 앱 지원이 정말 기대가 됩니다.

Rustacean으로서 러스트 생태계가 커지는 건 매우 반갑네요. 맥에서 일렉트론 앱을 3개나 켜놔야 하는데 매우 맥북이 뜨겁습니다 ㅜㅜ

Tauri - 작고 빠른 실행파일을 생성하는 데스크탑용 웹앱 프레임워크
Tauri v1.0 릴리즈

글 중간 보안 부분에 Electron이 Node API 풀 접근이 가능하다는 얘기가 있는데,
이 nodeIntegration은 5.0 이후로 false가 기본 값이고, 20.0 부터는 샌드박싱 처리가 되어 Electron 도 나름 안전합니다.
https://www.electronjs.org/docs/latest/tutorial/security