go-fast-framework

module
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2026 License: Apache-2.0

README

GoFast Framework

GoFast 框架核心 -- 一个轻量、可扩展的 Go 语言 Web 框架内核。提供 IoC 容器、ServiceProvider 生命周期、Facade 门面、配置文件、结构化日志、GORM 数据库、缓存、文件存储等企业级基础设施。

Go Version License


安装

go get github.com/zhoudm1743/go-fast-framework@latest

快速开始

package main

import (
    "os"
    "os/signal"
    "syscall"

    "github.com/zhoudm1743/go-fast-framework/cache"
    "github.com/zhoudm1743/go-fast-framework/config"
    "github.com/zhoudm1743/go-fast-framework/database"
    "github.com/zhoudm1743/go-fast-framework/facades"
    "github.com/zhoudm1743/go-fast-framework/filesystem"
    "github.com/zhoudm1743/go-fast-framework/foundation"
    gohttp "github.com/zhoudm1743/go-fast-framework/http"
    "github.com/zhoudm1743/go-fast-framework/log"
)

func main() {
    app := foundation.NewApplication(".")

    app.SetProviders([]foundation.ServiceProvider{
        &config.ServiceProvider{},
        &log.ServiceProvider{},
        &cache.ServiceProvider{},
        &database.ServiceProvider{},
        &filesystem.ServiceProvider{},
        &gohttp.ServiceProvider{},
    })
    app.Boot()
    facades.SetApp(app)

    // 使用 Facade 访问服务
    facades.Log().Info("Hello, GoFast!")

    // 启动 HTTP 服务
    go func() {
        facades.Http.Route().Run()
    }()

    quit := make(chan os.Signal, 1)
    signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
    <-quit
    app.Shutdown()
}

完整项目骨架请参阅 github.com/zhoudm1743/go-fast


核心模块

模块 路径 说明
foundation foundation/ IoC 容器与 Application 生命周期管理
contracts contracts/ 所有服务接口契约定义
facades facades/ 全局静态门面,一行代码访问任意服务
config config/ 基于 Viper 的配置管理,Go 代码 + YAML 双模式
log log/ 基于 Zap 的结构化日志,控制台/文件/混合输出
database database/ 基于 GORM 的数据库服务,多连接、时序 ID
cache cache/ 缓存服务,支持内存/Redis 驱动
http http/ HTTP 路由服务,双引擎(Gin / Fiber)
filesystem filesystem/ 文件存储,本地/OSS/COS/MinIO/S3
jwt jwt/ JWT 鉴权服务
event event/ 事件系统
queue queue/ 队列系统
schedule schedule/ 基于 cron 的任务调度
fast fast/ CLI 控制台,脚手架命令
id id/ UUID v7 时序 ID 生成
utils utils/ 通用工具函数

HTTP 参数绑定与默认值

控制器通过 ctx.Bind(&req) 自动解析请求参数并校验,支持三类标签:

标签 来源 示例
uri URL 路径参数 uri:"id"
query 查询字符串 query:"page"
json 请求体 json:"name"
binding 校验规则 binding:"required,min=1"

字段可附加 default 标签声明默认值,Bind 会在零值(未传入)时自动填充,无需在控制器里手写 if 判断:

type ListReq struct {
    Page  int    `query:"page" default:"1"`
    Size  int    `query:"size" default:"20"`
    Sort  string `query:"sort" default:"desc"`
    IDs   []int  `query:"ids" default:"1,2,3"`
}

var req ListReq
if err := ctx.Bind(&req); err != nil {
    return ctx.Response().Validation(err)
}

default 支持的类型:基础类型(string / int / uint / float / bool,含底层为基础类型的自定义类型)、指针、切片(逗号分隔)、time.Duration(如 5s)、time.Time(如 2006-01-02)、以及实现 encoding.TextUnmarshaler 的自定义类型。请求中已传入的值不会被默认值覆盖。


License

Apache 2.0

Directories

Path Synopsis
Package edition 在编译期固定当前构建形态(SaaS / 独立版)。
Package edition 在编译期固定当前构建形态(SaaS / 独立版)。
Package http 提供框架无关的 HTTP 抽象层。
Package http 提供框架无关的 HTTP 抽象层。
base
Package base 提供 HTTP 层的共享实现,供 fiber / gin 驱动包引用, 同时避免与顶层 framework/http 包产生循环依赖。
Package base 提供 HTTP 层的共享实现,供 fiber / gin 驱动包引用, 同时避免与顶层 framework/http 包产生循环依赖。
gin
view
Package view 提供基于 html/template 的 HTML 模板渲染引擎, 实现 contracts.ViewEngine 接口。
Package view 提供基于 html/template 的 HTML 模板渲染引擎, 实现 contracts.ViewEngine 接口。
Package id 提供 GoFast 框架内置的时序 ID 生成器。
Package id 提供 GoFast 框架内置的时序 ID 生成器。
Package tenant 提供租户上下文解析服务(SaaS / 独立版通过构建标签切换实现)。
Package tenant 提供租户上下文解析服务(SaaS / 独立版通过构建标签切换实现)。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL