UNISTACK — единый стек

Парадигма разработки автора: unified software stack — единый набор технологий и абстракций для клиента, сервера, БД, сети. Predшественник идеи Metarhia.

Что это

UNISTACK = unified software stack. Все слои приложения построены на одних и тех же примитивах, без лоскутного одеяла из разнородных библиотек.

Принципы

  • Один язык на всех узлах — JavaScript на клиенте, сервере, БД (V8 + GlobalStorage).
  • Один протокол — JSTP/Metacom прозрачен между всеми участниками.
  • Один транспорт — TCP/WebSocket/Unix-сокеты под единым API.
  • Один формат данных — JSON5/JSON.
  • Одна модель данных — единые типы и схемы в memory, БД, по сети.

Цитата

«Мы хотим поговорить о парадигме разработки UNISTACK, что означает unified software stack, то есть унифицированный стек программного обеспечения.»

Зачем

Классические enterprise-стеки: Java на сервере, JS на клиенте, SQL в БД, XML/JSON по сети, Protobuf в RPC, отдельный язык конфигурации, отдельный шаблонизатор. Это сложно поддерживать, дублируется логика.

UNISTACK: всё на JS, всё через единые абстракции — меньше moves between worlds.

Примеры в UNISTACK

// Wave Server (пример из лекции 2016)
var server = new WaveServer();
server.Start;
// Сервер + wave.js на клиенте — один протокол

В Metarhia сегодня:

  • Impress поднимается из одного конфига.
  • Metacom — единый канал для RPC, файлов, событий, sync.
  • Metaschema описывает типы для API, БД, домена.
  • GlobalStorage — JS-нативная БД.

Чем отличается от MEAN/MERN

MEAN/MERN — все на JS, но используются разнородные библиотеки (Express + Mongoose + React + Webpack), каждая со своим API.

UNISTACK — те же библиотеки задизайнены под единую идиому.

Эволюция

  • 2010-е — Impress + JSTP.
  • 2020-е — Metarhia + Metacom + Metasql.
  • Сегодня — local-first как продолжение UNISTACK на клиента.

🎓 Источники

  • 🎓 UNISTACK · 2016-03-13
    • Цитата: «UNISTACK означает unified software stack, то есть унифицированный стек программного обеспечения.»

См. также