Web Assembly பற்றிய ஒரு தேடல்

உங்களுடைய சந்தேகங்கள் கேள்விகளை எங்களுடன் பகிர்ந்து கொள்ளுங்கள்

பதிவுசெய்க
Web Assembly பற்றிய ஒரு தேடல்
Laveena Rajendran | Developer & Writter

WebAssembly  என்பது modern web browsersகளில் இயக்கக்கூடிய ஒரு புதிய வகை code ஆகும் - இது ஒரு low-level assembly போன்ற மொழியாகும், இது ஒரு சிறிய binary formatஐக் கொண்டுள்ளது, இது near-native performance உடன் இயங்குகிறது மற்றும்  C/C++ மற்றும் Rust போன்ற மொழிகளைcompilation target உடன் வழங்குகிறது.ஆகவே இதனால் webஇல் இயங்க முடியும். இது JavaScript உடன் இயங்க வடிவமைக்கப்பட்டுள்ளது.

WebAssembly எவ்வாறு செயல்படுகிறது?

WebAssembly(Wasm) programs இரண்டு நிலைகளில் பயன்படுத்தப்படுகின்றன.   

  1. முதலில், source code இலிருந்து ஒரு Wasm module உருவாக்கப்படுகிறது:
  2. Write the application in your preferred language.
  3. Create a pre-compiled Wasm module.
  4. Distribute the module—ideally, using a CDN for low latency

Wasm module உருவாக்கப்பட்டவுடன், JavaScript glue மூலம் சில வரிகளுடன் அதை எங்கும் இயக்கலாம்:

  1. Load the Wasm module.
  2. Create an instance of the module.
  3. Call the instance’s functions.

 

Compilation

ஒரு Wasm moduleஐ support செய்யும் எந்த மொழியிலும் அல்லது text assembly இலும் நேரடியாக எழுதலாம். உதாரணமாக, answer.c எனப்படும் இந்த C fileஐ எடுத்துக் கொள்ளுங்கள்:
                 int answer() {
                     return 42;
                 }

ஒரு முழுமையான wasm moduleஐ உருவாக்க, நீங்கள் emscripten ஐப் பயன்படுத்தலாம். emscripten என்பது  JavaScript files  மற்றும் WebAssembly binariesகளை உருவாக்கும் C மற்றும் C ++  compiler ஆகும்:
                 emcc answer.c -O2 -s SIDE_MODULE=1 -o answer.wasm

compilationஇன் விளைவாக answer.wasm என்ற file உள்ளது. இந்த fileஐ இப்போது browserஇல், server component, அல்லது serverless function ஆக ஏற்ற முடியும்.

GNUஇன் gccக்கு மாற்றாக emscriptenனின் emcc பயன்படுத்தப்படலாம். எனவே, இது எந்த portable C or C++ libraryயும் compile செய்து Webஇல் கொண்டு வர முடியும்.

 

Running in the browser

Browserஇல் ஒரு Wasm moduleஐ இயக்க, .wasm file ஏற்றப்பட வேண்டும், உடனடிப்படுத்தப்பட வேண்டும் மற்றும் செயல்படுத்தப்பட வேண்டும். JavaScript API இல் விவரிக்கப்பட்ட பல loading முறைகளில் ஒன்றை நீங்கள் தேர்வு செய்யலாம்.

எடுத்துக்காட்டாக, இந்த script, browserஇல் answer.wasm ஐ ஏற்றுகிறது மற்றும் alert boxஇல் outputஐ ( number “42”) காட்டுகிறது:
                fetch('answer.wasm').then(response =>
                  response.arrayBuffer())
                  .then(bytes =>
                      WebAssembly.instantiate(bytes))
                  .then(result =>
                      alert(result.instance.exports.answer()));

 

Running outside the browser

Developers browserகளில் advanced applicationsகளை இயக்க உதவுவதே  WebAssemblyஇன் பின்னால் உள்ள primary motivation ஆகும். ஆயினும்கூட, servers or as serverless functionsகளாக Wasm modulesகளை இயக்குவதிலிருந்து எதுவும் உங்களைத் தடுக்காது.

உதாரணமாக, நீங்கள் ஒரு சில வரிகளைக் கொண்டு Node.JS இல் answer.wasm ஐ இயக்கலாம்:

                const fs = require('fs');

                  const run = async () => {
                    const buffer = fs.readFileSync("./answer.wasm");
                    const result = await WebAssembly.instantiate(buffer);
                    console.log(result.instance.exports.answer());
                };

                run();

 

Examples of WebAssembly

WebAssembly programsஐ இதற்கு முன் JavaScript பயன்படுத்தப்படாத fieldகும் பயன்படுத்தலாம், அதாவது media edition, image recognition, transcoding, VR and high-end games, emulation, or desktop-tier applications.

மேலும் பயன்பாட்டு நிகழ்வுகளில் பின்வருவன அடங்கும்:

  • Recording and encoding audio.
  • Encoding video.
  • Rendering 3d objects in real time.
  • Re-encoding images on the fly.
  • Editing and annotating PDFs.
  • Createing a fully featured text editor.
  • Visualizing data in real time.
  • Doing real time physics simulation.

 

WebAssembly  real world இலும் வெற்றிகரமாக பயன்படுத்தப்பட்டுள்ளது:

  • eBay ஒரு உலகளாவிய barcode scannerஐ செயல்படுத்தியது.
  • Google Earth இப்போது எந்த browserஇலும் இயங்க முடியும்.
  • Unity and the Unreal game engines WebAssemblyக்கு அனுப்பப்பட்டுள்ளன. நீங்கள் Unreal Epic Zen Garden demoஐ இயக்கலாம்.
  • Doom 3 engine WebAssemblyக்கும் அனுப்பப்பட்டுள்ளது. நீங்கள் demoஐ onlineஇல் விளையாடலாம்.
  • மாற்றாக, நீங்கள் Construct3 மூலம் custom gamesளை browserஇல் உருவாக்கலாம்.

 

முக்கிய எடுத்துக்காட்டுகள்

  • WebAssembly உடன் தொகுக்கக்கூடிய சுமார் 40 மொழிகளுடன், developers இறுதியாக Webஇல் தங்களுக்குப் பிடித்த மொழியைப் பயன்படுத்தலாம்.
  • WebAssembly JavaScriptஐ மாற்றாது; உண்மையில், WebAssembly modulesகளை ஏற்ற சில JavaScript code  தேவைப்படுகிறது.
  • WebAssembly, servers and as serverless functionsகளிலும் இயங்க முடியும்.
There are no comments yet.
Authentication required

You must log in to post a comment.

Log in