# cyiris **Repository Path**: chenishr/cyiris ## Basic Information - **Project Name**: cyiris - **Description**: 一个基于 iris 的开箱即用的开发框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-11 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CyIris CyIris 是一个基于 Go 语言构建的轻量级框架,旨在简化 Web 和消息队列 (MQ) 服务的开发。它提供了 HTTP 服务、消息队列处理、数据库操作、日志记录以及配置管理等核心功能。 ## 特性 - **HTTP 服务**:基于 Iris 框架,提供路由注册、控制器、过滤器等功能。 - **消息队列 (MQ)**:支持 RabbitMQ,提供发布者、消费者、任务处理等机制。 - **数据库支持**:集成 GORM,支持 MySQL 等数据库。 - **日志系统**:使用 Zap 日志库,提供结构化日志记录。 - **配置管理**:支持从 YAML 文件加载配置。 - **协议支持**:使用 Protocol Buffer 定义消息结构,确保高效的数据交换。 ## 安装 确保你已经安装了 [Go](https://golang.org/dl/) 并配置好了环境变量。然后克隆项目: ```bash git clone https://gitee.com/chenishr/cyiris.git cd cyiris ``` 安装依赖: ```bash go mod download ``` ## 使用示例 ### 启动 HTTP 服务 在 `main.go` 文件中,你可以看到启动 HTTP 服务的基本逻辑: ```go func main() { core.InitServer() core.Run() } ``` ### 定义一个 HTTP 控制器 你可以在 `app/demo/ctrl` 目录下定义一个新的控制器,例如: ```go type HelloCtrl struct { baseCtrl *http.BaseCtrl } func NewHelloCtrl() *HelloCtrl { return &HelloCtrl{ baseCtrl: http.NewBaseCtrl(), } } func (ctrl *HelloCtrl) Action(ctx *http.Context) { ctx.Success("Hello, CyIris!") } ``` 并在 `app/route.go` 中注册路由: ```go func SetupRoute() { http.RegisterRouter("GET", "/hello", demo.NewHelloCtrl()) } ``` ### 使用消息队列 你可以通过 `core/mq` 包来发送和消费消息。例如,发送一条消息: ```go err := mq.Send2Demo("demo_exchange", []byte("Hello, MQ!")) if err != nil { log.Error("Failed to send message:", err) } ``` 定义一个消费者: ```go type DemoTaskBiz struct{} func NewDemoTaskBiz() *DemoTaskBiz { return &DemoTaskBiz{} } func (biz *DemoTaskBiz) Handle(msg *amqp.Delivery) error { log.Info("Received message:", string(msg.Body)) return nil } ``` 并在 `app/task.go` 中注册任务: ```go func SetupTask() { task := mq.NewTask(...) task.RegisterRouter("demo_task", demo.NewDemoTaskBiz()) task.Init() } ``` ## 贡献 欢迎贡献代码和文档!请参考 [CONTRIBUTING.md](CONTRIBUTING.md) 获取更多关于如何贡献代码的信息。 ## 许可证 本项目使用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。