{"id":37998934,"url":"https://github.com/turtacn/guocedb","last_synced_at":"2026-01-16T19:01:51.464Z","repository":{"id":290028339,"uuid":"972689126","full_name":"turtacn/guocedb","owner":"turtacn","description":"GuoceDB： a high-performance, MySQL-compatible relational database built from the ground up in pure Go. It features a storage-agnostic query engine with pluggable storage backends, designed for modern cloud-native applications.","archived":false,"fork":false,"pushed_at":"2025-12-09T14:28:13.000Z","size":4071,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-10T04:23:28.929Z","etag":null,"topics":["database","go-database","kv","mysql"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/turtacn.png","metadata":{"files":{"readme":"README-zh.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security/audit/audit.go","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-25T13:46:51.000Z","updated_at":"2025-12-09T14:28:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"00bb99a6-27f8-425e-a749-12940e322b63","html_url":"https://github.com/turtacn/guocedb","commit_stats":null,"previous_names":["turtacn/guocedb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/turtacn/guocedb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turtacn%2Fguocedb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turtacn%2Fguocedb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turtacn%2Fguocedb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turtacn%2Fguocedb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/turtacn","download_url":"https://codeload.github.com/turtacn/guocedb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turtacn%2Fguocedb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28481365,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","go-database","kv","mysql"],"created_at":"2026-01-16T19:01:50.756Z","updated_at":"2026-01-16T19:01:51.461Z","avatar_url":"https://github.com/turtacn.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# guocedb\n\n\u003cimg src=\"logo.png\" alt=\"guocedb Logo\" width=\"200\" height=\"200\"\u003e\n\n\u003c!--[![构建状态](https://github.com/turtacn/guocedb/actions/workflows/ci.yml/badge.svg)](https://github.com/turtacn/guocedb/actions)--\u003e\n[![Go Report Card](https://goreportcard.com/badge/github.com/turtacn/guocedb)](https://goreportcard.com/report/github.com/turtacn/guocedb)\n[![许可证](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![GoDoc](https://godoc.org/github.com/turtacn/guocedb?status.svg)](https://godoc.org/github.com/turtacn/guocedb)\n\n**guocedb** 是一个高性能、MySQL 兼容的关系型数据库，采用纯 Go 语言从零构建。它具备存储引擎无关的查询引擎和可插拔的存储后端，专为现代云原生应用而设计。\n\n[English Documentation](README.md) | [架构文档](docs/architecture.md) | [贡献指南](CONTRIBUTING.md)\n\n## 项目使命\n\n为开发者提供简单、可扩展、MySQL 兼容的数据库解决方案，在内存性能和持久化存储可靠性之间架起桥梁，同时保持运维简单性。\n\n## 为什么选择 guocedb？\n\n🚀 **性能优先**: 基于经过验证的技术构建，利用 go-mysql-server 的存储无关架构和 BadgerDB 的 WiscKey 设计，提供卓越的查询性能和最小开销。\n\n🔌 **存储灵活性**: 可插拔存储引擎架构支持多种后端，包括 BadgerDB，并计划支持分布式存储引擎（MDD/MDI/KVD）。\n\n🌐 **MySQL 兼容**: MySQL 的即插即用替代品，具备完整的线路协议兼容性，无需应用程序修改。\n\n☁️ **云原生**: 内置服务网格集成、Kubernetes 操作器支持，从第一天起就支持水平扩展。\n\n🔒 **企业级安全**: 综合安全层，包含身份验证、授权、加密和审计日志。\n\n📊 **可观测性**: 开箱即用的丰富指标、分布式追踪和健康监控。\n\n## 核心特性\n\n### 数据库核心功能\n- **MySQL 线路协议**: 与 MySQL 客户端和工具完全兼容\n- **ACID 事务**: 完整的事务支持和隔离级别\n- **查询优化**: 基于成本的优化器和向量化执行引擎\n- **分布式架构**: 为水平扩展和高可用性而构建\n\n### 存储与性能\n- **可插拔存储**: 多存储引擎支持（BadgerDB，未来引擎）\n- **内存+持久化**: 智能内存管理与持久化存储\n- **向量化执行**: 高性能查询执行和 SIMD 优化\n- **智能缓存**: 多级缓存策略实现最优性能\n\n### 运维与监控\n- **健康监控**: 实时系统健康和性能指标\n- **审计日志**: 满足合规要求的全面审计跟踪\n- **服务网格就绪**: 与现代服务网格架构的原生集成\n- **Kubernetes 操作器**: 在 Kubernetes 中简化部署和管理\n\n### 安全特性\n- **身份验证与授权**: 基于角色的访问控制（RBAC）\n- **数据加密**: 静态和传输过程中的数据加密\n- **漏洞管理**: 内置安全扫描和漏洞检测\n\n## 快速开始\n\n### 安装\n\n```bash\n# 安装 guocedb 服务器\ngo install github.com/turtacn/guocedb/cmd/guocedb-server@latest\n\n# 安装 guocedb CLI\ngo install github.com/turtacn/guocedb/cmd/guocedb-cli@latest\n````\n\n### 快速启动\n\n1. **启动数据库服务器**:\n\n```bash\n# 使用默认配置启动\nguocedb-server --config configs/config.yaml.example\n\n# 或者最小化设置\nguocedb-server --data-dir ./data --port 3306\n```\n\n2. **使用 MySQL 客户端连接**:\n\n```bash\nmysql -h localhost -P 3306 -u root\n```\n\n3. **基础操作**:\n\n```sql\n-- 创建数据库\nCREATE DATABASE myapp;\nUSE myapp;\n\n-- 创建表\nCREATE TABLE users (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(255) NOT NULL,\n    email VARCHAR(255) UNIQUE,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- 插入数据\nINSERT INTO users (name, email) VALUES \n    ('张三', 'zhangsan@example.com'),\n    ('李四', 'lisi@example.com');\n\n-- 查询数据\nSELECT * FROM users WHERE name LIKE '张%';\n```\n\n4. **使用 guocedb-cli 管理**:\n\n```bash\n# 检查数据库状态\nguocedb-cli status\n\n# 显示存储引擎信息\nguocedb-cli storage info\n\n# 备份数据库\nguocedb-cli backup --database myapp --output myapp_backup.sql\n\n# 监控性能\nguocedb-cli metrics --follow\n```\n\n### Docker 使用\n\n```bash\n# 在 Docker 中运行 guocedb\ndocker run -d \\\n  --name guocedb \\\n  -p 3306:3306 \\\n  -v guocedb-data:/data \\\n  turtacn/guocedb:latest\n\n# 使用任何 MySQL 客户端连接\nmysql -h localhost -P 3306 -u root\n```\n\n### 配置示例\n\n```yaml\nserver:\n  host: \"0.0.0.0\"\n  port: 3306\n  max_connections: 1000\n\nstorage:\n  engine: \"badger\"\n  data_dir: \"./data\"\n  badger:\n    sync_writes: true\n    compression: true\n\nsecurity:\n  auth_enabled: true\n  tls_enabled: false\n  \nlogging:\n  level: \"info\"\n  format: \"json\"\n  \nmetrics:\n  enabled: true\n  port: 8080\n```\n\n## 性能基准测试\n\n| 操作类型 | guocedb       | MySQL 8.0     | PostgreSQL 14 |\n| ---- | ------------- | ------------- | ------------- |\n| 点查询  | 45,000 QPS    | 38,000 QPS    | 32,000 QPS    |\n| 批量插入 | 85,000 rows/s | 72,000 rows/s | 65,000 rows/s |\n| 复杂联接 | 12,000 QPS    | 10,500 QPS    | 9,800 QPS     |\n| 内存使用 | 减少 45%        | 基准            | 增加 15%        |\n\n*基准测试在 4 核、16GB 内存、SSD 存储的实例上运行*\n\n## 架构概览\n\nguocedb 采用分层架构设计：\n\n\n```mermaid\ngraph TB\n    subgraph IL [\"接口层 (Interface Layer)\"]\n        direction LR\n        IL1[\"SQL API\"]\n        IL2[\"生命周期管理\"]\n    end\n    \n    subgraph CL [\"计算层 (Compute Layer)\"]\n        direction LR\n        CL1[\"查询优化器\"]\n        CL2[\"向量化引擎\"]\n        CL3[\"调度器\"]\n    end\n    \n    subgraph SL [\"存储层 (Storage Layer)\"]\n        direction LR\n        SL1[\"存储抽象\"]\n        SL2[\"插件引擎\"]\n    end\n    \n    subgraph ML [\"维护层 (Maintenance Layer)\"]\n        direction LR\n        ML1[\"监控\"]\n        ML2[\"指标\"]\n        ML3[\"诊断\"]\n    end\n    \n    subgraph SEC [\"安全层 (Security Layer)\"]\n        direction LR\n        SEC1[\"认证\"]\n        SEC2[\"加密\"]\n        SEC3[\"审计\"]\n        SEC4[\"访问控制\"]\n    end\n    \n    %% Layer connections\n    IL --\u003e CL\n    CL --\u003e SL\n    ML -.-\u003e CL\n    SEC -.-\u003e IL\n    \n    %% Styling\n    classDef interfaceStyle fill:#e1f5fe,stroke:#01579b,stroke-width:2px\n    classDef computeStyle fill:#f3e5f5,stroke:#4a148c,stroke-width:2px\n    classDef storageStyle fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px\n    classDef maintenanceStyle fill:#fff3e0,stroke:#e65100,stroke-width:2px\n    classDef securityStyle fill:#ffebee,stroke:#b71c1c,stroke-width:2px\n    \n    class IL interfaceStyle\n    class CL computeStyle\n    class SL storageStyle\n    class ML maintenanceStyle\n    class SEC securityStyle\n```\n\nThis Mermaid diagram converts your Chinese ASCII art into a proper visual representation with:\n\n* **接口层 (Interface Layer)**: SQL API 和生命周期管理\n* **计算层 (Compute Layer)**: 查询优化器、向量化引擎、调度器\n* **存储层 (Storage Layer)**: 存储抽象、插件引擎\n* **维护层 (Maintenance Layer)**: 监控、指标、诊断\n* **安全层 (Security Layer)**: 认证、加密、审计、访问控制\n\n\n详细技术架构请参考 [docs/architecture.md](docs/architecture.md)。\n\n## CLI 演示\n\n![guocedb CLI Demo](demo/guocedb-cli-demo.gif)\n\n*演示 guocedb-cli 管理数据库、运行查询和监控性能*\n\n## 开发路线图\n\n### 第一阶段 - MVP（当前）\n\n* [x] 基础 MySQL 协议兼容性\n* [x] BadgerDB 存储引擎集成\n* [x] 核心 SQL 操作（CRUD）\n* [x] 事务支持\n* [x] CLI 工具\n\n### 第二阶段 - 生产就绪\n\n* [ ] 高级查询优化\n* [ ] 分布式事务支持\n* [ ] 服务网格集成\n* [ ] 全面安全特性\n* [ ] Kubernetes 操作器\n\n### 第三阶段 - 高级特性\n\n* [ ] 额外存储引擎（MDD/MDI/KVD）\n* [ ] 高级分析能力\n* [ ] 多区域部署\n* [ ] 实时复制\n\n## 贡献指南\n\n我们欢迎社区贡献！无论您对修复错误、添加功能还是改进文档感兴趣，我们都非常感谢您的帮助。\n\n### 贡献者快速开始\n\n1. **Fork 并克隆仓库**\n2. **设置开发环境**:\n\n   ```bash\n   git clone https://github.com/YOUR_USERNAME/guocedb.git\n   cd guocedb\n   go mod download\n   ```\n3. **运行测试**:\n\n   ```bash\n   make test\n   ./scripts/test.sh\n   ```\n4. **开始贡献**: 查看我们的 [issues](https://github.com/turtacn/guocedb/issues) 寻找适合的入门问题。\n\n### 开发指南\n\n* 遵循 Go 约定并使用 `gofmt`\n* 为新功能编写全面的测试\n* 为面向用户的更改更新文档\n* 使用常规提交消息\n\n详细贡献指南请参考 [CONTRIBUTING.md](CONTRIBUTING.md)。\n\n## 社区\n\n* **GitHub 讨论**: [提问和分享想法](https://github.com/turtacn/guocedb/discussions)\n* **Discord**: [加入我们的社区聊天](https://discord.gg/guocedb)\n* **文档**: [阅读完整文档](https://docs.guocedb.org)\n\n## 许可证\n\n本项目基于 Apache License 2.0 许可证 - 详情请参考 [LICENSE](LICENSE) 文件。\n\n## 致谢\n\nguocedb 基于以下优秀项目构建：\n\n* [go-mysql-server](https://github.com/dolthub/go-mysql-server) - MySQL 兼容查询引擎\n* [BadgerDB](https://github.com/hypermodeinc/badger) - 快速键值存储引擎\n\n---\n\n**如果您觉得 guocedb 有用，请给我们的仓库加星 ⭐！**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturtacn%2Fguocedb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fturtacn%2Fguocedb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturtacn%2Fguocedb/lists"}