WASM के लिए Rust फ़ंक्शन लिखना
ऐसे Rust फ़ंक्शन विकसित करें जिन्हें WASM में कंपाइल करके निष्पादन के लिए JavaScript परिवेश में उपलब्ध कराया जा सके
WASM के लिए Rust फ़ंक्शन लिखना, CoddyKit पर उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
वेब के लिए Rust को सक्षम करना
वापसी पर स्वागत है! पिछले पाठ में हमने WebAssembly के लिए अपना Rust वातावरण तैयार किया था। अब आइए ऐसे Rust फ़ंक्शन लिखना सीखें, जिनका उपयोग सीधे आपके वेब अनुप्रयोगों में किया जा सके।
लक्ष्य JavaScript के लिए Rust के प्रदर्शन और सुरक्षा को उपलब्ध कराना है, ताकि आपके वेब ऐप और भी शक्तिशाली बन सकें।
मानक Rust फ़ंक्शन सिंटैक्स
निर्यात करने से पहले, आइए जल्दी से याद कर लें कि मानक रस्ट फ़ंक्शन कैसे परिभाषित किए जाते हैं। इनमें fn कीवर्ड के बाद फ़ंक्शन का नाम, उनके प्रकारों सहित पैरामीटर और एक वैकल्पिक रिटर्न प्रकार होता है।
fn: फ़ंक्शन घोषित करता है।(param: Type): पैरामीटर और उनके प्रकार परिभाषित करता है।-> ReturnType: फ़ंक्शन का रिटर्न प्रकार निर्दिष्ट करता है।
`#[wasm_bindgen]` का परिचय
किसी रस्ट फ़ंक्शन को JavaScript से कॉल करने योग्य बनाने के लिए, हम wasm-bindgen क्रेट की एक विशेष एट्रिब्यूट का उपयोग करते हैं: #[wasm_bindgen]। इसे एक पुल बनाने वाले उपकरण की तरह समझिए!
यह एट्रिब्यूट wasm-bindgen टूल को आवश्यक 'ग्लू कोड' बनाने का निर्देश देती है, जिससे JavaScript आपके रस्ट फ़ंक्शन को आसानी से समझ और कॉल कर सकता है।
आपका पहला निर्यातित फ़ंक्शन: `add`
आइए दो पूर्णांकों को जोड़ने वाला एक सरल रस्ट फ़ंक्शन लिखें और उसे JavaScript के लिए उपलब्ध कराएँ। यह फ़ंक्शन आपकी src/lib.rs फ़ाइल में रहेगा।
फ़ंक्शन की परिभाषा के ठीक ऊपर दिए गए #[wasm_bindgen] एट्रिब्यूट पर ध्यान दें। यही इसका जादू है!
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn add(a: i32, b: i32) -> i32 {
a + b
}`pub` और `use` को समझना
पिछले उदाहरण में आपने pub fn और use wasm_bindgen::prelude::*; देखा था। आइए उनकी भूमिकाएँ स्पष्ट करें:
pub: यह कीवर्ड फ़ंक्शन को सार्वजनिक बनाता है, अर्थात वर्तमान मॉड्यूल के बाहर से उस तक पहुँचा जा सकता है (जैसे JavaScript से)।use wasm_bindgen::prelude::*;: यह पंक्तिwasm-bindgenलाइब्रेरी से आवश्यक आइटम आयात करती है, जिसमें स्वयं#[wasm_bindgen]एट्रिब्यूट भी शामिल है।
अपने रस्ट को WASM में संकलित करना
अपना रस्ट कोड लिखने के बाद, आप wasm-pack build कमांड का उपयोग करेंगे (जिसका हमने पाठ 1 में संक्षेप में उल्लेख किया था) और इसे WebAssembly मॉड्यूल में संकलित करेंगे।
wasm-pack सारी जटिलता संभालता है और एक .wasm फ़ाइल तथा एक JavaScript 'ग्लू' फ़ाइल बनाता है, जो JS से आपके रस्ट फ़ंक्शन लोड करने और उनके साथ काम करने को सरल बनाती है।
एक और सरल फ़ंक्शन: `multiply`
आइए अपने src/lib.rs में एक और फ़ंक्शन जोड़ें। यह दो संख्याओं को गुणा करेगा। प्रक्रिया वही है: फ़ंक्शन परिभाषित करें, #[wasm_bindgen] एट्रिब्यूट जोड़ें और उसे pub बनाएँ।
इससे पता चलता है कि कई रस्ट फ़ंक्शन उपलब्ध कराना कितना आसान है।
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn multiply(a: i32, b: i32) -> i32 {
a * b
}JavaScript के साथ प्रकारों की संगतता
WASM के लिए फ़ंक्शन परिभाषित करते समय, wasm-bindgen कई सामान्य रस्ट प्रकारों (जैसे i32, f64) को अपने-आप संभालता है और उन्हें उनके JavaScript समकक्ष (number) में मैप करता है।
स्ट्रिंग या कस्टम स्ट्रक्चर जैसे अधिक जटिल प्रकारों के लिए विशेष प्रबंधन आवश्यक होता है, जिसे हम आने वाले पाठों में देखेंगे। अभी के लिए, केवल आदिम संख्या प्रकारों का उपयोग करें।
JavaScript निर्यातित फ़ंक्शन तक कैसे पहुँचता है
संकलन के बाद, wasm-pack टूल एक JavaScript फ़ाइल (जैसे my_wasm_lib.js) बनाता है, जो मध्यस्थ की तरह काम करती है।
आप इस JS फ़ाइल को अपने वेब प्रोजेक्ट में आयात करेंगे और यह सीधे add() तथा multiply() जैसे फ़ंक्शन उपलब्ध कराएगी, जिससे WASM लोड करने की प्रक्रिया छिप जाएगी। इससे रस्ट फ़ंक्शन का उपयोग करना बिल्कुल सामान्य JavaScript फ़ंक्शन को कॉल करने जैसा लगता है।
अपना ज्ञान जाँचें
WebAssembly के लिए निर्माण करते समय रस्ट में #[wasm_bindgen] एट्रिब्यूट का मुख्य उद्देश्य क्या है?
पुनरावलोकन: वेब के लिए फ़ंक्शन
बहुत अच्छा! आपने WebAssembly के लिए रस्ट फ़ंक्शन परिभाषित करना और उपलब्ध कराना सीख लिया है।
- फ़ंक्शन को निर्यात के लिए चिह्नित करने हेतु
#[wasm_bindgen]का उपयोग करें। - सुनिश्चित करें कि फ़ंक्शन
pubहों। wasm-pack buildआपके रस्ट को WASM और JS ग्लू कोड में संकलित करता है।i32जैसे आदिम प्रकार आसानी से JavaScript संख्याओं में मैप हो जाते हैं।
अगले पाठ में, हम विस्तार से देखेंगे कि JavaScript इन WASM मॉड्यूल को कैसे लोड और चलाता है।
एआई शिक्षक के साथ उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “WASM के लिए Rust फ़ंक्शन लिखना” पाठ निःशुल्क है?
हाँ—“WASM के लिए Rust फ़ंक्शन लिखना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“WASM के लिए Rust फ़ंक्शन लिखना” में मैं क्या सीखूँगा?
ऐसे Rust फ़ंक्शन विकसित करें जिन्हें WASM में कंपाइल करके निष्पादन के लिए JavaScript परिवेश में उपलब्ध कराया जा सके आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“WASM के लिए Rust फ़ंक्शन लिखना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर उच्च-प्रदर्शन अनुप्रयोगों के लिए WebAssembly (WASM) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- WebAssembly के लिए Rust सेट अप करना
- WASM के लिए Rust फ़ंक्शन लिखना
- `wasm-bindgen` से कुशल JS इंटरऑप
- WASM सीमा के पार त्रुटि-प्रबंधन