Boxedwine can emulate Windows applications in web browsers
The Wine project has been around for years, allowing people to run (some) Windows applications on Linux, macOS, and BSD operating systems. It’s one of the best examples of open-source software development, but Wine can’t quite run on everything. Boxedwine, a newer project that builds upon Wine, aims to fix that — it can run on more operating systems, and even web browsers.
Wine isn’t an emulator — instead, it translates Windows API calls into POSIX-compatible calls. However, Boxedwine is an emulator. It uses an unmodified 32-bit version of Wine that runs in an emulated Linux environment. Boxedwine is written in C++ with an SDL interface, so it’s even more cross-platform than Wine. Mac and Linux are supported, same as regular Wine, but you can also run it on Windows. This could be helpful if you want to use older 16-bit Windows applications that won’t work in modern Windows, or if you just want an isolated environment that doesn’t involve setting up a Windows virtual machine. Boxedwine is also being ported to other platforms, including Haiku OS.
Boxedwine can also run inside of modern web browsers, thanks to WebAssembly and Emscripten. You can try out some demo Windows applications and games at boxedwine.org/demo, including Age of Empires (1997), AbiWord, and 3-D Ultra Pinball: Creep Night. Boxedwine is already at around 25% of the speed of the host system (according to the developer), and there’s likely a further decrease from running inside a browser, but basic applications like AbiWord are usable with Chromium on my PC with a Ryzen 5 1500 processor.
Even though Boxedwine in the browser isn’t practical enough yet for most situations, it’s still an impressive technical demo. The browser is running an entire Linux kernel, an unmodified copy of Wine, and the Windows application all on top — with no video streaming from a server involved.
Boxedwine could become a fantastic tool for running Windows applications in the future, if performance can be improved. Since the x86 emulation is written in portable C++ code, it could be one solution to running x86 Windows applications on ARM devices, like Android tablets. Wine is already available on ARM Android, but it can only run Windows software compiled for ARM — there’s no emulation layer.
Here’s hoping the project continues to improve. If you want to give the desktop version a shot, pre-compiled Windows versions are available from the Boxedwine website.