# BaseFramework **Repository Path**: mstes/base-framework ## Basic Information - **Project Name**: BaseFramework - **Description**: 基于go开发的后端脚手架,使用说明详见README.md - **Primary Language**: Go - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-01-25 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # base-framework `base-framework` 是一个面向 Go 项目的基础组件仓库,按模块提供数据库、缓存、对象存储、日志、TCP 通信和通用对象池能力。每个目录都可以单独引入,整体风格偏轻封装:优先保留底层客户端的可访问性,再补充初始化、事务、批处理和示例代码。 ## 导入最新版本 当前远程仓库可见的最新标签为 `v1.3.9`。 ```bash go get gitee.com/mstes/base-framework@v1.3.9 ``` 如果你希望直接跟随远程最新可用发布版,也可以使用: ```bash go get gitee.com/mstes/base-framework@latest ``` ## 环境要求 - Go `1.25.3` 或更高版本 - 按需准备外部依赖:MySQL、Elasticsearch、Redis、MongoDB、MinIO - 需要 TCP 示例时,确保本机可监听示例地址 ## 快速开始 1. 初始化或进入你的 Go 项目。 ```bash go mod init your-project go get gitee.com/mstes/base-framework@v1.3.9 ``` 2. 选择需要的模块导入。 ```go import ( "gitee.com/mstes/base-framework/db" esdriver "gitee.com/mstes/base-framework/es" "gitee.com/mstes/base-framework/logger" miniodriver "gitee.com/mstes/base-framework/minio" mongodriver "gitee.com/mstes/base-framework/mongodb" objpool "gitee.com/mstes/base-framework/pool" redisdriver "gitee.com/mstes/base-framework/redis" "gitee.com/mstes/base-framework/tcpserver" tcpclient "gitee.com/mstes/base-framework/tcpserver/client" ) ``` 3. 先从无外部依赖的模块开始联调,例如 `logger`。 ```go package main import "gitee.com/mstes/base-framework/logger" func main() { log := logger.NewSyncLogger() log.SetLogLevel(logger.Debug) _ = log.Info(map[string]any{"module": "demo"}, "service started") } ``` 4. 外部依赖型模块建议先阅读对应 README,再运行各目录下的示例入口,例如: ```bash go run ./db/test go run ./es/test go run ./redis/test go run ./tcpserver/test ``` ## 模块 README 索引 | 模块 | 推荐导入方式 | 说明 | README | | --- | --- | --- | --- | | `db` | `import "gitee.com/mstes/base-framework/db"` | 基于 GORM/MySQL 的事务与连接池封装,自动迁移模型 | [db/README.md](./db/README.md) | | `es` | `import esdriver "gitee.com/mstes/base-framework/es"` | Elasticsearch 索引、批量写入、批量更新、通用检索 | [es/README.md](./es/README.md) | | `logger` | `import "gitee.com/mstes/base-framework/logger"` | 同步标准输出日志与异步滚动文件日志 | [logger/README.md](./logger/README.md) | | `minio` | `import miniodriver "gitee.com/mstes/base-framework/minio"` | MinIO 客户端、桶初始化、对象上传下载、分块读取 | [minio/README.md](./minio/README.md) | | `mongodb` | `import mongodriver "gitee.com/mstes/base-framework/mongodb"` | MongoDB 泛型客户端,覆盖 CRUD、索引、分页与排序 | [mongodb/README.md](./mongodb/README.md) | | `pool` | `import objpool "gitee.com/mstes/base-framework/pool"` | 基于 `sync.Pool` 的泛型对象池 | [pool/README.md](./pool/README.md) | | `redis` | `import redisdriver "gitee.com/mstes/base-framework/redis"` | `go-redis/v9` 轻封装,支持单节点和哨兵模式 | [redis/README.md](./redis/README.md) | | `tcpserver` | `import "gitee.com/mstes/base-framework/tcpserver"` | TCP 服务端、连接对象与基于 `ants` 的任务池 | [tcpserver/README.md](./tcpserver/README.md) | ## 统一设计约定 - 大多数模块使用 `New + Option` 方式初始化。 - 多数驱动会直接暴露底层控制器,方便继续调用底层库能力。 - 示例入口主要放在各模块的 `test/main.go` 中,适合联调时快速验证。 - 文档中会明确标注实现限制和默认值,使用前建议先看模块 README。