webvm
greenfield
webvm | greenfield | |
---|---|---|
14 | 17 | |
2,739 | 880 | |
1.6% | 1.8% | |
8.0 | 6.6 | |
4 months ago | 5 days ago | |
HTML | TypeScript | |
Apache License 2.0 | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
webvm
- WebVM – Server-less virtual Linux environment (Tailscale support)
-
Container2wasm: Convert Containers to WASM Blobs
Shameless self-promotion: https://webvm.io
Powered by a x86->Wasm JIT. Technical writeup: https://labs.leaningtech.com/blog/webvm-server-less-x86-virt...
-
Ruffle: Flash Player Emulator
Developer here. CheerpX for Flash runs the Pepper API version of Flash, and you're correct about the license. However, we don't do full Linux emulation just to run Flash - we emulate PPAPI and run the Flash player in an x86 JIT (CheerpX).
Yuri talks about CXFF's architecture here:
https://youtu.be/7JUs4c99-mo?t=1045
...but if you wanted full Linux system emulation, we got it! https://webvm.io
-
Show HN: RISC-V Linux terminal emulated via WASM
webvm has Tailscale sockets-over-WebSockets for networking: https://github.com/leaningtech/webvm
-
Tinc, a GPLv2 mesh routing VPN
https://webvm.io/ supports WebVM runs x86 binaries in WASM on any browser w/ ("CheerpX includes an x86-to-WebAssembly JIT compiler, a virtual block-based file system, and a Linux syscall emulator") and for external sockets there's Tailscale networking.
IIUC that means an SSH client in a WebVM can connect to a (tailscale (wg)) VPN mesh
-
edgy.nvim: Easily create and manage predefined window layouts, bringing a new edge to your workflow
lets pre-load it into a https://github.com/leaningtech/webvm/blob/main/dockerfiles/debian_mini
- Show HN: WebVM – Run, Fork, Customize and Deploy Your Linux VM in the Browser
-
Android tablets and Chromebooks are on another crash course – will it be different this time?
Just to show how complex these can get look at this https://webvm.io/
- WebVM
-
The Docker+WASM Technical Preview
Funnily enough, I believe that's completely achievable with enough time spent on it (probably a few weeks of an engineer working full time).
We have technology like WebVM [1] (from leaningtech / CheerP) or Copy86 [2] that already allows x86 machine code execution/emulation on the web. If you add an OCI client layer on top that is executable in the browser, it should be possible to run Docker containers in the browser.
[1] https://webvm.io/
[2] https://copy.sh/v86/
greenfield
-
New Renderers for GTK
There's Greenfield, an HTML5 Wayland compositor. https://github.com/udevbe/greenfield
There's some fancy bridging modes to run apps in a browser, but the author has also been working on a way to make wasm Wayland apps run directly in the browser tol.
-
Container2wasm: Convert Containers to WASM Blobs
Do any GUI frameworks support WASM?
I've been looking for a way to run GUI applications remotely for a while, specifically on a wlroots compositor. Projects like this (maybe one day) and https://github.com/udevbe/greenfield are interesting since they essentially make access universally accessible.
-
The new desktop Outlook is a bad idea. Here's why
Palm Pre's webOS (2009) is the most famous. After an acquisition by HP (2010-2013), it was acquired by LG's (with patents going to Qualcomm).
Before that was a neat Linux project Pyrodesktop (2007) which was an x11 window manager using Firefox guts to render. There was also a trend of trying to mate Javascript technologies to gnome back then, with efforts like gjs seeing some adoption. I don't know how popular it is, but a spinoff of css was/is used for styling in GNOME for a while.
These days there's tons of web desktop projects. https://github.com/syxanash/awesome-web-desktops . Only sort of in the spirit but i quite adore Greenfield, an html5 Wayland desktop/compositor. https://github.com/udevbe/greenfield
- Kera Desktop: open-source, cross-platform, web-based desktop environment
-
Broadway – support for displaying GTK applications in a web browser
The network is thr computer, yay!
Lower level, but there's also a Wayland compositor being written for the web. Many caveats apply, different effort, but also interesting, https://github.com/udevbe/greenfield
- D3wasm 0.4 – Doom 3 in WASM
-
Think twice before abandoning Xorg. Wayland breaks everything!
> A Wayland-style compositor, on the other hand, seems to be a much higher barrier to entry. ... I don't recall ever seeing "You have to use TWM because AfterStep won't work with your Trident 9440 video card" back in 1998.
All in all, the basics of Wayland are a pretty tight package. https://wayland-book.com/ goes through the pieces, and it's not a super thick read. The system of passing around surfaces is comprehensible, tight, makes sense, and there is very little fluff or barriers here, imo.
Wayland has a common core, but absolutely I'd grant that the various protocols do indeed make it a much less tightly coupled thing, with different compositors having different sets of protocols they support. So yes, some apps that require advanced capabilities run much better in some compositors than others; the compositor choice matters. Sometimes there are multiple competing protocols for the same feature-sets, but usually/historically, wayland-protocols hammers stuff out reasonably quickly & most of this is a matter of time.
Still, this is often easier than the past, where apps would have to each test for extensions & have various fast/regular/fallback codepaths depending on available extensions; not necessarily a hindrance to the window-manager, but a bundle of complexity for everyone else trying to use X11 adequately. The Wayland common primitives, on the other hand, are fairly universally performant & well chosen.
In terms of complexity for window-manager/compositor, the situation is not unlike X11 itself, where yes, a simple window manager (or compositor) is possible to spin up relatively quickly, but where there is a sea of different standards to implement to do a good job. Window manager hints, extended window manager hints, and a plethora of other standards existed around X11 that were up to the window-manager to tackle, and implementing each of those took a lot of time too, if you wanted good support for all apps. Different Wayland compositors also have different support for different protocols, and those are a bit deeper rooted, less superficial than many of the X11 hints (which, if ignored, were less likely to impede use), but the idea is the same: real support to really be decent took work in X11, and it takes work in Wayland.
Where I disagree highly is calling out the hardware here. Wayland is closely tied to kernel fundamentals; any reasonably supported video card will perform adequately under any compositor. (Generally. Certainly some compositors could demand higher standards, such as some of the experimental compositors requiring Vulkan, but generally compositors have very similar, very common requirements.)
> I wonder if it would have made more sense to go with a paired approach-- a single master compositor implementation, with the complicated and more hardware-sensitive stuff involved, and a pluggable window manager that spoke to it.
I like where we are, where there are various toolkits/libraries for implementing. Wlroots, which underpins chiefly Sway (the i3 replacement), has given rise to a variety of other compositors, spanning the gamut from quick/fast/experimental to rich/deep/powerful. libwayland still defines some core ideas, if not implementations. Weston is still available as a reference, although yes it's designed (more or less) to be forked & enhanced, not built to be preserved & built (extensibly) on top of. Wlroots & other alternative toolkits fill this need, & provide a diversity of ideas for how we might get going. Projects like Greenfield, the HTML5 compositor (https://github.com/udevbe/greenfield) demonstrate the diversity we get from not having a single common core technology, are possible because of this belief in protocol & standards over implementations, eased though implementations might be from promoting something like Weston to the one-and-only implementation.
> The whole "nVidia works, but only with the GNOME compositor" sort of stuff reads as a sign that there's way too much involved in there.
We can't look at a anti-plays-well-with-others entity like Nvidia to assess what is/isn't a good idea. Nvidia spent nearly a decade stomping their feet & demanding only their way was ok. The fact that OpenGL itself, what the rock their obstinacy was built around, is somewhat on the way out further should stress how foolish & self-centered this vendor has been. This discompatibility indicates nothing, is no sign, except an indicator of what kind of a company Nvidia is/was (one that obstructed any implementations of well known & common kernel constructs).
- I just learned about a new project called greenfield. We can probably use it to run computer games on android once it is more polished.
- Running GUI apps within Docker containers
-
I want to be able to drag a window from one computer to another
Now consider something like greenfield, a wayland compositor that runs on the browser.
What are some alternatives?
v86 - x86 PC emulator and x86-to-wasm JIT, running in the browser
daedalOS - Desktop environment in the browser
sql.js-httpvfs - Hosting read-only SQLite databases on static file hosters like Github Pages
ubuntu-vnc-xfce-g3 - Headless Ubuntu/Xfce containers with VNC/noVNC (G3v5).
possimpible - Kernel in TypeScript
wayvnc - A VNC server for wlroots based Wayland compositors
container2wasm - Container to WASM converter
gnome-shell - Read-only mirror of https://gitlab.gnome.org/GNOME/gnome-shell
mini.animate - Neovim Lua plugin to animate common Neovim actions. Part of 'mini.nvim' library.
docker-handbrake - Docker container for HandBrake
microservice-rust-mysql - A template project for building a database-driven microservice in Rust and run it in the WasmEdge sandbox.
awesome-web-desktops - Websites, web apps, portfolios which look like desktop operating systems