Tauri vs. Electron - เปรียบเทียบด้วยแอปพลิเคชันจริง
(levminer.com)เปรียบเทียบเป็นรายหัวข้อด้วยแอป 2FA ข้ามแพลตฟอร์มชื่อ Authme
- ขนาดแพ็กเกจ: Tauri ที่ใช้เว็บวิวของระบบปฏิบัติการมีขนาดเล็กกว่ามาก 2.5MB vs. 85MB
- เวลาเริ่มต้น: Tauri ~2 วินาที vs. Electron ~4 วินาที
- การใช้แรม:
- บน Windows แทบไม่ต่างกันมาก โดย Tauri 80MB, Electron 120MB
- บน Linux Tauri 80MB แต่ฝั่ง Electron มีหลายอย่างรันขึ้นมาจนเกิน 500MB ทำให้ต่างกันมาก
- AppBackend: Electron ใช้รันไทม์ Node.js จึงเขียนด้วย JavaScript ก็ได้ แต่ Tauri ต้องเขียนด้วย Rust
- ในโรดแมปของ Tauri ระบุว่าจะรองรับ Python, C++ และ Deno ด้วย
- การเรนเดอร์: Electron ใช้ Chromium ทั้งบน Windows/macOS/Linux ส่วน Tauri ใช้ Windows (Edge WebView2) / Linux (WebKitGTK) / macOS (WebKit)
- อาจมีความแตกต่างกันตามเบราว์เซอร์ จึงมีกรณีที่ Tauri ต้องใช้ polyfill
- ความปลอดภัย: Tauri มีฟีเจอร์ด้านความปลอดภัยจำนวนมากในตัว จึงปลอดภัยโดยพื้นฐาน
- การอัปเดตอัตโนมัติ:
- ฝั่ง Tauri ทำได้ง่ายกว่า มี Updater ในตัว (แต่ข้อเสียคือต้องดูแลเซิร์ฟเวอร์อัปเดตเอง)
- ฝั่ง Electron มักใช้
electron-updaterข้อดีคือสามารถดึงไบนารีจาก GitHub Releases ได้โดยตรง จึงสะดวก
- ประสบการณ์นักพัฒนา:
- Tauri แค่ติดตั้ง CLI ก็ใช้งานทุกอย่างได้ทันที (hot reloading, bundling, การสร้างแอป ฯลฯ)
- Electron ไม่มีสิ่งเหล่านี้มาให้ มีเพียงตัวเฟรมเวิร์ก ต้องจัดการ hot reloading/bundling เอง
- จุดเด่นที่สุดของ Tauri คือเข้ากันได้กับทุกเว็บเฟรมเวิร์ก
สรุป
- เลือก Tauri
- แม้ยังมีส่วนที่ขาดอยู่ แต่ภายในไม่กี่ปีทีม Tauri น่าจะตาม Electron ทัน
- สิ่งที่คาดหวังเป็นพิเศษคือการใช้ Deno เป็นแบ็กเอนด์ได้ รวมถึงการอัปเดตอัตโนมัติที่สะดวกขึ้น และการรองรับ iOS/Android
6 ความคิดเห็น
ดูเหมือนว่า Tauri จะไม่ได้ใช้เอนจินที่สร้างขึ้นเอง แต่ใช้ไลบรารี webview ที่มีอยู่ในระบบนะครับ
ถ้าเทียบขนาดตัวติดตั้งจะเป็น 2.5MB vs. 85MB
และหลังติดตั้งจะเป็น 3.64MB vs. 221MB ครับ
ว้าว อันนี้ดูดีมากเลย!
รองรับแอปมือถือ น่าตื่นเต้นมากจริงๆ
ในฐานะ Rustacean ผม/ฉันยินดีมากที่ ecosystem ของ Rust กำลังเติบโตขึ้น ต้องเปิดแอป Electron บน Mac พร้อมกันตั้ง 3 แอปเลย ทำให้ MacBook ร้อนมาก เศร้า
Tauri - เฟรมเวิร์กเว็บแอปสำหรับเดสก์ท็อปที่สร้างไฟล์รันขนาดเล็กและรวดเร็ว
Tauri v1.0 เปิดตัว
ตรงช่วงความปลอดภัยกลางบทความมีการพูดว่า Electron เข้าถึง Node API ได้แบบเต็มรูปแบบ แต่
nodeIntegrationมีค่าเริ่มต้นเป็นfalseมาตั้งแต่ 5.0 และตั้งแต่ 20.0 เป็นต้นมาก็มีการทำ sandboxing แล้ว ดังนั้น Electron เองก็ถือว่าปลอดภัยในระดับหนึ่งhttps://www.electronjs.org/docs/latest/tutorial/security