{"repo":"tx7do/go-crud","free":true,"listed":false,"github":"https://github.com/tx7do/go-crud","clone":"git clone https://github.com/tx7do/go-crud.git","description":"Generic data access layer toolkit for Go. Powered by Protobuf contracts, supporting structured filtering, Redis caching, and 8 database storage engines.","language":"Go","stars":15,"topics":["cassandra","clickhouse","elasticsearch","ent","golang","gorm","influxdb","mongodb","pagination","protobuf"],"license":"MIT","category":"databases-storage","readme_excerpt":"go-crud · 通用数据访问层工具库 一套泛型 Repository 接口，统一驾驭 8 种数据存储引擎 让数据操作不再是重复劳动，让每一行代码都聚焦业务价值 中文 · English · 日本語 --- 项目亮点 - 统一数据访问层 ：一套泛型 Repository 接口，覆盖 GORM、Ent、MongoDB、ClickHouse、Apache Doris、Elasticsearch、OpenSearch、InfluxDB 八大数据引擎，告别重复 Boilerplate - 三种分页策略 ：Offset / Page / Token 三种分页模式，从传统 Web 分页到无限滚动，全场景覆盖 - 结构化过滤引擎 ：29+ 种操作符，支持 AND/OR 多层嵌套，同时兼容 JSON 与 Google AIP 两种过滤语法，参数化查询杜绝 SQL 注入 - Protocol Buffers 契约 ：基于 Protobuf 定义标准化的分页、过滤、排序协议，天然适配 gRPC 微服务架构，接口即文档 - Redis 缓存层 ：内置 Cache-Aside 模式与 SingleFlight 防击穿机制，一行代码开启缓存，保护后端数据库 - 审计日志 ：统一的 Auditor 接口，Context 注入、全链路操作追溯与数据变更记录 - 数据权限控制 ：Viewer 上下文支持多租户隔离、五级数据范围（SELF / UNIT / USER / ALL / NONE），精细化的行级权限 - 完全类型安全 ：基于 Go 1.24+ 泛型，DTO ↔ Entity 双向映射，编译时即可捕获类型错误 - Upsert 支持 ：GORM / ClickHouse / Doris 原生支持 Upsert（INSERT ON CONFLICT），冲突自动更新 - 树形查询 ：Ent 模块内置树形结构组装，自动根据 ParentID 构建层级关系 --- 支持的数据引擎 引擎 类型 状态 适用场景 ------ ------ :----: ---------- GORM 关系型 ORM ✅ MySQL、PostgreSQL、SQLite、SQL Server 等主流关系型数据库 Ent 关系型 ORM (Code Gen) ✅ MySQL、PostgreSQL、SQLite，编译时类型安全，Facebook 开源 MongoDB 文档数据库 ✅ 半结构化数据、灵活 Schema、内容管理 ClickHouse 列式 OLAP ✅ 海量日志分析、指标聚合、用户行为分析、实时数仓 Apache Doris 列式 OLAP ✅ 实时 BI 报表、交互式分析、Stream Load 高速写入 Elasticsearch 搜索引擎 ✅ 全文检索、日志分析、高亮搜索、聚合分析 OpenSearch 搜索引擎 ✅ Elasticsearch 开源替代、向量检索、安全分析 InfluxDB 时序数据库 ✅ IoT 监控、DevOps 指标、时序数据分析 Cassandra 宽列数据库 🚧 高可用写入、跨数据中心复制（开发中） --- 系统架构 --- 项目结构 --- 核心功能 数据访问层 每个数据访问层模块均提供统一的泛型 Repository 封装，基于 mapper.CopierMapper[DTO, ENTITY] 实现 DTO ↔ Entity 双向自动映射： 能力 GORM Ent MongoDB ClickHouse Doris ES / OS InfluxDB -","default_branch":null,"files":null,"tree":[],"storefront":"/r/tx7do","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tx7do/go-crud/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}