Локальная реактивная NoSQL-база данных для JavaScript-приложений в браузерах, Node.js, React Native и Electron с репликацией на собственный бэкенд.
amark/gun
JavaScript-движок синхронизации графов и набор инструментов для создания децентрализованных приложений с поддержкой офлайн-режима, сквозным шифрованием и синхронизацией между узлами.
Open source альтернатива:Firebase
- Звёзды
- 19,149
- Форки
- 1,241
- Открытые issues
- 317
- Последний коммит
- 7 дней назад
Что это?
GUN — это экосистема инструментов для создания приложений с шифрованием, которыми управляет сообщество. Проект позиционируется как альтернатива с открытым исходным кодом таким бэкендам, как Firebase. Данные хранятся в виде графа узлов «ключ/значение», которые могут представлять документы, таблицы и другие структуры. Изменения синхронизируются между узлами в реальном времени, без центрального главного сервера.
Приложения работают в браузере или Node.js, а библиотека поддерживает офлайн-режим и объединяет обновления при повторном подключении устройств. В экосистему входят SEA для аутентификации пользователей и шифрования, узел-ретранслятор, который можно развернуть с помощью Docker, Heroku или установочного скрипта для Linux, а также биндинги и примеры для таких фреймворков, как React, Vue, Svelte и Electron.
В основе проекта — разрешение конфликтов на базе CRDT. В README основная библиотека описана как лёгкий встраиваемый движок размером около 9 КБ после сжатия gzip.
Ключевые возможности
- 01Синхронизация состояния между клиентами в реальном времени и по одноранговой сети.
- 02Графовая модель данных с поддержкой пар «ключ/значение», таблиц и документов.
- 03Работа в первую очередь офлайн с автоматическим объединением данных при повторном подключении.
- 04Сквозное шифрование и аутентификация пользователей с помощью модуля SEA.
- 05Развёртывание узла-ретранслятора через Docker, Heroku или установочный скрипт для Linux.
Сценарии использования
- Создание совместных или многопользовательских веб-приложений, которые продолжают работать офлайн.
- Быстрое создание прототипа бессерверного или децентрализованного бэкенда на JavaScript.
- Создание зашифрованных хранилищ данных под контролем пользователей для личных приложений или приложений сообщества.
- Запуск собственных узлов-ретрансляторов для команды разработчиков.
Быстрый старт
- 1
Установите пакет с помощью npm
npm install gun - 2
Запустите примеры, входящие в пакет, из папки пакета
cd node_modules/gun && npm start
Что важно знать
- В качестве лицензии указано NOASSERTION, поэтому перед использованием проверьте условия лицензирования в репозитории.
- В README не указана стабильная версия, поэтому между версиями возможны изменения.
Темы
Частые вопросы
- Что такое gun?
- JavaScript-движок синхронизации графов и набор инструментов для создания децентрализованных приложений с поддержкой офлайн-режима, сквозным шифрованием и синхронизацией между узлами. GUN — это экосистема инструментов для создания приложений с шифрованием, которыми управляет сообщество. Проект позиционируется как альтернатива с открытым исходным кодом таким бэкендам, как Firebase. Данные хранятся в виде графа узлов «ключ/значение», которые могут представлять документы, таблицы и другие структуры. Изменения синхронизируются между узлами в реальном времени, без центрального главного сервера.
- gun можно использовать бесплатно? Какая у него лицензия?
- gun распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- gun всё ещё поддерживается?
- Активно поддерживается. Последний коммит в gun — 15 окт. 2026 г..
- Для чего можно использовать gun?
- Создание совместных или многопользовательских веб-приложений, которые продолжают работать офлайн. Быстрое создание прототипа бессерверного или децентрализованного бэкенда на JavaScript. Создание зашифрованных хранилищ данных под контролем пользователей для личных приложений или приложений сообщества. Запуск собственных узлов-ретрансляторов для команды разработчиков.
- Как установить gun?
- Установите пакет с помощью npm: npm install gun Запустите примеры, входящие в пакет, из папки пакета: cd node_modules/gun && npm start
- Где скачать gun?
- Исходный код и инструкции по установке — на GitHub: https://github.com/amark/gun
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека JavaScript для создания многопользовательских веб-приложений с прямым P2P-подключением браузеров по WebRTC без собственного сервера.
Платформа разработки на базе Postgres: управляемая база данных с аутентификацией, автоматически генерируемыми API, хранилищем и функциями realtime — альтернатива Firebase.
ORM для TypeScript и JavaScript, работающий в Node.js и других JS-средах и поддерживающий паттерны Active Record и Data Mapper для множества SQL- и NoSQL-баз данных.
Мультимодельная база данных на Rust, объединяющая документы, графы, реляционные, временные ряды и данные «ключ—значение», с запросами в реальном времени и встроенным контролем доступа.
ODM для MongoDB в Node.js: схемы, модели, валидация и помощники для запросов в асинхронных приложениях.