跳转至

Go Web Frame

集成式 Go 后端开发工具包 — 零样板 CRUD、声明式路由元数据、显式依赖注入,并无缝复用 Gin 生态。

5 分钟上手 安装 源码


特性

  • 零样板 CRUDModel[T] / EntryModel[T, PK] 消除 CRUD 样板,从数据库到 Handler 全链路类型安全,无需代码生成。
  • 声明式路由元数据 — 通过 .WithMeta() 给路由打标记,一个全局 Filter 集中处理认证、权限、限流等横切逻辑。
  • 显式依赖注入 — 用 Builder 模式显式注册组件,初始化顺序完全透明、可控,告别隐式扫描的"黑箱操作"。
  • Gin 生态兼容 — 封装自己的请求/响应抽象,同时暴露 req.GinContext(),CORS、Gzip 等中间件可直接复用。
  • GORM 生态兼容db.GetGorm() 暴露原生 *gorm.DB,任意 GORM 驱动、插件、回调、标签零成本接入。
  • 内置组件开箱即用 — 限流、缓存、验证码、定时任务、认证、CORS 等常用组件已预集成,一行代码即可启用。
  • 生产就绪 — 内置 Let's Encrypt 自动 HTTPS、优雅关停、连接池管理、结构化日志,直接部署到生产环境。

30 秒 Hello World

go get github.com/chuccp/go-web-frame
package main

import (
    "context"
    wf "github.com/chuccp/go-web-frame"
    "github.com/chuccp/go-web-frame/config"
    "github.com/chuccp/go-web-frame/web"
)

func main() {
    cfg, _ := config.LoadSingleFileConfig("application.yml")
    builder := wf.NewBuilder(cfg)
    builder.Get("/", func(c *web.Request) (any, error) {
        return "Hello, World!", nil
    })
    builder.Build().Run(context.Background())
}
go run main.go
# → http://localhost:19009

快速导航

安装 5 分钟上手 路由
控制器 模型 服务
过滤器 响应转换器 错误码
配置 日志 后台任务
内置组件 WebSocket & SSE 数据库高级
部署

技术栈

层级 作用
HTTP Gin 路由、中间件链、参数绑定
ORM GORM 底层 SQL 驱动、迁移、Join/Preload
配置 Viper 多格式、多路径加载
日志 Zap 结构化、分级、文件轮转
JSON Sonic 高性能序列化
缓存 Otter 本地内存缓存
Redis go-redis 发布订阅、缓存
SQLite modernc/sqlite 纯 Go、零 CGO
校验 go-playground/validator 结构体标签校验
WebSocket coder/websocket 连接升级与读写
定时任务 robfig/cron 表达式定时调度

社区