सबसे बेहतरीन Electron विकल्प कौन सा है? आइए पता लगाते हैं।

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

스크립트

00:00:00क्रॉस-प्लेटफ़ॉर्म डेस्कटॉप ऐप बनाने का मतलब पहले इलेक्ट्रॉन का इस्तेमाल करना होता था, लेकिन आजकल हमारे पास
00:00:04कई विकल्प मौजूद हैं। इसलिए, किसी भी तरह के भ्रम को दूर करने के लिए, आज हम तीन बेहतरीन विकल्पों की तुलना कर रहे हैं
00:00:09क्रॉस-प्लेटफ़ॉर्म डेस्कटॉप ऐप बनाने के लिए। हम रस्ट (Rust) में लिखे गए Tauri, Bun टीम के Electro Bun,
00:00:14और Deno की नई पेशकश Deno Desktop को देखेंगे। हम Electron को एक बेसलाइन के तौर पर भी इस्तेमाल करेंगे। और अगर आप
00:00:20इस चैनल पर किसी और टूल को कवर होते देखना चाहते हैं, तो मुझे कमेंट्स में ज़रूर बताएं।
00:00:23हम चार चीज़ों की तुलना करेंगे: बंडल साइज़, स्टार्टअप परफ़ॉर्मेंस, रनटाइम परफ़ॉर्मेंस और डेवलपर
00:00:29एक्सपीरियंस। मैंने एक ही ऐप चार बार बनाया है, एक स्क्रीन रिकॉर्डिंग टूल जो आपको परिणामों को
00:00:35टाइमलाइन पर एडिट करने और MP4 में आउटपुट देने की सुविधा देता है। मैंने विशेष रूप से इस तरह के ऐप को चुना है क्योंकि वीडियो प्रोसेसिंग
00:00:40इन तरह के टूल्स को उनकी सीमा तक ले जा सकती है। अब बेशक, सब कुछ परफ़ॉर्मेंस पर निर्भर नहीं करता,
00:00:44आपकी टीम का कौशल और आप किस तरह का प्रोडक्ट बना रहे हैं, यह सब उस फ्रेमवर्क को प्रभावित करेगा
00:00:49जिसे आप चुनते हैं, लेकिन उम्मीद है कि इससे आपको क्या उम्मीद रखनी चाहिए, इस पर कुछ मार्गदर्शन मिलेगा।
00:00:58तो चलिए, हमने जो एप्लिकेशन बनाया है, उसके डेमो को जल्दी से देखते हैं। हम शुरुआत अपने ऐप को लॉन्च करके करते हैं,
00:01:03हम चुन सकते हैं कि कौन सी स्क्रीन रिकॉर्ड करनी है, फिर रिकॉर्ड बटन दबाएं। अब हम स्क्रीन की एक छोटी सी रिकॉर्डिंग कर सकते हैं।
00:01:08एक बार जब हम पूरा कर लेते हैं, तो हम स्टॉप दबा सकते हैं, फिर एक विंडो दिखाई देगी जिसमें हमारी रिकॉर्डिंग
00:01:12टाइमलाइन पर होगी। फिर हम डेड स्पेस को हटाने के लिए इसे क्लिप कर सकते हैं और MP4 के रूप में आउटपुट करने के लिए एक्सपोर्ट दबा सकते हैं। यह ऐप
00:01:18वास्तव में बहुत सरल है, लेकिन क्योंकि हम कई API का उपयोग कर रहे हैं, जैसे कि वीडियो रिकॉर्ड करना, प्रोसेस करना और
00:01:24UI रेंडर करना, इसलिए यह वास्तव में एक अच्छा टेस्ट होना चाहिए। तो पहली चीज़ जो हम चेक करने जा रहे हैं वह है
00:01:28बंडल साइज़, और याद रखें कि ये सभी ऐप्स एक समान कार्यक्षमता प्रदान करते हैं। बेसलाइन के रूप में Electron 323
00:01:35मेगाबाइट का है, Tauri सिर्फ 57 मेगाबाइट का है, Electro Bun 418 मेगाबाइट का है, और Deno 111 मेगाबाइट का है।
00:01:44उन सभी में MP4 में एक्सपोर्ट के लिए FFmpeg एम्बेडेड है और वह अकेले ही 45 मेगाबाइट का है। और Electro Bun इतना
00:01:52बड़ा है क्योंकि मुझे इसके साथ Chromium शिप करना पड़ा। मैंने बहुत कोशिश की, लेकिन मैं सचमुच
00:01:56नेटिव सिस्टम वेबव्यू के साथ स्क्रीन रिकॉर्ड को काम करने में सफल नहीं हो पाया, खास तौर पर JavaScript से रिकॉर्ड करने के लिए।
00:02:01आपको स्क्रीन कैप्चर API और getDisplayMedia फ़ंक्शन की ज़रूरत होती है। आप ब्राउज़र से स्क्रीन मांगते हैं,
00:02:06यह आपको एक स्ट्रीम देता है, मीडिया रिकॉर्डर इसे एनकोड करता है, और इसी तरह Electron और Deno काम करते हैं। Electro Bun
00:02:12में वह API शामिल ही नहीं है, इसलिए इसका एकमात्र तरीका Chromium को फिर से शामिल करना है, और वह
00:02:17अतिरिक्त 200 मेगाबाइट का ब्लोट (बेवजह का डेटा) लेकर आता है। Deno के API ने इसे लागू किया था, तो यह सब वही कोड है,
00:02:24लेकिन बिना Chromium के, और इसीलिए Deno का बंडल साइज़ 100 मेगाबाइट के आसपास हो जाता है, और Electro
00:02:30Bun का 400 के करीब हो जाता है। और Rust को इन सबकी ज़रूरत नहीं पड़ी क्योंकि Tauri वेबव्यू से
00:02:35बिल्कुल भी रिकॉर्ड नहीं करता है। यह सब कुछ बैकएंड के ज़रिए, नेटिव स्क्रीन कैप्चर किट के ज़रिए करता है। यह
00:02:40वही macOS फ्रेमवर्क है जो QuickTime उपयोग करता है, और यह सब सीधे बैकएंड से रिकॉर्ड होता है। आप इसे
00:02:46एक डिस्प्ले, एक कोडेक और एक फ़ाइल पाथ देते हैं और यह खुद फ़ाइल लिखता है। वेबव्यू सिर्फ UI है, यह कभी भी
00:02:52एक भी फ्रेम को टच नहीं करता है। और आपको ऐसी चीज़ें भी मुफ्त में मिलती हैं जिन्हें JavaScript बिल्ड को संभालना पड़ता है।
00:02:56स्क्रीन कैप्चर किट आपके माइक और सिस्टम ऑडियो को खुद मिक्स करता है और यह एक सही MP4 को अंतिम रूप देता है। मैंने
00:03:02FFmpeg को भी Tauri ऐप के अंदर छोड़ा था ताकि हम अलग-अलग फॉर्मेट में एक्सपोर्ट कर सकें, लेकिन तकनीकी रूप से वह
00:03:07वैकल्पिक है। ठीक है, अब हम स्टार्टअप समय का पता लगाने के लिए इन ऐप्स को लॉन्च कर सकते हैं। मैंने एक स्क्रिप्ट लिखी है
00:03:13जो इसे 10 बार करती है, ताकि मैं मीडियन (औसत) निकाल सकूं। बेसलाइन के रूप में Electron 273 मिलीसेकंड था, Tauri
00:03:19वास्तव में 311 मिलीसेकंड का था, Electro Bun 773 मिलीसेकंड का था और Deno 242 मिलीसेकंड का था।
00:03:29और यहाँ मेरे लिए हैरानी की बात यह थी कि Tauri सबसे तेज़ नहीं था, यह Electron से बस थोड़ा पीछे है, और फिर Deno
00:03:34ने वास्तव में सबको पीछे छोड़ दिया। धारणा यह होगी कि Rust प्लस सिस्टम वेबव्यू का मतलब होगा तुरंत
00:03:39स्टार्ट, लेकिन चूंकि रेंडरिंग इंजन को अभी भी बूट होना है, चाहे कुछ भी हो, शायद यही कारण है
00:03:44थोड़ी धीमी स्टार्टअप गति का। Electro Bun एक अलग मामला है, Electron से लगभग तीन गुना, यह
00:03:50एक लॉन्चर को बूट करता है जो Bun को बूट करता है, जो Chromium को बूट करता है, एक चेन में तीन रनटाइम, और आप इसे वास्तव में महसूस कर सकते हैं।
00:03:56अब लॉन्च के बाद मेमोरी को देखते हैं। एक बार जब ऐप वास्तव में चालू हो जाता है, तो Electron फिर से बेसलाइन है
00:04:01और यह 128 मेगाबाइट था। Tauri 109 मेगाबाइट, Electro Bun 208 मेगाबाइट और Deno 98
00:04:10मेगाबाइट का था। तो Deno और Tauri मूल रूप से बराबर थे और फिर Electro Bun बाकी सब से लगभग दोगुना था।
00:04:15Tauri के लिए, यह मार्केटिंग द्वारा निहित 10 गुना सुधार के कहीं भी करीब नहीं है। डिस्क पर, हाँ, यह बहुत
00:04:21छोटा है, लेकिन एप्लिकेशन चलते समय वास्तविक मेमोरी फ़ुटप्रिंट अन्य
00:04:26टूल्स के बहुत अधिक समान है। और जब आप खुद ये चेक कर रहे हों तो एक चीज़ पर नज़र रखें, Tauri
00:04:31सिस्टम वेबव्यू का उपयोग करता है और वे प्रक्रियाएं आपके ऐप की चाइल्ड (बच्चे) नहीं होती हैं। macOS उन्हें अलग से शुरू करता है, इसलिए
00:04:36Activity Monitor Tauri को लगभग 36 मेगाबाइट पर दिखाता है और ऐसा लगता है कि यह Electron को तीन बार मात देता है
00:04:42लेकिन ऐसा नहीं है, तो जब आप उन सभी प्रक्रियाओं को जोड़ते हैं, तो 36 मेगाबाइट 109 मेगाबाइट के करीब हो जाता है
00:04:48जो हमने टेस्ट में रिकॉर्ड किया था। स्क्रीन रिकॉर्ड की बात करें तो, मैंने Tauri ऐप से बहुत बेहतर
00:04:53परफ़ॉर्मेंस देखी, और यह शायद इसलिए है क्योंकि हम वेब में डेटा रिकॉर्ड नहीं कर रहे हैं
00:04:58व्यू में और फिर उसे ब्रिज पर ट्रांसफर नहीं कर रहे हैं। इसके बजाय, यह सब उस नेटिव SDK के साथ रिकॉर्ड किया जाता है जो
00:05:04सिस्टम के साथ आता है। अगर आप 60 FPS रिकॉर्ड के करीब पहुंचना चाहते हैं, तो Rust और Tauri ही
00:05:10सही रास्ता होगा। अब डेवलपर एक्सपीरियंस को देखते हैं, और प्रत्येक प्लेटफ़ॉर्म के अंतर के कारण, यह सरल
00:05:15ऐप वास्तव में बनाना बिल्कुल भी आसान नहीं था। कुल मिलाकर, Electron और Tauri को लागू करना सबसे आसान
00:05:20था, लेकिन Deno और Electro Bun में वास्तव में बहुत सारी समस्याएँ और सिस्टम क्रैश हुए। Deno में जब
00:05:26हम रिकॉर्डिंग शुरू करते थे और फिर ऐप को छिपा देते थे, तो पूरी एप्लिकेशन बंद हो जाती थी। मुझे लगता है कि ऐसा इसलिए है क्योंकि
00:05:30जब कोई स्क्रीन दिखाई नहीं देती, तो Deno बस यह मान लेता है कि एप्लिकेशन का काम पूरा हो गया है और इसलिए यह
00:05:36पूरी प्रक्रिया को समाप्त कर देता था। तो इसका जुगाड़ वाला समाधान यह था कि व्यू को स्क्रीन के बाहर छिपा दिया जाए।
00:05:41Electro Bun को स्क्रीन रिकॉर्ड के लिए Chromium को बंडल करने की ज़रूरत थी, और इसके साथ और भी कई समस्याएँ थीं। और कुछ
00:05:46कारणों से, पैकेज वास्तव में 3JS और Babylon JS पर निर्भर करता है जो 3D रेंडरिंग के लिए हैं, जिसने
00:05:53ब्लोटेड बंडल साइज़ में योगदान दिया। तो कुल मिलाकर, व्यक्तिगत रूप से मैं Tauri चुनूंगा, लेकिन अगर आप वास्तव में Rust में प्रोग्राम नहीं करना चाहते हैं,
00:05:58तो Electron अभी भी TypeScript डेवलपर्स के लिए परिपक्व प्लेटफ़ॉर्म है। Deno ठीक लग रहा है, लेकिन मुझे लगता है कि
00:06:04प्लेटफ़ॉर्म को अभी भी परिपक्व होने में कुछ समय की ज़रूरत है। और फिर मेरे लिए Electro Bun उन सब में सबसे खराब था।
00:06:09तो उम्मीद है, आप खुद के लिए निर्णय ले सकते हैं। मुझे कमेंट्स में बताएं कि आप क्या सोचते हैं। और हमने
00:06:13पूरी तरह से Deno Desktop पर एक वीडियो बनाया है, तो अगर आप इसके बारे में अधिक जानना चाहते हैं, तो आप इस पर क्लिक कर सकते हैं
00:06:18वीडियो यहाँ। अन्यथा, मैं Betterstack से वारेन हूँ, देखने के लिए धन्यवाद, और मैं आपसे अगली बार मिलूँगा।

