跨平台 SQL 编辑器与数据库管理工具,支持 Linux、macOS 和 Windows,可连接 MySQL、PostgreSQL、SQLite 等多种数据库。
- Star
- 2,823
- Fork
- 81
- 未关闭 Issue
- 39
- 最近提交
- 20天前
这是什么?
Marmot 是一个用 Go 编写的分布式 SQLite 服务器。集群中任意节点都可以接受写入,不存在需要故障切换的单一主节点。节点之间通过 gossip 协议同步变更,每次写入通过两阶段提交完成,一致性级别可选 ONE、QUORUM 或 ALL。同一行的冲突按混合逻辑时钟时间戳采用last-write-wins 策略解决。
客户端通过 MySQL 协议连接,因此现有的驱动、ORM 以及 DBeaver、MySQL Workbench 等图形工具无需修改即可使用。复制采用行级变更数据捕获,而不是回放 SQL 语句;DDL 语句会在集群范围加锁并改写为幂等形式后复制。变更还可以以 Debezium 兼容的 JSON 格式发布到 Kafka 或 NATS。
此外,项目内置基于 IVF/PQ 的向量检索,索引文件保存在每个节点的 SQLite 文件旁,并提供只读副本模式,适合边缘部署。
核心功能
- 01任意节点可接受写入,无需选主或故障切换。
- 02兼容 MySQL 协议,可直接使用标准 MySQL 客户端和驱动。
- 03通过两阶段提交复制行级变更,一致性级别可调。
- 04DDL 语句在集群范围加锁复制,并自动改写为幂等形式。
- 05可将变更事件以 Debezium 兼容格式发布到 Kafka 或 NATS。
- 06内置向量检索,可通过 SQL 函数结合普通过滤条件进行相似度查询。
适用场景
- 部署多地域 WordPress 站点,使用可复制的数据库。
- 在边缘节点保存配置或商品目录的区域只读副本。
- 构建小型 RAG 存储,将向量检索与普通 SQL 过滤条件结合。
- 将数据库变更流式推送到 Kafka 或 NATS,供下游数据管道使用。
快速上手
- 1
启动单节点集群
./marmot-v2 - 2
使用 MySQL 客户端连接
mysql -h localhost -P 3306 -u root
使用前须知
- 提供最终一致性,而非强可串行化。
- 每个节点都保存全部数据副本,因此更适合较小的数据集,不适合超大规模数据(超过 100GB)。
- 不支持多个节点同时对同一数据库执行 DDL,且 ALTER TABLE 重放的安全性较差。
- 上传的媒体文件等不会被复制,需要单独的共享存储。
标签
常见问题
- marmot 是什么?
- 无主节点的分布式 SQLite 复制服务器,任意节点可写入,兼容 MySQL 协议。 Marmot 是一个用 Go 编写的分布式 SQLite 服务器。集群中任意节点都可以接受写入,不存在需要故障切换的单一主节点。节点之间通过 gossip 协议同步变更,每次写入通过两阶段提交完成,一致性级别可选 ONE、QUORUM 或 ALL。同一行的冲突按混合逻辑时钟时间戳采用last-write-wins 策略解决。
- marmot 可以免费使用吗?用的什么许可证?
- marmot 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- marmot 还在维护吗?
- 活跃维护中。marmot 最近一次提交是在 2026年9月30日。
- marmot 适合用来做什么?
- 部署多地域 WordPress 站点,使用可复制的数据库。 在边缘节点保存配置或商品目录的区域只读副本。 构建小型 RAG 存储,将向量检索与普通 SQL 过滤条件结合。 将数据库变更流式推送到 Kafka 或 NATS,供下游数据管道使用。
- marmot 怎么安装和运行?
- 启动单节点集群: ./marmot-v2 使用 MySQL 客户端连接: mysql -h localhost -P 3306 -u root
- 在哪里获取 marmot?
- 源代码和安装说明在 GitHub 上:https://github.com/maxpert/marmot
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2.4万1651TypeScriptOther更新于 昨天
一个用于数据库结构迁移的 CLI 与 Go 库,支持 SQL 文件和 Go 函数两种迁移方式。
1.2万719GoOther更新于 3天前
支持多种数据库的 AI 数据库客户端,同时提供 MCP 服务器供智能体查询。
1452106TypeScriptAGPL-3.0更新于 20小时前
免费的跨平台桌面 SQL 客户端与数据库工具,支持 100 多种数据库。
5.2万4422JavaApache-2.0更新于 12小时前
一个支持类 Git 分支、合并、推送和拉取操作的 SQL 数据库,兼容 MySQL 连接方式。
2.5万900GoApache-2.0更新于 前天
一个轻量、与框架无关的命令行工具,用纯 SQL 管理数据库迁移,适用于多人协作和多环境部署。
7465385GoMIT更新于 昨天