- WebVM एक WebAssembly-आधारित ब्राउज़र-के-अंदर चलने वाला Linux environment है, जो बिना server के क्लाइंट-साइड पर x86 binaries को संभालने देता है
- इसका मुख्य आधार CheerpX है, जो x86-to-WebAssembly JIT compiler, virtual block-based file system, और Linux system call emulator के जरिए ब्राउज़र virtualization बनाता है
- execution ब्राउज़र के sandbox के अंदर होता है, और x86 binaries server पर नहीं बल्कि user device पर चलती हैं
- उदाहरण commands में
python3,gcc,objdump,vim,curlआदि शामिल हैं, औरcurl --max-time 15 parrot.liveको networking की जरूरत होती है - अलग अनुभव environment के रूप में Alpine / Xorg / i3 WebVM दिया गया है, और BrowserCode ब्राउज़र में Claude Code चलाने से जुड़ा एक संबंधित प्रोजेक्ट है
WebVM कैसे चलता है
- WebVM WebAssembly के जरिए ब्राउज़र में चलने वाला एक virtual Linux environment है
- इसका underlying engine CheerpX x86 binaries को सुरक्षित sandbox में चलाता है
- execution पूरी तरह client-side पर होता है
CheerpX की ब्राउज़र virtualization संरचना
- CheerpX ब्राउज़र-आधारित virtualization के लिए निम्नलिखित घटक शामिल करता है
-
x86-to-WebAssembly JIT compiler
- virtual block-based file system
- Linux system call emulator
-
अनुभव environment और उदाहरण commands
- Alpine / Xorg / i3 WebVM को नए WebVM अनुभव environment के रूप में दिया गया है
- मूल WebVM उदाहरण निम्न commands सुझाता है
python3 examples/python3/fibonacci.pygcc -o helloworld examples/c/helloworld.c && ./helloworldobjdump -d ./helloworld | less -Mvim examples/c/helloworld.ccurl --max-time 15 parrot.live- इस command को networking की जरूरत होती है
संबंधित आइटम
- BrowserCode WebAssembly के जरिए ब्राउज़र में Claude Code चलाने से जुड़ा एक संबंधित आइटम है
1 टिप्पणियां
Hacker News की रायें
इसी तरह के कुछ और प्रोजेक्ट भी हैं। VM की तरफ https://copy.sh/v86/, https://bellard.org/jslinux/, https://jamesfriend.com.au/pce-js/ (https://github.com/jsdf/pce), https://www.pcjs.org/ हैं, और आखिरी वाले में बहुत-से hardware और operating systems हैं (https://github.com/jeffpar/pcjs)
Mac OS की तरफ https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo..., https://jamesfriend.com.au/pce-js/pce-js-apps/ भी हैं
https://duckduckgo.com/?q=comptuers+built+in+minecraft
लगता है underlying project open source नहीं है। इसमें लिखा है, “WebVM हमारे द्वारा host किए गए CheerpX build पर आधारित है। हम users को WebVM के अपने versions deploy करने के लिए प्रोत्साहित करते हैं, लेकिन फिलहाल CheerpX engine की self-hosting की अनुमति नहीं देते। यह public CheerpX build जैसा है वैसा ही दिया गया है और technical exploration, testing, non-commercial use के लिए मुफ्त है। अगर आप CheerpX/WebVM के ऊपर कोई product बनाना चाहते हैं तो हमसे संपर्क करें”
https://labs.leaningtech.com/blog/mini-webvm-your-linux-box-...
मैं WebVM का lead developer और Leaning Technologies का CTO हूं। अगर सवाल हों तो जवाब दूंगा, लेकिन यहां काफी देर हो चुकी है, इसलिए कुछ घंटों बाद भी हो सकता है। Discord पर भी जुड़ सकते हैं: https://discord.gg/yTNZgySKGa
काम शानदार है। उम्मीद है यह हल्की तंज वाली बात की तरह नहीं लगेगी। साथ में, मैंने vi खोला और Esc शायद browser issue की वजह से ठीक से काम नहीं कर रहा था, इसलिए सोचा नहीं था कि फिर से “vi से बाहर नहीं निकल पा रहा” कहना पड़ेगा
पहले link किया गया networking वाला article पढ़ा है, लेकिन खास तौर पर देखना चाहता हूं कि आपने कौन-सा approach अपनाया
साथ ही कभी-कभी screen freeze हो जाती है और key input दिखाई नहीं देता। आमतौर पर backspace दबाने पर screen फिर चलने लगती है। Firefox के about:performance में उस tab की CPU usage नहीं दिखती, और मेरी machine के Linux htop में भी Firefox अजीब नहीं दिखता
एक सवाल भी है। Tab बंद करके फिर खोलने पर भी नई file बनी रहती है, यह देखा, लेकिन developer tools में localStorage वगैरह check नहीं किया। क्या आपने वही इस्तेमाल किया है, या browser की कोई और feature? ये files असल में कितनी persistent हैं?
दूसरा जवाब देखा: https://labs.leaningtech.com/blog/webvm-virtual-machine-with...
शीर्षक को “WebVM browser में चलने वाला WebAssembly VM है” जैसा कर देना ठीक रहेगा
Buzzwords अच्छे हैं। आखिर में यह browser में चलने वाला Linux command-line environment है, और धीमा है
लिखा है “CheerpX enables you to run existing 32-bit x86 native binaries”। अजीब बात है कि browser में wasm64 support कई सालों से अटका हुआ है, यह निराशाजनक है
नेटवर्किंग को Tailscale से उपलब्ध कराना समझदारी है। यह कुछ संभावित समस्याओं को बायपास कर देता है
https://bellard.org/jslinux/ की तुलना में काफ़ी धीमा महसूस होता है
शानदार है, लेकिन key input अक्सर दिखाई नहीं देता, इसलिए व्यवहार में इस्तेमाल करना मुश्किल है। Web IDE के local development environment वाले use case के हिसाब से भी यह पर्याप्त तेज़ नहीं लगता
node --versionपहली बार चलाने के बाद तेज़ है, लेकिन JavaScript execution बहुत धीमा है:user@:~$ time node -e "console.log('Hello')"Helloreal 0m7.693suser 0m0.012ssys 0m0.000sजिज्ञासा है कि ऐसी चीज़ का व्यावहारिक use case क्या होगा
ये बस कुछ उदाहरण हैं, और list इससे कहीं लंबी हो सकती है
यह browser के अंदर Node.js server और frontend चलाता है, इसलिए computer पर browser के अलावा कुछ भी install या run किए बिना देखा जा सकता है कि Graphweaver क्या कर सकता है। example में SQLite database को REST API के साथ जोड़ा गया है, और Graphweaver उसके परिणाम के रूप में GraphQL API उपलब्ध कराता है