핵심 요약

Rust आधारित Tauri अपने छोटे बंडल साइज़ और नेटिव सिस्टम एकीकरण के कारण डेस्कटॉप ऐप्स के लिए सबसे संतुलित विकल्प है, जबकि Electron अभी भी उन डेवलपर्स के लिए परिपक्व है जो TypeScript का उपयोग करना पसंद करते हैं।

하이라이트

  • Electron, Tauri, Electro Bun और Deno Desktop में से सबसे कम बंडल साइज़ Tauri का 57 मेगाबाइट है, जबकि Electron 323 मेगाबाइट है।

  • स्टार्टअप समय में Deno Desktop 242 मिलीसेकंड के साथ सबसे तेज़ है, जबकि Electro Bun 773 मिलीसेकंड लेकर सबसे धीमा रहा।

  • रनटाइम मेमोरी उपयोग में Deno Desktop 98 मेगाबाइट के साथ सबसे कम है, इसके बाद Tauri 109 मेगाबाइट पर है।

  • स्क्रीन कैप्चर के लिए, Tauri का नेटिव macOS SDK उपयोग करना वेब-आधारित रिकॉर्डिंग की तुलना में बेहतर परफ़ॉर्मेंस देता है।

  • Electro Bun को स्क्रीन रिकॉर्डिंग कार्यक्षमता के लिए पूर्ण Chromium ब्राउज़र बंडल करना पड़ता है, जिससे बंडल साइज़ 418 मेगाबाइट हो जाता है।

