Ya puedes usar LibreOffice desde tu navegador gracias a WebAssembly
Hace ya varios dias Thorsten Behrens, uno de los líderes del equipo de desarrollo del subsistema de gráficos de LibreOffice, dio a conocer la publicación de una versión de demostración de la popular suite de ofimática LibreOffice la cual está compilada en código intermedio WebAssembly y capaz de ejecutarse en un navegador web.
Para quienes desconocen de WebAssembly deben saber que este proporciona un middleware universal de bajo nivel independiente del navegador para ejecutar aplicaciones compiladas desde varios lenguajes de programación. WebAssembly se posiciona como una tecnología más prometedora y portátil entre navegadores para crear aplicaciones web de alto rendimiento.
WebAssembly se puede utilizar para resolver tareas que requieren un alto rendimiento, por ejemplo, codificación de video, procesamiento de sonido, gráficos y manipulación 3D, desarrollo de juegos, operaciones criptográficas, cálculos matemáticos y la creación de implementaciones portátiles de lenguajes de programación.
WebAssembly se parece mucho a Asm.js, pero difiere en que es un formato binario que no está vinculado a JavaScript. WebAssembly no requiere el uso de un recolector de basura, ya que se utiliza la gestión explícita de memoria.
Una característica distintiva del modelo de ejecución de aplicaciones que utilizan WASI es el lanzamiento en un entorno de espacio aislado para aislar del sistema principal y el uso de un mecanismo de seguridad basado en la gestión de capacidades, para acciones con cada uno de los recursos (archivos, directorios, sockets, llamadas al sistema, etc.)
Para convertir a WebAssembly, se utiliza el compilador Emscripten y para organizar la salida, el backend VCL (Visual Class Library) basado en el marco Qt5 modificado.
A diferencia de la edición de LibreOffice Online, la compilación basada en WebAssembly permite ejecutar todo el paquete ofimático en el navegador, es decir, todo el código se ejecuta en el lado del cliente, mientras que LibreOffice Online ejecuta y procesa todas las acciones del usuario en el servidor, y solo la interfaz se traduce al navegador del cliente.
La eliminación de la parte principal de LibreOffice del lado del navegador permitirá crear una edición en la nube para la colaboración, eliminar la carga de los servidores, minimizar las diferencias con el escritorio de LibreOffice, simplificar el escalado, poder trabajar sin conexión y también permitir la organización de la interacción P2P entre usuarios y cifrado de datos de extremo a extremo en el lado del usuario. Los planes también incluyen la creación de un widget basado en LibreOffice para integrar un editor de texto completo en las páginas.
La migración a Wasm se implementa mediante la cadena de herramientas Emscripten de LLVM, cuyo objetivo es traducir el código nativo de C o C++ a Javascript y Webassembly.
Ya existían proyectos similares para Asm.js o el llamado Native Client, que desde entonces han sido reemplazados por Webassembly. El hecho de que incluso una base de código tan grande y antigua como LibreOffice, incluida la GUI, ahora pueda ejecutarse en el navegador gracias a Wasm muestra cuán avanzada se ha vuelto la tecnología.
Sin embargo, para el equipo de LibreOffice, el trabajo en el port de Wasm está lejos de terminar. El equipo explicó esto en una presentación en el Fosdem de este año hace unas semanas.
El equipo también explicó allí que el port:
«Wasm ahora usa el backend Qt para LibreOffice, por ejemplo, lo que causó muchos más problemas de los esperados. Además, del trabajo emergen algunas otras consideraciones o problemas a resolver. En el futuro, el equipo podría usar la interfaz Wasi y posiblemente incluso crear su propio backend Wasm para el port. Pero el equipo aún no ha llegado tan lejos.»
Además, establece que el port Wasm de Libreoffice inicialmente no pretende ser una alternativa a Libreoffice Online y Collabora Online que se basa en él. Por el contrario, Wasm no es una aplicación en la nube, por lo que se ejecuta localmente, lo que se supone que ofrece una mayor privacidad…
Finalmente para quienes estén interesados en poder conocer más al respecto, deben saber que actualmente se están desarrollando correcciones específicas de WebAssembly en el repositorio principal de LibreOffice y pueden probar la suite en su navegador desde el siguiente enlace. (se descargan alrededor de 300 MB de datos en el sistema del usuario) .