Bonsai un servicio de sincronización multidispositivo centrado en Gnome

gnome-bonsai

Christian Hergert, un desarrollador de Red Hat que ha trabajado en el entorno integrado de desarrollo Gnome Builder, introdujo un nuevo proyecto piloto llamado ”Bonsai” el cual tiene como enfoque principal ser dirigido como una solución del problema de la sincronización de los contenidos de varios dispositivos que utilizan Gnome.

Los usuarios pueden usar Bonsai para vincular varios dispositivos Linux en su red doméstica cuando necesitan acceder a archivos y datos de aplicaciones en todas las computadoras, pero no desean transferir sus datos a servicios en la nube de terceros.

Bonsai debería funcionar de manera similar a una nube personal.

Bonsai es un demonio y una biblioteca compartida para proporcionar y consumir servicios personales similares a la nube. El público objetivo son los usuarios del escritorio GNOME con múltiples dispositivos para los que le gustaría que su contenido se sincronizan.

Sobre Bonsai

Bonsai incluye el proceso de fondo bonsaid y la biblioteca de características libbonsai para proporcionar servicios similares a la nube.

El proceso en segundo plano puede iniciarse en la estación de trabajo principal o en una mini computadora Raspberry Pi conectada constantemente a la red inalámbrica y a un dispositivo de almacenamiento de datos que trabaje permanentemente en la red doméstica.

La biblioteca se utiliza para hacer que las aplicaciones de GNOME accedan a los servicios de Bonsai utilizando una API de alto nivel.

Para comunicarse con dispositivos externos (otras PC, computadoras portátiles, teléfonos, dispositivos de Internet de las cosas), se propone la utilidad bonsai-pair, que permite generar un token para conectarse a los servicios. Después del enlace, se organiza un canal encriptado (TLS) para acceder a los servicios que utilizan solicitudes serializadas de D-Bus.

Bonsai no se limita solo a compartir datos y también se puede usar para crear objetos accesibles para varios sistemas con soporte de sincronización parcial entre dispositivos, transacciones, índices secundarios, cursores y la capacidad de aplicar cambios locales específicos a cada sistema en la parte superior de una base de datos compartida común.

El almacenamiento de objetos comunes se basa en la API de GVariant y LMDB.

Las aplicaciones son mucho mejores cuando pueden comunicarse entre dispositivos. Por lo tanto, una biblioteca Data-Access-Object, acertadamente llamada libbonsai-dao, proporciona almacenamiento de objetos serializables basado en GVariant y LMDB.

 Admite índices primarios y secundarios, consultas, cursores, transacciones y sincronización incremental entre dispositivos. Tiene la capacidad de cambiar los cambios locales sobre los cambios extraídos del dispositivo Bonsai primario.

Actualmente, solo se ofrece un servicio para acceder al almacenamiento de archivos, pero en el futuro está previsto implementar otros servicios para acceder al correo, el planificador de calendario, las notas (Tareas pendientes), álbumes con fotos, colecciones de música y video, sistema de búsqueda, copia de seguridad, VPN etc.

Por ejemplo, usando Bonsai en diferentes computadoras en aplicaciones Gnome, puede organizar el trabajo con un planificador de calendario sincronizado o una colección común de fotos.

Además Christian Hergert menciona que el servicio no es seguro actualmente, pero trabajara sobre la marcha para poder aislar las aplicaciones y mejorar esta parte para hacer el servicio seguro.

En particular, debemos brindarles a los desarrolladores excelentes herramientas para crear aplicaciones que admitan de forma nativa la sincronización de dispositivos.

Lo que he construido para experimentar con todo esto es Bonsai. Es un gran experimento en esta fase, pero se está volviendo lo suficientemente interesante como para colaborar con otros que quieran unirse a mí.

¿Como obtener e instalar Bonsai?

En cuanto al proyecto, para quienes estén interesados en conocer su funcionamiento, probarlo o mirar el código fuente de este, deben saber que el código del proyecto está escrito en C y viene bajo la licencia GPLv3. Este se puede obtener desde Gitlab en el siguiente enlace.

La construcción del paquete se puede realizar con ayuda de Meson. 

git clone https://gitlab.gnome.org/chergert/bonsai.git
cd bonsai/
meson build --prefix=/opt/gnome --libdir=lib
cd build/
ninja
ninja install

Si quieres conocer más al respecto sobre este servicio, puedes consultar la publicación original en el siguiente enlace.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.