Several days ago Thorsten Behrens, a of the development team leaders of subsystem de graphics of LibreOffice, unveiled the publication of a demo version of the popular office suite LibreOffice which is compiled in bar code intermediate WebAssembly and capable of running in a web browser.
For those new to WebAssembly, you should know that this provides a middleware universal browser-independent low-level to run applications compiled from various programming languages. WebAssembly is positioned as the most promising and portable cross-browser technology for building high-performance web applications.
WebAssembly se can be used to solve tasks that require high performance, for example, video encoding, sound processing, 3D graphics and manipulation, game development, cryptographic operations, mathematical calculations, and the creation of portable implementations of programming languages.
A distinctive feature of the execution model of applications that use WASI is launching in a sandbox environment to isolate from the main system and the use of a security mechanism based on capacity management, for actions with each of the resources (files, directories, sockets, system calls, etc.)
To convert to WebAssembly, use the Emscript compiler and to organize the output, the VCL (Visual Class Library) backend based on the modified Qt5 framework.
Unlike the LibreOffice edition Online, WebAssembly-based compilation allows you to run the entire office suite in the browserr, i.e. all code is executed on the client side, while LibreOffice Online executes and processes all user actions on the server, and only the interface is translated to the client browser.
The removal of the main part of LibreOffice from the browser side will allow you to create a cloud edition for collaboration, remove the load from servers, minimize the differences with the LibreOffice desktop, simplify scaling, be able to work offline, and also allow the organization of P2P interaction between users and end-to-end data encryption on the user side. The plans also include the creation of a widget based on LibreOffice to integrate a full text editor into the pages.
Similar projects already existed for Asm.js or the so-called Native Client, which have since been superseded by Webassembly. The fact that even a code base as large and old as LibreOffice, including the GUI, can now run in the browser thanks to Wasm shows how advanced the technology has become.
However, For the LibreOffice team, the work on the Wasm port is far from over. The team explained this in a presentation at this year's Fosdem a few weeks ago.
The team also explained there that the port:
“Wasm now uses the Qt backend for LibreOffice, for example, which caused a lot more problems than expected. In addition, some other considerations or problems to be solved emerge from the work. In the future, the team could use the Wasi interface and possibly even create their own Wasm backend for the port. But the team hasn't gotten that far yet."
Furthermore, it states that the Wasm port of Libreoffice is not initially intended as an alternative to Libreoffice Online and Collabora Online which is based on it. On the contrary, Wasm is not a cloud application, so it runs locally, which is supposed to offer greater privacy…
Finally for those who are Interested in learning more about it, should be aware that WebAssembly-specific fixes are currently being developed in the main LibreOffice repository and you can try the suite in your browser from the following link. (about 300 MB of data is downloaded to the user's system) .