Zero Native: Vercel का Electron किलर जिसके बारे में किसी ने नहीं सोचा था
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00यह Xero Native है, जो Vercel द्वारा बनाया गया एक Zig-आधारित नेटिव ऐप बिल्डर है, जो या तो सिस्टम के वेब व्यू का उपयोग कर सकता है
00:00:05या डेस्कटॉप या मोबाइल ऐप्स के लिए इलेक्ट्रॉन की तरह पूरे क्रोमियम को बंडल कर सकता है जो बहुत छोटे बाइनरी प्रदान करता है
00:00:12और डेवलपमेंट के लिए इंस्टेंट रीबिल्ड्स देता है।
00:00:14लेकिन क्या इसे ठीक से उपयोग करने के लिए थोड़ी ज़िग भाषा जानने की आवश्यकता जावास्क्रिप्ट डेवलपर्स को निराश करेगी?
00:00:18सब्सक्राइब करें और चलिए पता लगाते हैं।
00:00:20हालांकि बन (BUN) टीम ज़िग से हटकर रस्ट (Rust) की ओर बढ़ रही है, फिर भी यह एक बहुत ही शानदार भाषा है
00:00:28जिसमें कोई 'बोरो चेकर' या 'लाइफटाइम' नहीं है और यह सीधे C को कॉल कर सकती है, यानी कोई भी C लाइब्रेरी सिर्फ एक इम्पोर्ट दूर है
00:00:35बिना किसी ग्लू कोड की आवश्यकता के।
00:00:37और यह जावास्क्रिप्ट डेवलपर्स के सीखने के लिए काफी समझने योग्य है।
00:00:39वास्तव में, यदि आप मुझे शुरू से ज़िग में प्रोग्रामिंग करना सीखते हुए देखना चाहते हैं, तो मुझे कमेंट्स में बताएं।
00:00:44मुझे लगता है कि यह काफी मजेदार काम होगा।
00:00:46लेकिन अनिवार्य रूप से, ज़ीरो नेटिव एक पतला ज़िग शेल है जो फ्रंट एंड रेंडर करने वाले वेब व्यू को होस्ट करता है
00:00:51जो JSON ब्रिज का उपयोग करता है ताकि वेब व्यू में मौजूद जावास्क्रिप्ट नेटिव ज़िग लेयर के साथ संवाद कर सके और इसके विपरीत भी,
00:00:58इसी तरह यह ओएस स्तर के एपीआई तक पहुँचने में सक्षम है।
00:01:01और अगर आपको लगता है कि यह 'इलेक्ट्रोबन' जैसा लगता है, तो यह कुछ हद तक वैसा ही है।
00:01:04लेकिन एक बड़े अंतर के साथ, जिसके बारे में हम वीडियो में आगे बात करेंगे।
00:01:07लेकिन अभी के लिए, आइए एक बहुत ही सरल डेमो देखते हैं।
00:01:10तो शुरू करने के लिए, आपके पास पहले ज़िग इंस्टॉल होना चाहिए, जो मैंने Miez के साथ किया है।
00:01:13लेकिन आप Brew का भी उपयोग कर सकते हैं, फिर ज़ीरो नेटिव इंस्टॉल करें।
00:01:16और इन दोनों कामों को करने के बाद, आप एक नया प्रोजेक्ट तैयार करने के लिए `zero native init` कमांड चला सकते हैं।
00:01:22यह मेरे प्रोजेक्ट का नाम है, लेकिन यह कुछ भी हो सकता है जो आप चाहें।
00:01:25मैं रिएक्ट के साथ फ्रंट एंड फ्लैग का उपयोग करने जा रहा हूँ, जो एक Vite रिएक्ट प्रोजेक्ट इंस्टॉल करेगा।
00:01:30लेकिन यह Svelte, Vue, Next या सिर्फ Vite भी हो सकता है।
00:01:34तो अगर मैं एंटर दबाता हूँ, तो ज़ीरो नेटिव कुछ डायरेक्टरीज़ जोड़ देगा।
00:01:37अगर हम डेमो प्रोजेक्ट में जाएँ, तो हम `app.zon` फाइल देख सकते हैं, जिसे मैं बाद में समझाऊंगा।
00:01:43हमारे पास आइकन और अन्य स्टैटिक एसेट्स के लिए 'assets' फोल्डर है, 'build.zig' फाइल है,
00:01:48जो ज़िग बिल्ड ग्राफ, JS ब्रिज और वेब इंजन के लिए है, और 'front end' डायरेक्टरी है जिसमें हमारा फ्रंट एंड कोड है।
00:01:54वास्तव में, यदि हम उसमें जाएँ, तो हम कुछ ऐसी फाइलें देख सकते हैं जिन्हें देखने के हम जावास्क्रिप्ट डेवलपर के रूप में अभ्यस्त हैं।
00:01:58अब, इस स्तर पर, यदि हम `zig build run` चलाते हैं, तो यह सभी डिपेंडेंसीज़ इंस्टॉल कर देगा और हमारे ऐप को एक नई विंडो में खोल देगा।
00:02:04ध्यान दें, यदि आप किसी मौजूदा जावास्क्रिप्ट प्रोजेक्ट पर ज़ीरो नेटिव इंस्टॉल करना चाहते हैं,
00:02:08तो मैं Vite का उपयोग करने की सलाह देता हूँ, जो कि एक न्यूनतम संस्करण है, और फिर इस फ्रंट एंड डायरेक्टरी की हर चीज़ को अपने ऐप के कोड से बदल दें।
00:02:15ज़ीरो नेटिव में एक बहुत ही अच्छा देव सर्वर भी है जो पूरे फ्रंट एंड लाइफसाइकिल को संभालता है।
00:02:19इसलिए यदि हम `zig build dev` चलाते हैं, तो यह बाइनरी को कंपाइल करता है और ज़ीरो नेटिव देव सर्वर को चलाता है।
00:02:24तो अगर मैं कुछ कोड एडिट करता हूँ, तो हम अपने नेटिव ऐप को रियल टाइम में अपडेट होते देख सकते हैं।
00:02:28मैं `zig build package` भी चला सकता हूँ, जो नेटिव ऐप को बिल्ड करेगा ताकि मैं इसे वितरित कर सकूँ।
00:02:33और हम इसे यहाँ 'zig-out/package' डायरेक्टरी के अंदर देख सकते हैं, जो केवल 2.9 मेगाबाइट का है, जो बहुत छोटा है।
00:02:39और कुछ लोग तो इसे 1 मेगाबाइट से भी कम करने में सफल रहे हैं।
00:02:43लेकिन क्या होगा अगर मैं ऐप आइकन, नाम या वेब इंजन बदलना चाहूँ?
00:02:46यहीं पर `app.zon` फाइल काम आती है, जहाँ मैं आइकन का नाम, प्रोजेक्ट का नाम, और यहाँ तक कि जिस इंजन पर ऐप चलता है उसे भी बदल सकता हूँ, साथ ही विंडो का आकार भी।
00:02:55और यह ज़ीरो नेटिव का एक बहुत ही संक्षिप्त अवलोकन है।
00:02:58ऐसी बहुत सी चीज़ें हैं जिन्हें मैं नहीं बता पाया, जैसे सिस्टम ट्रे आइकन, कोड साइनिंग, और iOS और Android के लिए एम्बेडेड ऐप्स।
00:03:05वास्तव में, मुझे इसके साथ और अधिक समय बिताने की ज़रूरत है, जिससे एक और वीडियो बन सकता है।
00:03:09लेकिन जितना अच्छा ज़ीरो नेटिव है, यह इलेक्ट्रोबन जैसी चीज़ की तुलना में कैसा है, जो सिस्टम के नेटिव वेब व्यू का उपयोग करने वाले छोटे, तेज़ ऐप भी बनाता है?
00:03:17इलेक्ट्रोबन के साथ, बन (Bun) खुद ही एक्जीक्यूशन एनवायरनमेंट है क्योंकि आपको मुख्य प्रोसेस के लिए टाइपस्क्रिप्ट लिखना पड़ता है।
00:03:24तो हालांकि एक ज़िग बाइनरी ऐप शुरू करती है, कोड बन वेब वर्कर के अंदर चलता है, जो बन के FFI के माध्यम से नेटिव एपीआई के साथ संवाद करता है, जिसे C++ और ऑब्जेक्टिव-C लेयर से गुजरना पड़ता है।
00:03:37लेकिन ज़ीरो नेटिव के साथ, आपको केवल ज़िग बाइनरी की आवश्यकता है, कोई जावास्क्रिप्ट नहीं, कोई बन नहीं, बस ज़िग, एक सरल C इम्पोर्ट के माध्यम से ओएस स्तर के एपीआई और किसी भी C लाइब्रेरी से संवाद करता है।
00:03:50इसका परिणाम इलेक्ट्रोबन की तुलना में सबसे पतला नेटिव शेल होने के रूप में मिलता है।
00:03:54लेकिन अभी Xero Native से अपनी पसंद का सब कुछ पाने के लिए आपको शायद थोड़ा Zig कोड लिखना पड़े, या कम से कम Zig ऑब्जेक्ट नोटेशन फ़ाइल में कुछ कॉन्फ़िगरेशन बदलने पड़ें।
00:04:03साथ ही, ज़ीरो नेटिव इलेक्ट्रोबन जितना फीचर-रिच नहीं है, जिसने मुझे टाइटल बार स्टाइल बदलने और यहाँ तक कि कुछ कस्टम मेनू आइटम जोड़ने की अनुमति दी थी।
00:04:11और वे चीज़ें, दुर्भाग्य से, अभी `app.zon` फाइल में समर्थित नहीं हैं।
00:04:15मुझे एक समस्या भी दर्ज करनी पड़ी क्योंकि MacOS पर पैकेज बनाना पहली बार में मेरे लिए काम नहीं कर रहा था, लेकिन यह मेरी तरफ से कौशल की कमी हो सकती है।
00:04:22फिर भी, मुझे यकीन है कि टीम और अधिक सुविधाएँ जोड़ने और इनमें से कुछ मुद्दों को ठीक करने के साथ-साथ कुछ बेहतरीन मोबाइल सपोर्ट जोड़ने पर कड़ी मेहनत कर रही है।
00:04:29और यदि आप उन सुविधाओं में से किसी का इंतज़ार नहीं कर सकते, तो यह ओपन सोर्स है।
00:04:32तो बस क्लाउड (Claude) को कोड दें, उसे बताएं कि आप क्या चाहते हैं और मुझे यकीन है कि वह आपके लिए उन सुविधाओं को जोड़ सकता है, है ना?
Community Posts
No posts yet. Be the first to write about this video!
Write about this video