Полная интероперабельность данных между приложениями? C DXOS почему бы и нет

dxos framework

18.05.2024

DXOS ➜ Это open source framework для разработчиков (БД, протоколы) для создания полностью децентрализованных приложений.

Наблюдаю за проектом почти год, недавно вышел пороговый релиз 0.5.0 и теперь имеет смысл про него написать.

Краткое описание от авторов:

«DXOS provides developers with everything they need to build real-time, collaborative apps which run entirely on the client, and communicate peer-to-peer, without servers. DXOS applications work offline, share state instantly when online, and leave end-users in control of their data and privacy».

Проект уже явно не

  • «однодневка для тестирования гипотезы»
  • или очередной «MVP на коленке» ради получения инвестиций.

Собственно, из-за того, что постоянно сталкиваешься с подобными "стартапами", про совсем новичков и перестал писать (выдерживаю паузу).

В данном случае, разработка идёт активно, основатели много пишут о процессе своей работы, публикуют demo-видео, проводят «Office Hours», выступают на конференциях. И честно описывают свои цели в документации (ради чего всё это задумывалось.)

Посмотрим, конечно, как дальше дела пойдут. Надо несколько лет за развитием проекта наблюдать и то можно не угадать. Но есть надежда, что из него вырастет редкое для нашего времени сообщество в формате «Соборного базара».

———

Проект зацепил меня изначально парой вещей

Помимо того, что узнал про него по рекомендации Inc & Switch (само по себе повод заинтересоваться).

Фундаментальным пунктом ➜ Интероперабельность между приложениями:

«Apps work together. Data belongs to the user, and is stored in their spaces, separate from any app. Multiple apps can interoperate over the same data. No APIs. No RPC. The exact same data».

Принцип, который в исследовательских статьях и лабораториях обсуждается очень давно, но в жизни встречается пока крайне редко. Здесь же пытаются создать платформу, полностью вокруг данного подхода построенную.

Отдельно отмечу, что речь идёт об интероперабельности в разноплановых приложениях, а не только для работы с документами / задачами. Jess Martin, один из основателей, например, экспериментирует и со spatial canvas.

Тем, что разработчики сразу делают и образец полноценного приложения «Composer» на своём фреймворке.

Есть что руками потрогать и пользователям, и другим разработчикам.

Это расширяемое приложение (malleable software environment) для совместной работы небольших команд, в котором реализованы примеры Apps для заметок, скетчей, презентаций, таблиц (schemas)…

На текущей стадии (версии 0.5) его уже можно приспособить под простые задачи, либо что-то своё сверху накрутить. Подробнее читайте на сайте в документации.

Приглянётся оно, правда, пока больше технарям, всё-таки массовый пользователь испорчен современными интерфейсами :0)

———

Ещё несколько моментов

  • На главной странице сайта есть блок «Built with the help of our friends and partners». Там пара интересных ссылок на используемые в работе над проектом технологии: «Effect», «Socket».
  • Есть отдельное расширение DXOS Composer для Chrome, позволяет совместно работать с GitHub issues. Своего рода ещё одна демонстрашка технологии.
  • Доступ к Composer формально сейчас сделали по приглашениям (раньше свободный был), но выдают его моментально. Связано это больше с тем, что проект переносится на выделенный домен.

В качестве дополнительной информации можно посмотреть выступление одного из основателей DXOS:
Solving the distributed schema problem with @effect/schema (Effect Days 2024)

Имейте только ввиду, что выступление на 60% демонстрационное (понятно всем), на 40% техническое (код на TypeScript).

Jess Martin discusses the concept of local-first software and a new shape of software architecture that involves a peer-to-peer system and moves away from the traditional client-server model. He demonstrates a simple piece of software that follows this architecture, allowing for offline support and real-time collaboration.

  • The software uses a peer-to-peer system and eliminates the need for a back-end and an API layer.
  • Integration of the new shape of software with the Effect Schema package. The speaker discusses the importance of schemas in software and how they define the structure and behavior of data.
  • Local-first software demo, highlighting its benefits such as improved data sharing and synchronization.