Editor SQL y gestor de bases de datos multiplataforma para Linux, macOS y Windows, compatible con MySQL, PostgreSQL, SQLite, SQL Server y muchos más.
maxpert/marmot
Servidor de replicación distribuida de SQLite sin líder, que acepta escrituras en cualquier nodo y usa el protocolo de conexión de MySQL.
Alternativa open source a:CockroachDB
Amazon Aurora
- Estrellas
- 2,823
- Forks
- 81
- Issues abiertos
- 39
- Último commit
- hace 20 días
¿Qué es?
Marmot es un servidor distribuido de SQLite escrito en Go. Cualquier nodo del clúster puede aceptar escrituras, por lo que no hay un primario único al que haya que conmutar en caso de fallo. Los nodos intercambian cambios mediante un protocolo gossip y cada escritura se coordina con un commit en dos fases y un nivel de consistencia configurable (ONE, QUORUM o ALL). Los conflictos en una misma fila se resuelven dando prioridad a la última escritura según una marca de tiempo de reloj lógico híbrido.
Los clientes se conectan mediante el protocolo MySQL, así que se pueden usar sin cambios los drivers, ORM y herramientas gráficas existentes, como DBeaver o MySQL Workbench. El proyecto incluye WordPress entre las aplicaciones compatibles y un ejemplo de clúster de tres nodos. La replicación captura cambios a nivel de fila, en lugar de volver a ejecutar sentencias SQL; las sentencias DDL se replican con un bloqueo para todo el clúster y se reescriben automáticamente para que sean idempotentes. También se pueden publicar cambios en Kafka o NATS con formato JSON compatible con Debezium.
El proyecto también incluye una capa integrada de búsqueda vectorial con índices IVF/PQ almacenados junto al archivo SQLite de cada nodo, además de un modo de réplica de solo lectura para implementaciones en el edge.
Funciones clave
- 01Cualquier nodo acepta escrituras, sin elección de líder ni pasos de conmutación por fallo.
- 02Usa el protocolo de conexión de MySQL, por lo que funcionan los clientes y drivers estándar de MySQL.
- 03Replica cambios a nivel de fila mediante un commit en dos fases y una consistencia configurable.
- 04Replica DDL con bloqueo para todo el clúster y reescritura automática para que las sentencias sean idempotentes.
- 05Publica eventos de cambios en Kafka o NATS en un formato compatible con Debezium.
- 06Incluye búsqueda vectorial con funciones SQL para consultas de similitud con filtros.
Casos de uso
- Ejecutar un sitio de WordPress en varias regiones con una base de datos replicada.
- Mantener en el edge réplicas de lectura regionales con datos de configuración o catálogos de productos.
- Crear un pequeño almacén RAG que combine embeddings con filtros SQL convencionales.
- Transmitir cambios de la base de datos a Kafka o NATS para usarlos en pipelines posteriores.
Inicio rápido
- 1
Inicia un clúster de un solo nodo
./marmot-v2 - 2
Conéctate con un cliente MySQL
mysql -h localhost -P 3306 -u root
Antes de usarlo
- Ofrece consistencia eventual, no serializabilidad estricta.
- Cada nodo conserva una copia completa de todos los datos, por lo que es adecuado para conjuntos de datos pequeños, no para conjuntos muy grandes (más de 100 GB).
- No se admite ejecutar DDL simultáneamente en la misma base de datos desde varios nodos, y ALTER TABLE es menos seguro de volver a ejecutar.
- Los archivos multimedia, como las cargas, no se replican y requieren almacenamiento compartido por separado.
Temas
Preguntas frecuentes
- ¿Qué es marmot?
- Servidor de replicación distribuida de SQLite sin líder, que acepta escrituras en cualquier nodo y usa el protocolo de conexión de MySQL. Marmot es un servidor distribuido de SQLite escrito en Go. Cualquier nodo del clúster puede aceptar escrituras, por lo que no hay un primario único al que haya que conmutar en caso de fallo. Los nodos intercambian cambios mediante un protocolo gossip y cada escritura se coordina con un commit en dos fases y un nivel de consistencia configurable (ONE, QUORUM o ALL). Los conflictos en una misma fila se resuelven dando prioridad a la última escritura según una marca de tiempo de reloj lógico híbrido.
- ¿marmot es gratuito? ¿Qué licencia tiene?
- marmot es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿marmot sigue mantenido?
- Mantenimiento activo. El último commit de marmot fue el 30 sept 2026.
- ¿Para qué puedo usar marmot?
- Ejecutar un sitio de WordPress en varias regiones con una base de datos replicada. Mantener en el edge réplicas de lectura regionales con datos de configuración o catálogos de productos. Crear un pequeño almacén RAG que combine embeddings con filtros SQL convencionales. Transmitir cambios de la base de datos a Kafka o NATS para usarlos en pipelines posteriores.
- ¿Cómo se instala marmot?
- Inicia un clúster de un solo nodo: ./marmot-v2 Conéctate con un cliente MySQL: mysql -h localhost -P 3306 -u root
- ¿Dónde consigo marmot?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/maxpert/marmot
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
CLI y biblioteca de Go para gestionar cambios en el esquema de bases de datos mediante archivos SQL versionados o funciones de Go.
Cliente de bases de datos con IA y servidor MCP para escritorio y web, compatible con Postgres, MySQL, MariaDB, SQL Server, ClickHouse y SQLite.
Cliente SQL de escritorio gratuito y multiplataforma, y herramienta para bases de datos compatible con más de 100 bases mediante drivers JDBC y ODBC.
Una base de datos SQL compatible con MySQL que permite bifurcar, clonar, crear ramas, fusionar, enviar y obtener cambios en tablas al estilo de Git.
Herramienta ligera de línea de comandos, independiente del framework, para gestionar migraciones de bases de datos en SQL entre equipos y entornos.