सेवा के बारे में
अनुवादितमैं वेबएसेम्बली मॉड्यूल बनाता हूँ जो ब्राउज़र में नजदीकी-स्थानीय गति लाते हैं ताकि भारी गणनाएँ जो पहले वैनिला जावास्क्रिप्ट पर धीमी चलती थीं, अब आपके उपयोगकर्ताओं के लिए तेज़ चलें। मेरा मुख्य कार्य C, C++ और Rust से मौजूदा कोड को WASM में पोर्ट करना है: मैं सही टूलचेन, मेमोरी मॉडल और ऑप्टिमाइजेशन फ्लैग चुनता हूँ, फिर इसे आपके फ्रंटएंड टीम द्वारा निम्न-स्तरीय विवरण में डूबे बिना कॉल करने के लिए एक स्पष्ट जावास्क्रिप्ट API में लपेटता हूँ। यदि आपके पास पहले से एक स्थानीय पुस्तकालय है जो वास्तविक कार्य कर रहा है, तो मैं इसे बिना पूरी तरह से फिर से लिखे वेब पर पोर्ट करूँगा; यदि प्रोजेक्ट शून्य से शुरू होता है — तो मैं सुरक्षा और गति के लिए Rust में गणनात्मक कोर लिखूँगा।
वेबएसेम्बली उन सभी चीजों पर सबसे अधिक लाभदायक है जो गणना सीमाओं को छूती हैं: छवि और वीडियो प्रसंस्करण, ऑडियो पाइपलाइन्स, बड़े ऐरे और मैट्रिक्स पर संचालन, पार्सर, संकुचन और विघटन, क्रिप्टोग्राफी, भौतिकी और सिमुलेशन या बड़े डेटा सेट को सीधे टैब में संसाधित करना। मैं JS और WASM के बीच की सीमा को कोर के रूप में महत्वपूर्ण मानता हूँ: एक तेज़ मॉड्यूल जो एक धीमे पुल से बंधा है, वह अभी भी धीमा है। इसलिए मैं इस सीमा के पार कॉपी करने को न्यूनतम करता हूँ, जानबूझकर साझा मेमोरी और टाइप किए गए ऐरे का उपयोग करता हूँ, और लंबे कार्यों को वेब वर्कर्स पर ऑफलोड करता हूँ ताकि इंटरफेस प्रतिक्रियाशील बना रहे। लक्षित प्लेटफ़ॉर्म के लिए उपयुक्त होने पर, मैं अधिकतम लाभ के लिए SIMD और थ्रेड्स का उपयोग करता हूँ।
आपको एक दस्तावेजीकृत संस्करणित मॉड्यूल मिलता है जिसमें एक टाइप किया हुआ इंटरफेस होता है, संख्याओं और बेंचमार्क की तुलना में एक छोटा डेमो जो यह साबित करता है कि यह जावास्क्रिप्ट कार्यान्वयन को प्रतिस्थापित करता है। मैं प्रमुख ब्राउज़रों में परीक्षण करता हूँ, ईमानदार बंडल आकार पर नज़र रखता हूँ और स्रोतों को एक निर्माण स्क्रिप्ट के साथ प्रदान करता हूँ ताकि टीम कभी भी मॉड्यूल को फिर से बना सके। यदि आपके पास पहले से एक WASM मॉड्यूल है जो कठिन या धीमा है, तो मैं इसे ऑडिट और तैयार निर्माणों के ऑप्टिमाइजेशन के लिए ले लूँगा।
— C, C++ और Rust को वेबएसेम्बली में पोर्ट करें
— छवियों, वीडियो और डेटा के लिए तेज़ मॉड्यूल
— JS, वर्कर्स, SIMD और थ्रेड्स के साथ एकीकरण
— बेंचमार्क, दस्तावेज़ और पुनरुत्पादनीय निर्माण
वेबएसेम्बली उन सभी चीजों पर सबसे अधिक लाभदायक है जो गणना सीमाओं को छूती हैं: छवि और वीडियो प्रसंस्करण, ऑडियो पाइपलाइन्स, बड़े ऐरे और मैट्रिक्स पर संचालन, पार्सर, संकुचन और विघटन, क्रिप्टोग्राफी, भौतिकी और सिमुलेशन या बड़े डेटा सेट को सीधे टैब में संसाधित करना। मैं JS और WASM के बीच की सीमा को कोर के रूप में महत्वपूर्ण मानता हूँ: एक तेज़ मॉड्यूल जो एक धीमे पुल से बंधा है, वह अभी भी धीमा है। इसलिए मैं इस सीमा के पार कॉपी करने को न्यूनतम करता हूँ, जानबूझकर साझा मेमोरी और टाइप किए गए ऐरे का उपयोग करता हूँ, और लंबे कार्यों को वेब वर्कर्स पर ऑफलोड करता हूँ ताकि इंटरफेस प्रतिक्रियाशील बना रहे। लक्षित प्लेटफ़ॉर्म के लिए उपयुक्त होने पर, मैं अधिकतम लाभ के लिए SIMD और थ्रेड्स का उपयोग करता हूँ।
आपको एक दस्तावेजीकृत संस्करणित मॉड्यूल मिलता है जिसमें एक टाइप किया हुआ इंटरफेस होता है, संख्याओं और बेंचमार्क की तुलना में एक छोटा डेमो जो यह साबित करता है कि यह जावास्क्रिप्ट कार्यान्वयन को प्रतिस्थापित करता है। मैं प्रमुख ब्राउज़रों में परीक्षण करता हूँ, ईमानदार बंडल आकार पर नज़र रखता हूँ और स्रोतों को एक निर्माण स्क्रिप्ट के साथ प्रदान करता हूँ ताकि टीम कभी भी मॉड्यूल को फिर से बना सके। यदि आपके पास पहले से एक WASM मॉड्यूल है जो कठिन या धीमा है, तो मैं इसे ऑडिट और तैयार निर्माणों के ऑप्टिमाइजेशन के लिए ले लूँगा।
— C, C++ और Rust को वेबएसेम्बली में पोर्ट करें
— छवियों, वीडियो और डेटा के लिए तेज़ मॉड्यूल
— JS, वर्कर्स, SIMD और थ्रेड्स के साथ एकीकरण
— बेंचमार्क, दस्तावेज़ और पुनरुत्पादनीय निर्माण