- SUSE के Hackweek 22 में लेखक के प्रोजेक्ट पर एक लेख, जिसमें WebAssembly चलाने वाला एक unikernel बनाया गया।
- लेखक ने इस प्रोजेक्ट को कई कारणों से चुना, जिनमें unikernels और WebAssembly को जोड़ने के संभावित लाभ शामिल हैं।
- एप्लिकेशन डेवलपर के नज़रिए से, किसी एप्लिकेशन को unikernel पर पोर्ट करना या उसके लिए लिखना कठिन हो सकता है, क्योंकि एप्लिकेशन और उसकी dependencies को लक्षित unikernel द्वारा समर्थित होना चाहिए।
- Unikernel मेंटेनरों को भी यह सुनिश्चित करने में कठिनाई होती है कि उनकी प्लेटफ़ॉर्म पर कोई भी एप्लिकेशन बिना रुकावट चल सके, क्योंकि यूज़र एप्लिकेशन जिन अज्ञात सिस्टम primitives का उपयोग कर सकते हैं, वे चुनौती पैदा करते हैं।
- लेकिन जब WebAssembly प्लेटफ़ॉर्म को लक्ष्य बनाया जाता है, तो एप्लिकेशन के पास capabilities का एक स्पष्ट सेट होता है, जिन्हें WebAssembly runtime द्वारा उपलब्ध कराया जाना चाहिए।
- लेखक ने unikernel एप्लिकेशन की नींव के रूप में Rust में लिखा गया unikernel प्रोजेक्ट RustyHermit इस्तेमाल किया।
- लेखक को WebAssembly runtime से जुड़ी कठिनाइयों का सामना करना पड़ा, क्योंकि उनका पसंदीदा runtime Wasmtime, RustyHermit के ऊपर build नहीं होता था। अंततः उन्होंने pure Rust WebAssembly runtime wasmi को ढूंढकर इस्तेमाल किया।
- लेखक ने Spiderlightning में WebAssembly Component Model प्रस्ताव के उपयोग पर भी चर्चा की, जो WebAssembly guest को capabilities उपलब्ध कराने और host को WebAssembly guest द्वारा दी गई क्षमताओं का उपयोग करने देता है।
- लेखक को .wit फ़ाइलों से host/guest code जनरेट करने वाले CLI टूल wit-bindgen को बढ़ाना पड़ा, ताकि वह wasmi WebAssembly runtime को support कर सके।
- लेखक पोस्ट का समापन Spiderlightning http-server डेमो चलाने वाले unikernel एप्लिकेशन की रिकॉर्डिंग के साथ करते हैं, और आगे की यात्रा के अगले हिस्से में Rust async, Redis, और कुछ errors पर चर्चा करने का वादा करते हैं।
1 टिप्पणियां
Hacker News राय