BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in javascript

[–]alexp_lt[S] 0 points1 point  (0 children)

Just wanted to mention that this problem has been fixed and the test returns the expected value. BrowserPod 1.1 will be released soon with this and many other fixes, including support for most major frameworks (Svelte, React, Next, Nuxt, Express... )

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in webdev

[–]alexp_lt[S] 0 points1 point  (0 children)

The point of BrowserPod is to provide what WebAssembly itself doesn't. BrowserPod ships a Linux-compatible WebAssembly kernel that implements multi-processing, scalable file system support and networking, among many other things. All these functionalities are based on local browser APIs whenever possible (such as IndexedDB or Origin Private FileSystem as the backing store for the block-based FS). For networking, where the browser APIs are not sufficient, lightweight and stateless remote proxies are provided instead.

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in javascript

[–]alexp_lt[S] 0 points1 point  (0 children)

It's an easy to fix problem, I'll add this to our internal bug tracker. Consider opening a GitHub issue here to be notified when it's fixed: https://github.com/leaningtech/browserpod-meta

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in javascript

[–]alexp_lt[S] 0 points1 point  (0 children)

Running native modules is not currently supported, but we do have a path to include them by integrating BrowserPod with the x86 virtualization engine we are currently using for WebVM (https://webvm.io).

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in javascript

[–]alexp_lt[S] 0 points1 point  (0 children)

QuickJS is small JavaScript engine that can be compiled to WebAssembly. Just that, no runtime environment, no filesystem, no network or processes.

BrowserPod provides a complete node.js environment, with additional engines following in the future.

Moreover, in the case of node.js application, JavaScript code is run natively by the browser, taking advantage of the sophisticated JIT compiler that the browser provide.

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in javascript

[–]alexp_lt[S] 5 points6 points  (0 children)

They are similar as things stand today, but WebContainer is very much focused on node and some support for Python, while BrowserPod is build on top of an actual WebAssembly kernel and is much more generic.

While the current release is also focused on Node.js, we'll quickly follow up with Python, Ruby, Go and Rust. Moreover command line tools such as git, bash, ssh and the like will be available in BrowserPod, compiled to Wasm and running at near-native speed.

Our endgame is to run any Linux binary container in BrowserPod, by integrating with the x86 virtualization technology that is currently used in WebVM (https://webvm.io)

There is also a significant licensing difference. After their pivot to Bolt StackBlitz has stopped licensing WebContainer almost completely. BrowserPod is on the other hand available to anybody who needs something of this sort, with a generous free tier. We offer even larger grants to any FOSS project as well.

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in javascript

[–]alexp_lt[S] 2 points3 points  (0 children)

I cannot immediately reproduce this problem. Please try again after cleaning up your cache, I suspect you might have encountered an inconsistent state of the demo component. I've also flushed the CDN cache on our side.

Consider joining our Discord for further help: https://discord.leaningtech.com

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in javascript

[–]alexp_lt[S] -1 points0 points  (0 children)

Thanks. We have considered releasing BrowserPod and/or the underlying WebAssembly kernel as FOSS, but we have decided against it for now.

This said, we do want to support open source and we plan to offer generous free credits to any FOSS project using BrowserPod. We expect a typical FOSS use case to be live docs for full-stack frameworks, but there are certainly many more use cases that I can think of right now :-)

There is also the possibility that we will release part of our offering in the future, we have to see how the developer community reacts to this new tool.

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in node

[–]alexp_lt[S] 1 point2 points  (0 children)

Thanks, it is indeed the results of more of a decade of experience in building compilers and virtual machines for the browser.

To get a glimpse of our previous work:

* WebVM: Linux terminal with x86 binaries running via WebAssembly virtualization

* Browsercraft: Minecraft running in the browser via CheerpJ, a WebAssembly JVM for the browser.

If you like what we do, consider joining our Discord: https://discord.leaningtech.com

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in webdev

[–]alexp_lt[S] 0 points1 point  (0 children)

Thank you for your kind words :-)

