# peachy **Repository Path**: node-message/peachy ## Basic Information - **Project Name**: peachy - **Description**: Peachy 是一个基于 Hertz 的企业级 Go Web 框架,专注于提供完整的 MVC 架构支持和丰富的企业级功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-23 - **Last Updated**: 2026-02-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, Web ## README # Peachy 框架 ![版本](https://img.shields.io/badge/版本-1.0.0-blue) ![许可证](https://img.shields.io/badge/许可证-MIT-green) ![Go版本](https://img.shields.io/badge/Go-1.22+-00ADD8) Peachy 是一个基于 [Hertz](https://cloudwego.cn/zh/docs/hertz/) 的企业级 Go Web 框架,专注于提供完整的 MVC 架构支持和丰富的企业级功能。 ## ✨ 功能特点 - **高性能HTTP服务**:基于字节跳动开源的 [Hertz](https://github.com/cloudwego/hertz) 高性能HTTP框架 - **MVC架构**:完整的 Model-View-Controller 架构支持 - **中间件系统**:灵活可扩展的中间件系统 - **数据库集成**:支持 MySQL 和 SQLite 数据库(通过 [GORM](https://gorm.io/)) - **日志系统**:集成完善的日志处理 - **配置管理**:基于 Viper 的多环境配置管理 - **CLI支持**:强大的命令行工具支持 - **模块化设计**:采用模块化设计,方便扩展 - **Redis支持**:内置 Redis 缓存支持 - **代码生成**:自动生成控制器和模型代码 - **优雅关闭**:支持服务的优雅启动和关闭 - **健康检查**:内置健康检查接口 - **跨平台**:支持 Windows/Linux/MacOS 平台 - **API文档**:集成 Swagger API 文档生成 ## 🚀 快速开始 ### 安装 ```bash # 克隆仓库 git clone https://github.com/yourusername/peachy.git # 进入项目目录 cd peachy # 安装依赖 go mod tidy ``` ### 配置 默认配置文件位于 `config.yaml`。您可以根据需要修改配置: ```yaml server: host: 0.0.0.0 port: 8888 read_timeout: 10s write_timeout: 10s max_header_bytes: 1048576 # 1MB # 数据库配置 (可选 MySQL 或 SQLite) database: driver: sqlite # 或 mysql dsn: ./peachy.db # MySQL示例: root:root@tcp(localhost:3306)/peachy?charset=utf8mb4&parseTime=True&loc=Local max_idle_conn: 10 max_open_conn: 100 # Redis配置 redis: host: localhost port: 6379 password: "" db: 0 # 日志配置 log: level: info file_path: logs/app.log max_size: 100 max_backups: 10 max_age: 30 compress: false ``` ### 运行服务器 ```bash # 使用默认配置运行 go run main.go # 指定配置文件 go run main.go --config ./custom_config.yaml # 指定端口 go run main.go --port 9000 # 使用server命令 go run main.go server --port 9000 ``` ## 🔧 核心功能 ### 数据库操作 #### 初始化数据库 ```bash # 初始化SQLite数据库 go run main.go db init --type sqlite --file ./peachy.db # 初始化MySQL数据库 go run main.go db init --type mysql ``` #### 数据库迁移 ```bash # 迁移数据库结构 go run main.go migrate # 填充初始数据 go run main.go migrate seed ``` ### 代码生成 Peachy 提供代码生成功能,帮助快速创建控制器和模型: ```bash # 生成控制器 go run main.go generate controller --name user # 生成模型 go run main.go generate model --name user ``` ### API 文档 项目集成了 Swagger 文档功能,方便查看和测试 API。 #### 生成文档 ```bash # 生成Swagger文档 make swagger # 或使用docs命令 make docs ``` #### 访问文档 启动服务器后,可通过以下URL访问Swagger文档: ``` http://localhost:8888/swagger/index.html ``` ## 📂 项目结构 ``` peachy/ ├── cmd/ # 命令行命令实现 ├── docs/ # Swagger文档自动生成目录 ├── internal/ # 内部包 │ ├── app/ # 应用核心组件 │ ├── config/ # 配置管理 │ ├── controller/ # 控制器层 │ ├── dao/ # 数据访问对象 │ ├── db/ # 数据库连接管理 │ ├── logger/ # 日志系统 │ ├── middleware/ # 中间件 │ ├── model/ # 数据模型 │ ├── router/ # 路由管理 │ ├── service/ # 业务逻辑层 │ └── utils/ # 工具函数 ├── build/ # 构建产物目录 ├── config.yaml # 配置文件 ├── main.go # 程序入口 ├── Makefile # 构建脚本 ├── go.mod # Go模块定义 └── go.sum # 依赖锁定文件 ``` ## 🔌 API 路由 框架默认提供以下路由: - **`/ping`**: 健康检查接口 - **`/swagger/*any`**: Swagger UI接口 - **`/api/v1/todos`**: Todo资源RESTful接口 - `GET /todos`: 获取Todo列表 - `POST /todos`: 创建Todo - `GET /todos/:id`: 获取单个Todo详情 - `PUT /todos/:id`: 更新Todo - `DELETE /todos/:id`: 删除Todo ## 📦 构建与部署 项目提供了跨平台构建和打包功能,使用Makefile实现: ```bash # 为当前平台构建 make build # 为特定平台构建 make build-win # Windows make build-linux # Linux make build-darwin # MacOS # 打包特定平台版本 make pack-win # Windows make pack-linux # Linux make pack-darwin # MacOS # 打包所有平台版本 make pack-all # 清理构建文件 make clean ``` 打包后的文件位于 `build/packages` 目录下。 ## 🤝 贡献指南 欢迎贡献代码和提出问题!请遵循以下步骤: 1. Fork 本仓库 2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交您的更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开一个 Pull Request ## 📄 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。