Marmot – A distributed SQLite server with MySQL wire compatible interface

https://news.ycombinator.com/rss Hits: 16
Summary

Marmot v2 What & Why? Marmot v2 is a leaderless, distributed SQLite replication system built on a gossip-based protocol with distributed transactions and eventual consistency. Key Features: Leaderless Architecture : No single point of failure - any node can accept writes : No single point of failure - any node can accept writes MySQL Protocol Compatible : Connect with any MySQL client (DBeaver, MySQL Workbench, mysql CLI) : Connect with any MySQL client (DBeaver, MySQL Workbench, mysql CLI) Distributed Transactions : Percolator-style write intents with conflict detection : Percolator-style write intents with conflict detection Multi-Database Support : Create and manage multiple databases per cluster : Create and manage multiple databases per cluster DDL Replication : Distributed schema changes with automatic idempotency and cluster-wide locking : Distributed schema changes with automatic idempotency and cluster-wide locking Production-Ready SQL Parser : Powered by rqlite/sql AST parser for MySQL→SQLite transpilation : Powered by rqlite/sql AST parser for MySQL→SQLite transpilation CDC-Based Replication: Row-level change data capture for consistent replication Quick Start # Start a single-node cluster ./marmot-v2 # Connect with MySQL client mysql -h localhost -P 3306 -u root # Or use DBeaver, MySQL Workbench, etc. Testing Replication # Test DDL and DML replication across a 2-node cluster ./scripts/test-ddl-replication.sh # This script will: # 1. Start a 2-node cluster # 2. Create a table on node 1 and verify it replicates to node 2 # 3. Insert data on node 1 and verify it replicates to node 2 # 4. Update data on node 2 and verify it replicates to node 1 # 5. Delete data on node 1 and verify it replicates to node 2 # Manual cluster testing ./examples/start-seed.sh # Start seed node (port 8081, mysql 3307) ./examples/join-cluster.sh 2 localhost:8081 # Join node 2 (port 8082, mysql 3308) ./examples/join-cluster.sh 3 localhost:8081 # Join node 3 (port 8083, mysql 3309) #...

First seen: 2026-01-02 03:13

Last seen: 2026-01-02 18:15