Кроссплатформенный SQL-редактор и менеджер баз данных для Linux, macOS и Windows с поддержкой MySQL, PostgreSQL, SQLite, SQL Server и других СУБД.
maxpert/marmot
Распределённый SQLite-сервер без лидера: принимает записи на любом узле и поддерживает протокол MySQL.
Open source альтернатива:CockroachDB
Amazon Aurora
- Звёзды
- 2,823
- Форки
- 81
- Открытые issues
- 39
- Последний коммит
- 20 дней назад
Что это?
Marmot — распределённый сервер SQLite, написанный на Go. Записи можно отправлять на любой узел кластера, поэтому единственного основного узла, который пришлось бы заменять при сбое, нет. Узлы обмениваются изменениями по gossip-протоколу, а каждая запись координируется с помощью двухфазного коммита на настраиваемом уровне согласованности (ONE, QUORUM или ALL). Конфликты при изменении одной и той же строки разрешаются по принципу last-write-wins на основе метки времени гибридных логических часов.
Клиенты подключаются по протоколу MySQL, поэтому существующие драйверы, ORM и GUI-инструменты, например DBeaver или MySQL Workbench, можно использовать без изменений. В проекте указана поддержка WordPress и есть пример кластера из трёх узлов. Репликация основана на захвате изменений на уровне строк, а не на повторном выполнении SQL-операторов. DDL-операторы реплицируются с блокировкой на уровне всего кластера и автоматически преобразуются в идемпотентные. Изменения также можно публиковать в Kafka или NATS в формате JSON, совместимом с Debezium.
Кроме того, в проект встроен слой векторного поиска с индексами IVF/PQ, которые хранятся рядом с файлом SQLite каждого узла, а также режим реплики только для чтения для развёртываний на периферии.
Ключевые возможности
- 01Записи можно отправлять на любой узел; выбор лидера и переключение при сбое не требуются.
- 02Поддерживает протокол MySQL, поэтому работают стандартные клиенты и драйверы MySQL.
- 03Реплицирует изменения на уровне строк с помощью двухфазного коммита и настраиваемого уровня согласованности.
- 04Реплицирует DDL с блокировкой на уровне всего кластера и автоматическим преобразованием операторов в идемпотентные.
- 05Публикует события об изменениях в Kafka или NATS в формате, совместимом с Debezium.
- 06Предоставляет встроенный векторный поиск с SQL-функциями для поиска по сходству с фильтрами.
Сценарии использования
- Запуск многорегионального сайта WordPress на основе реплицируемой базы данных.
- Поддержание региональных реплик данных конфигурации или каталога товаров на периферии.
- Создание небольшого хранилища для RAG, объединяющего эмбеддинги с обычными SQL-фильтрами.
- Передача изменений базы данных в Kafka или NATS для последующих конвейеров обработки данных.
Быстрый старт
- 1
Запустите кластер с одним узлом
./marmot-v2 - 2
Подключитесь с помощью клиента MySQL
mysql -h localhost -P 3306 -u root
Что важно знать
- Обеспечивает конечную согласованность, а не строгую сериализуемость.
- Каждый узел хранит полную копию всех данных, поэтому система подходит для небольших наборов данных, а не для очень больших (свыше 100 ГБ).
- Параллельное выполнение DDL для одной и той же базы данных с нескольких узлов не поддерживается, а повторное выполнение ALTER TABLE менее безопасно.
- Медиафайлы, например загруженные файлы, не реплицируются и требуют отдельного общего хранилища.
Темы
Частые вопросы
- Что такое marmot?
- Распределённый SQLite-сервер без лидера: принимает записи на любом узле и поддерживает протокол MySQL. Marmot — распределённый сервер SQLite, написанный на Go. Записи можно отправлять на любой узел кластера, поэтому единственного основного узла, который пришлось бы заменять при сбое, нет. Узлы обмениваются изменениями по gossip-протоколу, а каждая запись координируется с помощью двухфазного коммита на настраиваемом уровне согласованности (ONE, QUORUM или ALL). Конфликты при изменении одной и той же строки разрешаются по принципу last-write-wins на основе метки времени гибридных логических часов.
- marmot можно использовать бесплатно? Какая у него лицензия?
- marmot распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- marmot всё ещё поддерживается?
- Активно поддерживается. Последний коммит в marmot — 30 сент. 2026 г..
- Для чего можно использовать marmot?
- Запуск многорегионального сайта WordPress на основе реплицируемой базы данных. Поддержание региональных реплик данных конфигурации или каталога товаров на периферии. Создание небольшого хранилища для RAG, объединяющего эмбеддинги с обычными SQL-фильтрами. Передача изменений базы данных в Kafka или NATS для последующих конвейеров обработки данных.
- Как установить marmot?
- Запустите кластер с одним узлом: ./marmot-v2 Подключитесь с помощью клиента MySQL: mysql -h localhost -P 3306 -u root
- Где скачать marmot?
- Исходный код и инструкции по установке — на GitHub: https://github.com/maxpert/marmot
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
CLI и библиотека Go для управления изменениями схемы БД с помощью версионируемых SQL-файлов или Go-функций.
Минималистичный и экономный по токенам MCP-сервер, с помощью которого AI-клиенты могут выполнять запросы и исследовать базы PostgreSQL, MySQL, SQL Server, Oracle, MariaDB и SQLite.
Клиент для работы с базами данных и MCP-сервер на базе ИИ для компьютеров и веба; поддерживает Postgres, MySQL, MariaDB, SQL Server, ClickHouse и SQLite.
Бесплатный кроссплатформенный SQL-клиент для настольных ПК и инструмент для работы с базами данных: поддерживает более 100 баз через драйверы JDBC и ODBC.
Лёгкая ORM без лишних абстракций для TypeScript, поддерживающая PostgreSQL, MySQL и SQLite в Node.js, Bun, Deno и edge-средах.