Rust से WebAssembly (WASM)
Rust कोड को WebAssembly में संकलित कीजिए, ताकि उच्च-प्रदर्शन मॉड्यूल वेब ब्राउज़र और अन्य WASM रनटाइम में चल सकें।
Rust से WebAssembly (WASM), CoddyKit पर Rust कोडिंग सीखें का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Rust कोडिंग सीखें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Rust कोडिंग सीखें पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
WebAssembly (WASM) क्या है
WebAssembly, या WASM, स्टैक-आधारित वर्चुअल मशीन के लिए बाइनरी निर्देशों का एक प्रारूप है। इसे Rust, C/C++ और Go जैसी उच्च-स्तरीय भाषाओं के लिए पोर्टेबल कंपाइलेशन लक्ष्य के रूप में बनाया गया है।
इसे निम्न-स्तरीय, असेंबली जैसी भाषा समझें, जो वेब ब्राउज़र और अन्य वातावरणों में कुशलता से चलती है। यह आपको प्रदर्शन-गहन कोड को लगभग मूल गति पर चलाने देती है।
WASM के लिए Rust के लाभ
अपनी विशिष्ट खूबियों के कारण Rust WebAssembly विकास के लिए एक उत्कृष्ट विकल्प है:
- प्रदर्शन: Rust अपनी गति के लिए जाना जाता है, जो C/C++ के करीब है।
- मेमोरी सुरक्षा: Rust की स्वामित्व प्रणाली कचरा संग्राहक के बिना सामान्य बग को रोकती है।
- छोटी बाइनरी: Rust का न्यूनतम रनटाइम छोटे WASM मॉड्यूल बनाता है।
- उपकरण:
wasm-packऔरwasm-bindgenजैसे उपकरणों के साथ उत्कृष्ट समर्थन।
अपने WASM उपकरण सेट अप करना
Rust को WebAssembly में कंपाइल करने के लिए आप मुख्य रूप से wasm-pack का उपयोग करेंगे। यह एक कमांड-लाइन उपकरण है, जो पूरी बिल्ड प्रक्रिया संभालता है।
आप wasm-bindgen का भी उपयोग करेंगे, जो एक Rust क्रेट और CLI उपकरण है तथा WASM मॉड्यूल और JavaScript के बीच उच्च-स्तरीय इंटरैक्शन की सुविधा देता है।
wasm-pack इंस्टॉल करने के लिए अपना टर्मिनल खोलें और चलाएँ:
cargo install wasm-packअपना पहला WASM प्रोजेक्ट
आइए, WebAssembly के लिए अनुकूलित एक नया Rust प्रोजेक्ट बनाएँ। हम एक विशेष टेम्पलेट के साथ cargo generate का उपयोग करेंगे:
cargo install cargo-generate
cargo generate --git https://github.com/rustwasm/wasm-pack-templateअपने प्रोजेक्ट का नाम देने के लिए दिए गए संकेतों का पालन करें। इससे WASM कोड के लिए तैयार lib.rs फ़ाइल और सरल वेब इंटरफ़ेस के लिए www डायरेक्टरी सेट अप हो जाएगी।
JavaScript के लिए Rust फ़ंक्शन
किसी Rust फ़ंक्शन को JavaScript से कॉल करने योग्य बनाने के लिए हम wasm-bindgen क्रेट के #[wasm_bindgen] एट्रिब्यूट का उपयोग करते हैं।
यह एट्रिब्यूट wasm-bindgen को JavaScript द्वारा आपके Rust फ़ंक्शन के साथ इंटरैक्ट करने के लिए आवश्यक ग्लू कोड बनाने का निर्देश देता है।
use wasm_bindgen::prelude::*;
// This attribute makes the `greet` function available to JavaScript.
#[wasm_bindgen]
pub fn greet(name: &str) -> String {
format!("Hello, {}!", name)
}
// In a WASM library, `main` is not used. This code is compiled to a .wasm module.WASM को JavaScript के साथ जोड़ना
Rust कोड लिखने के बाद, आप wasm-pack build का उपयोग करके उसे WASM मॉड्यूल में बिल्ड करते हैं। यह कमांड आपकी .wasm फ़ाइल और JS ग्लू कोड वाली pkg डायरेक्टरी बनाता है।
इसके बाद, अपने JavaScript में आप एक्सपोर्ट किए गए Rust फ़ंक्शन को आसानी से इम्पोर्ट करके उपयोग कर सकते हैं:
// www/index.js (simplified)
import { greet } from "../pkg/your_project_name"; // Adjust path
// Call the Rust function
const message = greet("CoddyKit Learner");
console.log(message); // Outputs: "Hello, CoddyKit Learner!"
// You'd typically connect this to HTML elements.Rust से JavaScript को कॉल करना
Rust JavaScript फ़ंक्शन को भी कॉल कर सकता है। आप उन्हें extern "C" ब्लॉक में घोषित करते हैं और JavaScript के वैश्विक ऑब्जेक्ट या फ़ंक्शन से मैप करने के लिए #[wasm_bindgen] का उपयोग करते हैं।
js_namespace आर्ग्युमेंट आपको यह निर्दिष्ट करने देता है कि JavaScript वातावरण में फ़ंक्शन कहाँ ढूँढना है, जैसे console ऑब्जेक्ट।
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
// Import JS console.log as a Rust function named 'log'
#[wasm_bindgen(js_namespace = console)]
fn log(s: &str);
// You can import other JS functions too
#[wasm_bindgen(js_name = alert)]
fn js_alert(s: &str);
}
#[wasm_bindgen]
pub fn log_and_alert_from_rust(message: &str) {
log(&format!("Rust log: {}", message));
js_alert(&format!("Rust alert: {}", message));
}Rust और JS के बीच स्ट्रिंग भेजना
wasm-bindgen संख्याओं और बूलियन जैसे सामान्य डेटा प्रकारों को समझदारी से संभालता है। स्ट्रिंग के लिए यह UTF-8 एन्कोडिंग का उपयोग करता है।
जब आप Rust से &str या String पास करते हैं, तो wasm-bindgen उसे JavaScript String में बदल देता है, और इसके विपरीत भी। यह अमूर्तीकरण दोनों के बीच इंटरऑपरेशन को सहज बनाता है।
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn uppercase_and_reverse(s: String) -> String {
s.to_uppercase().chars().rev().collect()
}
// This function takes a String, processes it, and returns a new String.
// wasm-bindgen handles the conversion to/from JS strings.ब्राउज़र के बाहर WASM
अक्सर वेब ब्राउज़र से जोड़े जाने के बावजूद, WebAssembly केवल उन्हीं तक सीमित नहीं है! WASM रनटाइम कई वातावरणों के लिए उपलब्ध हैं, जिससे नई संभावनाएँ खुलती हैं:
- सर्वररहित फ़ंक्शन: तेज़, अलग-थलग फ़ंक्शन डिप्लॉय करें।
- ब्लॉकचेन: स्मार्ट कॉन्ट्रैक्ट का निष्पादन।
- प्लगइन/एक्सटेंशन: एप्लिकेशन को सुरक्षित रूप से विस्तारित करें।
- डेस्कटॉप ऐप: उच्च-प्रदर्शन वाले मॉड्यूल एम्बेड करें।
इससे Rust की पहुँच पारंपरिक सिस्टम प्रोग्रामिंग से कहीं आगे तक बढ़ जाती है।
WebAssembly की प्रमुख अवधारणाएँ
आइए, Rust और WebAssembly की आपकी समझ जाँचते हैं।
पुनरावलोकन: Rust से WASM
आपने Rust के प्रदर्शन और सुरक्षा को WebAssembly में लाना सीख लिया है!
- WASM कंपाइल किए गए कोड के लिए तेज़, पोर्टेबल रनटाइम उपलब्ध कराता है।
- अपने प्रदर्शन, छोटी बाइनरी और सुरक्षा के कारण Rust WASM के लिए उत्कृष्ट है।
wasm-packऔरwasm-bindgenजैसे उपकरण विकास प्रक्रिया को सरल बनाते हैं।- आप Rust फ़ंक्शन को JavaScript में आसानी से एक्सपोर्ट कर सकते हैं और JavaScript फ़ंक्शन को Rust में इम्पोर्ट कर सकते हैं।
- WASM का उपयोग केवल वेब ब्राउज़र तक सीमित नहीं है।
Rust के साथ शक्तिशाली, उच्च-प्रदर्शन वाले वेब और गैर-वेब एप्लिकेशन बनाने के लिए सीखना जारी रखें!
एआई शिक्षक के साथ Rust सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 39
- पाठ
- 144
अक्सर पूछे जाने वाले प्रश्न
क्या “Rust से WebAssembly (WASM)” पाठ निःशुल्क है?
हाँ — Rust कोडिंग सीखें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Rust से WebAssembly (WASM)” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Rust कोडिंग सीखें पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“Rust से WebAssembly (WASM)” में मैं क्या सीखूँगा?
Rust कोड को WebAssembly में संकलित कीजिए, ताकि उच्च-प्रदर्शन मॉड्यूल वेब ब्राउज़र और अन्य WASM रनटाइम में चल सकें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Rust कोडिंग सीखें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Rust कोडिंग सीखें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Rust कोडिंग सीखें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।
“Rust से WebAssembly (WASM)” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Rust कोडिंग सीखें पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Rust कोडिंग सीखें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- विदेशी फ़ंक्शन इंटरफ़ेस (FFI)
- Rust से WebAssembly (WASM)
- बेंचमार्किंग और प्रदर्शन-सुधार