Wails: Electron को पछाड़ने के लिए डेस्कटॉप ग्रेड ऐप्स पर Golang का बड़ा दांव
원제 · Wails: Golang's Bet On Desktop Grade Apps To Beat Electron
핵심 요약
Wails, Golang और प्लेटफॉर्म के नेटिव वेब व्यू का उपयोग करके Electron की तुलना में बंडल साइज़ को 324 MB से घटाकर 52 MB कर देता है और बेहतर रनटाइम परफॉरमेंस देता है, हालांकि नेटिव फीचर्स के लिए कुछ कस्टम CGo कोड लिखना पड़ सकता है।
하이라이트
Wails का बंडल साइज़ 52 MB है, जो Tauri (57 MB) से थोड़ा छोटा और Electron (324 MB) से काफी कम है।
Wails का वार्म स्टार्ट-अप टाइम 395 ms और कोल्ड स्टार्ट-अप टाइम 2,337 ms है, जबकि Electron का कोल्ड स्टार्ट-अप सबसे तेज़ 1,890 ms है।
Electron से अलग, Wails और Tauri एम्बेडेड क्रोमियम ब्राउज़र के बजाय प्लेटफॉर्म के नेटिव वेब व्यू का उपयोग करते हैं।
Wails Go फ़ाइलों में बदलाव होने पर ऑटोमैटिकली टाइपस्क्रिप्ट डेफ़िनेशन्स को री-रेंडर और कंपाइल कर देता है।
Wails में स्क्रीन कैप्चर के लिए CGo के ज़रिए लगभग 450 पंक्तियों का नेटिव Objective-C कोड लिखना पड़ा, जबकि Tauri में कम्युनिटी क्रेट्स के कारण केवल Rust कोड से काम हो गया।
타임라인
Wails की वास्तुकला और कार्यप्रणाली
Wails का बैकएंड Rust के बजाय Golang पर आधारित है, जबकि फ्रंटएंड के लिए मानक वेब तकनीकों का उपयोग होता है। यह हर ऑपरेटिंग सिस्टम के नेटिव रेंडरिंग इंजन का पुनरुपयोग करता है। इससे कंपाइल किया गया एप्लिकेशन Windows और Mac दोनों के लिए संगत बनता है और बंडल साइज़ काफी छोटा रहता है।
- Wails एक क्रॉस-प्लेटफॉर्म फ्रेमवर्क है जो Go बैकएंड और वेब-बेस्ड फ्रंटएंड का उपयोग करता है।
- Electron के विपरीत Wails में क्रोमियम ब्राउज़र एम्बेडेड नहीं होता है।
React और Go API का एकीकरण
स्क्रीन रिकॉर्डिंग ऐप के फ्रंटएंड में मानक React कोड का उपयोग होता है जो Go साइड पर परिभाषित APIs को कॉल करता है। main.go फाइल में विंडो टाइटल, आकार और प्लेटफॉर्म-विशिष्ट सेटिंग्स कॉन्फ़िगर की जाती हैं। wails.dev कमांड चलाने पर Go साइड का कोई भी फ़ंक्शन अपडेट या कमेंट आउट होते ही फ्रंटएंड की टाइपस्क्रिप्ट डेफिनेशन्स में तुरंत बदलाव दिखते हैं।
- Wails में Go बैकएंड में किए गए बदलावों के आधार पर स्वतः टाइपस्क्रिप्ट बाइंडिंग्स जनरेट होती हैं।
- बैकएंड कोड अपडेट होते ही एप्लिकेशन ऑटोमैटिकली री-कंपाइल और री-लोड हो जाता है।
बंडल साइज़, स्टार्ट-अप टाइम और परफॉरमेंस की तुलना
Wails और Tauri बंडल में क्रोमियम को शामिल नहीं करते, जिससे उनका साइज़ काफी छोटा रहता है। कोल्ड स्टार्ट में Cache साफ़ करने पर Wails 2,337 ms, Tauri 2,049 ms और Electron 1,890 ms समय दर्ज करता है। Mac के नेटिव कैप्चर किट का सीधे उपयोग करने के कारण Wails और Tauri में डाटा को वेब व्यू से बैकएंड में पास करने का ओवरहेड नहीं होता, जिससे स्क्रीन रिकॉर्डिंग परफॉरमेंस बेहतर होती है।
- Wails का बंडल साइज़ 52 MB है, जो Tauri के 57 MB के करीब है और Electron के 324 MB से बहुत छोटा है।
- औसत वार्म स्टार्ट-अप टाइम में Wails 395 ms, Tauri 410 ms और Electron 350 ms का समय लेता है।
- Wails और Tauri स्क्रीन रिकॉर्डिंग के दौरान Electron से बेहतर रनटाइम परफॉरमेंस देते हैं।
डेवलपर एक्सपीरियंस और इकोसिस्टम का अंतर
स्क्रीन कैप्चर किट का उपयोग करने के लिए Wails में Go की CGo सुविधा से .m फाइल में लगभग 450 पंक्तियों का C/Objective-C कोड लिखना आवश्यक हुआ। इसके विपरीत, Tauri में पहले से मौजूद screen_capture_kit क्रेट की वजह से अलग से C कोड लिखने की आवश्यकता नहीं पड़ी। इकोसिस्टम की परिपक्वता के मामले में Tauri का पलड़ा थोड़ा भारी है, लेकिन Golang डेवलपर्स के लिए Wails एक शक्तिशाली विकल्प है।
- Wails में Apple के सिस्टम फ्रेमवर्क तक पहुँचने के लिए CGo के माध्यम से Objective-C कोड लिखना पड़ता है।
- Tauri के पास Rust कम्युनिटी क्रेट्स का एक समृद्ध इकोसिस्टम मौजूद है।
설명
You already write Go, so why bundle a whole Chromium to ship a desktop app? Wails builds cross-platform desktop apps on the system webview, 52 MB against Electron's 324. The catch is the developer experience: where Tauri leans on Rust crates, Go can leave you hand-writing Objective-C. Worth it if you're choosing a desktop stack. 🔗 Relevant Links https://wails.io https://github.com/wailsapp/wails ❤️ More about us Radically better observability stack: https://betterstack.com/ Written tutorials: https://betterstack.com/community/ Example projects: https://github.com/BetterStackHQ 📱 Socials Twitter: https://twitter.com/betterstackhq Instagram: https://www.instagram.com/betterstackhq/ TikTok: https://www.tiktok.com/@betterstack LinkedIn: https://www.linkedin.com/company/betterstack 📌 Chapters: 0:00 What is Wails? 0:33 How Wails works (Go + native webview) 1:06 Demo: the screen recorder app 1:29 Project structure: main.go and the frontend 1:57 React frontend and auto-generated bindings 2:50 Live reload with wails dev 3:24 Bundle size: Wails vs Tauri vs Electron 4:07 Startup time 4:36 Runtime performance 5:07 Developer experience 5:37 Writing Objective-C with CGo 6:07 Verdict: Wails or Tauri? 6:40 Outro
