As described in the project README we provide a GitHub Action workflow to convert Dockerfiles into bootable images for WebVM: https://github.com/leaningtech/webvm
2,341 karma · joined October 4, 2013
As described in the project README we provide a GitHub Action workflow to convert Dockerfiles into bootable images for WebVM: https://github.com/leaningtech/webvm
2. We had these reported from several users and we will investigate as soon as we can: https://github.com/leaningtech/webvm/issues/102
To answer you question: filesystem chunks are cached/persisted using a local IndexedDB. It provides a fairly strong level of persistence, although the user can wipe it out of course.
State is already locally maintained via IndexedDB, no data is ever sent back or saved on our servers.
The technology is extremely flexibile, off the top of my head:
* Education (Linux, Programming, Security, ...)
* Live docs for arbitrary languages and binary libraries
* Preservation of historical software and games
* Virtualization of legacy Windows enterprise apps.
* Dev environment for Web IDEs
Just a few examples, the list could go on for long
* Education (Linux, Programming, Security, ...)
* Live docs for arbitrary languages and binary libraries
* Preservation of historical software and games
* Virtualization of legacy Windows enterprise apps.
* Dev environment for Web IDEs
Just a few examples, the list could go on for long
Even better, consider joining our Discord: https://discord.gg/yTNZgySKGa
On the other hand I was very disappointed from 'A Wizard Of Heartsea'.
We choose to use Tailscale since they allow WebSocket-based connections via their DERPs.
It is interesting that, originally, DERPs were intended to be a solution for machines in extremely limited networking environment where nothing but HTTP is allowed. Turns out browsers are exactly one of those extremely limited networking environments.
1. More compact representation due to binary encoding compared to text
2. Improved compilation times, since WebAssembly is "lower-level" compared to JS and the engines can assume code has been already optimized and can skip a good chunk of the normal JIT optimization pipeline.
3. Improved runtime performance due to strict typing. No type-checks, no bailouts, etc
These come with their set of drawbacks, the main one being that WebAssembly cannot _really_ use the DOM or interact with JavaScript directly and is effectively just a computational engine. Any interaction with the outside word is abstracted to "imports": calls with arbitrary semantics come from outside of WebAssembly.At some point WebAssembly also had the advantage of predictable performance, with the idea being that code would be compiled once-and-for-all during module loading.
This promise was, as far as I understand, effectively abandoned first by the introduction of "Baseline" compilers (Liftoff, in V8 terminology) and in more recent times by the requirement of WasmGC, which (I think) has reintroduced the need for bailouts and dynamic recompilation.
This will be based on Cheerp (our C++ -> WebAssembly compiler).
Integration with CheerpX is another possibility, but we think building the modules from source it's a more realistic solution in the medium term.
Powered by a x86->Wasm JIT. Technical writeup: https://labs.leaningtech.com/blog/webvm-server-less-x86-virt...
3.0 will still be focused on Java 8, with a fully new JIT architecture that does not require any AOT compilation steps or preprocessing.
With 3.1+ will begin catching up with modern Java.
We have just renewed our fully-client side take on the "Java playground" concept, powered by CheerpJ
https://javafiddle.leaningtech.com/
AWT and Swing apps work as well, which I believe to be quite unique.
I really don't understand how the need for indexing and search was overlooked.
As a counter-point to your argument, consider a highly dynamic language such as JavaScript, in particular the '+' operator. An AOT compiler would have no choice but dispatch to a generic heavy implementation that could handle any possible combination of inputs. On the other hand a JIT compiler can observe the runtime values used and specialize using Inline Caches, potentially down to just a few instructions.
As WASM GC stabilizes we will consider supporting it as well.
Accessing DOM / external JavaScript can be done by using the __asm__ syntax while in C, use of the client namespace is only possible from C++ code
https://leaningtech.com/webvm-virtual-machine-with-networkin...