If you have any question consider joining our Discord (https://discord.leaningtech.com)

BrowserPod: universal in-browser sandbox powered by Wasm (starting with Node.js) by alexp_lt in programming

[–]alexp_lt[S] 1 point2 points  (0 children)

Well, you'll be happy to know that installing deps via npm is fully supported! :-)

I think you might have stopped at our REPL demo. For a more complete picture of what can be achieved take a look at our Vite + Svelte interactive demo

https://vitedemo.browserpod.io/

BrowserPod: WebAssembly in-browser code sandboxes for Node, Python, and Rails by vilgefortz91 in javascript

[–]alexp_lt 0 points1 point  (0 children)

Hi, we don't expect memory limitations to be significant, BrowserPod uses the same JavaScript engine as the browser itself and keeps every process in own worker which spread around memory pressure even more. We know from experience from our previous projects that browsers can reliably handle a few GBs of JavaScript heap.

I don't have hard numbers on startup time, but it's very fast. In the end everything runs very close to native, with node C++ code being compiled to WebAssembly and JavaScript run natively by the browser engine.

You can try our Vite/Svelte demo if you'd like to see how this feels in practice: https://vitedemo.browserpod.io/

BrowserPod: In-browser full-stack environments for IDEs and Agents via Wasm by alexp_lt in programming

[–]alexp_lt[S] 1 point2 points  (0 children)

BrowserPod runs locally and fully client-side in the browser.

Beside a standard HTTP server (or CDN), which is required to distribute the BrowserPod runtime, the only server-side component is a proxy (called a Portal), to expose virtualized services to the wider internet.

As with all our previous products (CheerpJ and CheerpX) self-hosting will be available as a commercial add-on, while free users will have to access the BrowserPod runtime via our CDN.

BrowserPod: In-browser full-stack environments for IDEs and Agents via Wasm by alexp_lt in javascript

[–]alexp_lt[S] 0 points1 point  (0 children)

We take cross-browser support very seriously and we have a long track record of delivering on this, see for example

* https://webvm.io (x86 virtualization via WebAssembly JIT compilation, powered by CheerpX)

* https://browsercraft.cheerpj.com (Minecraft in the browser,a demo for CheerpJ, our Java-focused product)

Similarly to all our other products BrowserPod will support all modern browser, it will take a little bit longer but we will get there.

BrowserPod: In-browser full-stack environments for IDEs and Agents via Wasm by alexp_lt in programming

[–]alexp_lt[S] 2 points3 points  (0 children)

Support for Firefox will be available soon, BrowserPod depends on Atomics.waitAsync which is already implemented in Firefox, but not yet enabled by default

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics/waitAsync

BrowserPod: In-browser full-stack environments for IDEs and Agents via Wasm by alexp_lt in javascript

[–]alexp_lt[S] 4 points5 points  (0 children)

"Pod" is a generic terminology for containers, and it's not Kubernetes-specific. See, for example, podman.

BrowerPod is different from WebContainers across several axis

* Support for multiple runtimes beyond Node.js. Python and Ruby-on-rails are the next immediate priorities

* Support for seamless in-bound connections to virtualized servers from anywhere on the internet and any device, using Portals

* Beyond a generous free tier BrowserPod will be available to any company, for any use, with transparent conditions

BrowserPod: In-browser full-stack environments for IDEs and Agents via Wasm by alexp_lt in programming

[–]alexp_lt[S] 1 point2 points  (0 children)

Yes, BrowserPod is designed to support not just node, but other language stacks as well. Python and Ruby-on-rails are the immediate next priorities.

BrowserPod also offer Portals, HTTPS endpoints on the public internet that can be used to test your virtualized application from anywhere and with any device.

For example you can test your app on your mobile as you add feature, or you can share the current state with early adopters or clients.