타임라인

क्रॉस-प्लेटफ़ॉर्म डेस्कटॉप ऐप विकल्प और टेस्ट मानदंड

  • Electron, Tauri, Electro Bun और Deno Desktop की तुलना की गई।
  • बंडल साइज़, स्टार्टअप परफ़ॉर्मेंस, रनटाइम परफ़ॉर्मेंस और डेवलपर एक्सपीरियंस को मुख्य मापदंड माना गया।
  • परीक्षण के लिए एक स्क्रीन रिकॉर्डिंग ऐप का उपयोग किया गया जो वीडियो एडिटिंग और MP4 आउटपुट की सुविधा देता है।

वीडियो प्रोसेसिंग कार्यक्षमता का उपयोग फ्रेमवर्क की सीमाओं को जांचने के लिए किया गया। इन ऐप्स को एक समान कार्यक्षमता प्रदान करने के लिए डिज़ाइन किया गया ताकि परिणामों की निष्पक्ष तुलना हो सके। विकास के दौरान टीम का कौशल और विशिष्ट उत्पाद की आवश्यकताएं फ्रेमवर्क चयन को प्रभावित करती हैं।

बंडल साइज़ और तकनीकी कार्यान्वयन

  • Tauri का बंडल साइज़ सबसे कम 57 मेगाबाइट है।
  • Electro Bun का बंडल साइज़ सबसे अधिक 418 मेगाबाइट है क्योंकि इसे Chromium बंडल करना पड़ता है।
  • Tauri बैकएंड के ज़रिए नेटिव macOS स्क्रीन कैप्चर किट का उपयोग करता है, जो वेबव्यू से पूरी तरह अलग है।

