{"id":18302627,"url":"https://github.com/vnaki/ris","last_synced_at":"2026-04-10T20:47:20.259Z","repository":{"id":65687954,"uuid":"596454854","full_name":"vnaki/ris","owner":"vnaki","description":"Plug-in design for Iris, super easy to use!","archived":false,"fork":false,"pushed_at":"2023-02-10T09:07:59.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-29T18:52:17.402Z","etag":null,"topics":["golang","iris","logger","middleware","mvc","mysql","plugin","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vnaki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-02T08:11:03.000Z","updated_at":"2023-02-10T07:12:13.000Z","dependencies_parsed_at":"2023-02-18T16:32:14.883Z","dependency_job_id":null,"html_url":"https://github.com/vnaki/ris","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"8f18af6db9c2d6c4fbb69106e8b6f6f054c06347"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/vnaki/ris","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnaki%2Fris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnaki%2Fris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnaki%2Fris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnaki%2Fris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vnaki","download_url":"https://codeload.github.com/vnaki/ris/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnaki%2Fris/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31658964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"ssl_error","status_checked_at":"2026-04-10T17:19:13.364Z","response_time":98,"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":["golang","iris","logger","middleware","mvc","mysql","plugin","sqlite"],"created_at":"2024-11-05T15:21:31.090Z","updated_at":"2026-04-10T20:47:20.228Z","avatar_url":"https://github.com/vnaki.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ris - 基于iris的插件式框架\n\n**ris**是对**Iris**框架进一步插件式封装，定义和组合了组件、插件、中间件、日志、测试、全局实例等，方便开发者快速开发和调试，期待您的星星🌟🌟🌟🌟🌟🌟。\n\n### 快速开始\n\n```go \n\npackage main\n\nimport (\n\t\"github.com/vnaki/ris\"\n\t\"github.com/vnaki/ris/examples/routes\"\n\t\"github.com/vnaki/ris/middlewares\"\n\t\"github.com/vnaki/ris/plugins\"\n)\n\nfunc main()  {\n\te := ris.New()\n\n\t// post max memory\n\te.SetPostMemory(20 \u003c\u003c 20)\n\n\te.RouteMiddleware(middlewares.Cors)\n\n\te.Plugin(\"logger\", plugins.LoggerPlugin)\n\t//e.Plugin(\"data\", plugins.MysqlPlugin)\n\te.Plugin(\"data\", plugins.SqlitePlugin)\n\n\t// default module\n\te.Module(\"/\", routes.ApiRoute)\n\n\tif err := e.Run(\"./config/app.yaml\"); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n```\n\n### 详细用例\n\nsee [examples](https://github.com/vnaki/ris/tree/master/examples)\n\n### 框架定义\n\n```go \npackage types\n\nimport (\n\t\"github.com/vnaki/ris/config\"\n\n\t\"github.com/kataras/iris/v12\"\n\t\"github.com/kataras/iris/v12/mvc\"\n)\n\n// Database 数据库接口\ntype Database interface {\n\tConnect() (db.Session, error)\n}\n\n// PluginHandler 插件函数\ntype PluginHandler func(string, Engine) error\n\n// Plugin 插件结构\ntype Plugin struct {\n\t// 插件名称\n\tName string\n\t// 插件函数\n\tHandler PluginHandler\n}\n\n// Module 模块函数\ntype Module func(*mvc.Application)\n\n// MiddlewareHandler 中间件处理\ntype MiddlewareHandler func(Engine) iris.Handler\n\n// Middleware 中间件\ntype Middleware struct {\n\t// 是否路由中间件\n\tRoute bool\n\t// 中间件处理\n\tHandler MiddlewareHandler\n}\n\n// Component 组件类型\ntype Component interface{}\n\n// Worker 工作协程\ntype Worker func(string, Engine)\n\n// Engine 应用引擎\ntype Engine interface {\n\t// App iris应用\n\tApp() *iris.Application\n\t// Set 注册实例\n\tSet(name string, component Component)\n    // SetPostMemory 设置POST最大内存\n\tSetPostMemory(memory int64)\n\t// Get 返回实例\n\tGet(name string) Component\n\t// Reset 重置配置\n\tReset(func(c *config.Config))\n\t// Config 配置信息\n\tConfig() *config.Config\n\t// Plugin 注册插件\n\tPlugin(name string, plugin PluginHandler)\n\t// Worker 注册工作协程\n\tWorker(name string, plugin Worker)\n\t// Module 注册模块\n\tModule(party string, module Module)\n\t// Middleware 注册通用中间件\n\tMiddleware(handler MiddlewareHandler)\n\t// RouteMiddleware 路由中间件\n\tRouteMiddleware(middleware MiddlewareHandler)\n\t// IfMiddleware 注册条件中间件\n\tIfMiddleware(mode string, middleware MiddlewareHandler)\n\t// IfRouteMiddleware 注册路由条件中间件\n\tIfRouteMiddleware(mode string, middleware MiddlewareHandler)\n\t// Stop 停止服务\n\tStop() error\n\t// Implement 自定义业务\n\tImplement(func() error)\n\t// Defer 延迟函数\n\tDefer(f func())\n\t// IsDev 是否开发环境\n\tIsDev() bool\n\t// Run 运行程序\n\tRun(file string) error\n\t// Test 执行测试\n\tTest(file string) error\n\t// Parse 解析配置\n\tParse(file string, out interface{}) error\n}\n\n```\n\n### 插件定义\n\n```go \npackage plugins\n\nimport (\n\t\"fmt\"\n\t\"github.com/vnaki/ris/components/database\"\n\t\"github.com/vnaki/ris/types\"\n)\n\nfunc MysqlPlugin(name string, e types.Engine) error {\n\tn := database.New()\n\n\tif err := e.Parse(e.Config().Mysql, n); err != nil {\n\t\treturn err\n\t}\n\n\tsess, err := n.Connect()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\te.Set(name, sess)\n\n\te.Defer(func() {\n\t\t_ = sess.Close()\n\n\t\t// verbose\n\t\tfmt.Println(\"defer: mysql closed\")\n\t})\n\n\treturn nil\n}\n\n```\n\n### 框架依赖\n\n- `iris` framework, see [https://github.com/kataras/iris](https://github.com/kataras/iris)\n- `upper` orm, see [https://github.com/upper/db](https://github.com/upper/db)\n\n### 期待赞助\n\n有了您的赞助👑，我们可以加快**ris**的设计和开发进度，为用户提供更高质量的软件，期待合作~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvnaki%2Fris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvnaki%2Fris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvnaki%2Fris/lists"}