FFmpeg एम्बेडेड होने के कारण बंडल साइज़ में 45 मेगाबाइट की वृद्धि होती है। Electro Bun में आवश्यक स्क्रीन कैप्चर API का अभाव होने के कारण इसमें भारी Chromium को शामिल करना पड़ा। इसके विपरीत, Tauri का बैकएंड नेटिव तरीके से रिकॉर्डिंग संभालता है, जिससे वेबव्यू पर अतिरिक्त बोझ नहीं पड़ता।

परफ़ॉर्मेंस और मेमोरी फुटप्रिंट

  • स्टार्टअप समय में Deno Desktop 242 मिलीसेकंड के साथ सबसे तेज़ है।
  • रनटाइम मेमोरी में Deno 98 मेगाबाइट और Tauri 109 मेगाबाइट के साथ सबसे कुशल हैं।
  • Electro Bun स्टार्टअप और मेमोरी दोनों में अन्य विकल्पों की तुलना में लगभग दोगुना संसाधन लेता है।

स्टार्टअप गति का परीक्षण 10 बार स्क्रिप्ट चलाकर निकाला गया। Tauri का रनटाइम मेमोरी फुटप्रिंट विज्ञापित 10 गुना सुधार के करीब नहीं है, लेकिन डिस्क पर इसका आकार काफी छोटा है। स्क्रीन रिकॉर्डिंग के दौरान, Rust और Tauri का उपयोग करने पर परफ़ॉर्मेंस सबसे बेहतर प्राप्त होती है।

डेवलपर एक्सपीरियंस और निष्कर्ष

  • Electron और Tauri का कार्यान्वयन सबसे आसान रहा।
  • Deno और Electro Bun में विकास के दौरान सिस्टम क्रैश और अन्य तकनीकी बाधाएं आईं।
  • Tauri डेस्कटॉप विकास के लिए सबसे अनुशंसित विकल्प है।

Deno में स्क्रीन छिपाने पर ऐप बंद होने जैसी समस्याएं सामने आईं, जो एक अस्थिर विकास अनुभव का संकेत देती हैं। Electro Bun में पैकेज निर्भरता और Chromium बंडलिंग ने इसे एक अव्यवहारिक विकल्प बना दिया। अंततः, Rust न जानने वाले डेवलपर्स के लिए Electron एक स्थिर और परिपक्व आधार बना हुआ है।

커뮤니티 글

모든 글 보기