tingo

package module
v0.0.0-...-8ccda10 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2026 License: MIT Imports: 7 Imported by: 0

README

Tingo

Tingo 是一个贴近 ThinkPHP 开发范式、复用 gin 高性能内核的 Go Web 框架。

  • 约定优于配置:脚手架一键生成标准项目,controller / model / app 各安其位。
  • 高性能:路由与 HTTP 内核直接基于 gin,零额外抽象开销。
  • 单 / 多应用一体:同一份代码既可做单应用,也能按 app/ 子目录拆成多应用同进程运行。
  • 工程化:内置 tingo CLI,覆盖脚手架、代码生成、数据库迁移与 CLI 任务。

完整开发手册docs/index.md

安装

go get github.com/xmszy/tingo

脚手架工具(按需安装):

go install github.com/xmszy/tingo/cmd/tingo@latest

快速开始

用脚手架一步生成标准项目:

tingo init myproject
cd myproject
tingo run

生成的 main.go 只需匿名导入应用并启动:

package main

import (
    "log"

    "github.com/xmszy/tingo"
    _ "myproject/app" // 触发应用 init() 注册
)

func main() {
    if err := tingo.Run(); err != nil {
        log.Fatal(err)
    }
}

一个最简控制器(app/controller/index.go):

package controller

import t "github.com/xmszy/tingo/frame"

func init() { t.RegisterController("/", &Index{}) }

type Index struct{ t.Controller }

func (*Index) Index(c *t.Ctx) {
    c.String("hello, Tingo!")
}
单应用 vs 多应用

Tingo 的项目默认是单应用(一个 app/ 包);当站点需要前台 / 后台 / 接口同进程运行时,可加 --multi-app 拆成多个子应用。

维度 单应用 多应用
生成 tingo init myproject tingo init myproject --multi-app(或 -a
结构 单个 app/ app/index/app/admin/ 等子包,各自 t.App() 注册
入口 一个 main.go 匿名导入 app 一个 main.go + app/applications.go 聚合导入各子应用
路由 互不隔离 config/app.toml[app] 段按 url 段 / 域名分流
适用 简单站点、单一服务 前后台一体、页面与接口同站

多应用示例:

tingo init myapp --multi-app
cd myapp && go mod tidy && go run main.go
# GET /         -> index 应用
# GET /admin/   -> admin 应用

详见 docs/multi_app.md

常用命令

tingo run                              # 启动开发服务器
tingo build                            # 编译生产版本
tingo make controller user             # 生成控制器
tingo gen model                        # 从数据库生成模型

进一步阅读

主题 文档
安装与配置 docs/install.md
目录结构 docs/directory.md
路由 docs/route.md
控制器 docs/controller.md
请求 / 响应 docs/request.md · docs/response.md
配置 docs/config.md
数据库 / 模型 docs/database.md · docs/model.md
中间件 / 扩展库 docs/middleware.md · docs/contrib.md
多应用 docs/multi_app.md
命令行 (CLI) docs/cli.md
架构与设计 docs/architecture.md
完整手册目录 docs/index.md

Documentation

Index

Constants

View Source
const Version = "0.0.1"

Version 是当前框架版本。

Variables

View Source
var (
	Addr        = thttp.Addr
	PrintRoutes = thttp.PrintRoutes
	TLS         = thttp.TLS
)

引擎配置项。

View Source
var RegisterApp = core.RegisterApp

RegisterApp 注册一个应用。

View Source
var SetResponder = core.SetResponder

SetResponder 替换全局响应协议。

Functions

func New

func New(opts ...thttp.Option) *thttp.Engine

New 创建绑定默认 App 的 HTTP 引擎,并装配默认中间件链。

func NewBare

func NewBare(opts ...thttp.Option) *thttp.Engine

NewBare 创建绑定默认 App、但不带中间件的引擎。

func Run

func Run(opts ...thttp.Option) error

Run 以默认配置创建引擎、装配全部已注册应用并启动服务。

这是最常用的入口,等价于 New(opts...).Run()。

Types

type Application

type Application = core.Application

Application 是业务应用契约。

type Ctx

type Ctx = core.Ctx

Ctx 是请求上下文。

type Engine

type Engine = thttp.Engine

Engine 是 HTTP 引擎。

type Framework

type Framework struct {
	// contains filtered or unexported fields
}

Framework 是显式持有生命周期、容器和 HTTP 引擎的框架实例。

func NewApp

func NewApp(opts ...thttp.Option) *Framework

NewApp 创建完全隔离的框架实例。推荐新项目使用该入口。

func (*Framework) App

func (f *Framework) App(name string, application core.Application) *Framework

App 注册业务应用并返回自身,便于链式装配。

func (*Framework) Core

func (f *Framework) Core() *core.App

Core 返回实例级生命周期内核。

func (*Framework) Engine

func (f *Framework) Engine() *thttp.Engine

Engine 返回 HTTP 引擎逃生舱。

func (*Framework) Register

func (f *Framework) Register(services ...core.Service) error

Register 注册框架服务。

func (*Framework) Run

func (f *Framework) Run() error

Run 启动当前框架实例,并由系统信号驱动关闭。

func (*Framework) RunContext

func (f *Framework) RunContext(ctx context.Context) error

RunContext 启动当前框架实例,ctx 取消时优雅关闭。

func (*Framework) Shutdown

func (f *Framework) Shutdown(ctx context.Context) error

Shutdown 关闭当前框架实例及其全部服务。

func (*Framework) Use

func (f *Framework) Use(middlewares ...core.Handler) *Framework

Use 注册全局 HTTP 中间件。

type Handler

type Handler = core.Handler

Handler 是请求处理器。

type Kernel

type Kernel = core.App

Kernel 是实例级框架生命周期内核。

type Router

type Router = core.Router

Router 是路由注册器。

type Service

type Service = core.Service

Service 是框架服务生命周期契约。

Directories

Path Synopsis
cmd
tingo command
Command tingo 是 tingo 框架的命令行工具。
Command tingo 是 tingo 框架的命令行工具。
contrib module
Package core 提供 tingo 的运行时内核。
Package core 提供 tingo 的运行时内核。
database
tdb
Package errors 提供 tingo 的结构化错误体系。
Package errors 提供 tingo 的结构化错误体系。
Package t 是 tingo 的门面包,业务代码通常只需 import 这一个包。
Package t 是 tingo 的门面包,业务代码通常只需 import 这一个包。
net
tclient
Package tclient 提供 HTTP 客户端封装。
Package tclient 提供 HTTP 客户端封装。
thttp
Package thttp 的内置管理端点(Admin / pprof)。
Package thttp 的内置管理端点(Admin / pprof)。
thttp/middleware
Package middleware 提供 tingo 内置中间件。
Package middleware 提供 tingo 内置中间件。
tlb
Package tlb 提供负载均衡算法。
Package tlb 提供负载均衡算法。
topenapi
Package topenapi 提供 OpenAPI 3.0 规范的自动文档生成。
Package topenapi 提供 OpenAPI 3.0 规范的自动文档生成。
twebsocket
Package twebsocket 提供 WebSocket 支持。
Package twebsocket 提供 WebSocket 支持。
os
tbuild
Package tbuild 提供编译时注入的构建信息。
Package tbuild 提供编译时注入的构建信息。
tcache
Package tcache 提供并发安全、支持过期与容量上限的内存缓存。
Package tcache 提供并发安全、支持过期与容量上限的内存缓存。
tcfg
Package tcfg 提供只读、可适配的配置读取与强类型绑定。
Package tcfg 提供只读、可适配的配置读取与强类型绑定。
tcodegen
Package tcodegen 提供基于结构体标签的代码生成能力(零外部依赖,仅用标准库 go/ast)。
Package tcodegen 提供基于结构体标签的代码生成能力(零外部依赖,仅用标准库 go/ast)。
tconsole
Package tconsole 提供通用的控制台指令注册与调度系统。
Package tconsole 提供通用的控制台指令注册与调度系统。
tcontainer
Package tcontainer 提供泛型容器数据结构。
Package tcontainer 提供泛型容器数据结构。
tconv
Package tconv 提供类型转换工具。
Package tconv 提供类型转换工具。
tcookie
Package tcookie 提供 HTTP Cookie 便捷操作。
Package tcookie 提供 HTTP Cookie 便捷操作。
tcron
Package tcron 提供零外部依赖的定时任务调度。
Package tcron 提供零外部依赖的定时任务调度。
tcrypto/aes
Package aes 提供 AES 对称加密/解密。
Package aes 提供 AES 对称加密/解密。
tcrypto/crc32
Package crc32 提供 CRC-32 校验值计算。
Package crc32 提供 CRC-32 校验值计算。
tcrypto/des
Package des 提供 DES / Triple DES 对称加密/解密。
Package des 提供 DES / Triple DES 对称加密/解密。
tcrypto/md5
Package md5 提供 MD5 摘要计算。
Package md5 提供 MD5 摘要计算。
tcrypto/rsa
Package rsa 提供 RSA 非对称加密/解密。
Package rsa 提供 RSA 非对称加密/解密。
tcrypto/sha1
Package sha1 提供 SHA-1 摘要计算。
Package sha1 提供 SHA-1 摘要计算。
tcrypto/sha256
Package sha256 提供 SHA-256 摘要计算。
Package sha256 提供 SHA-256 摘要计算。
tcrypto/sha512
Package sha512 提供 SHA-512 摘要计算。
Package sha512 提供 SHA-512 摘要计算。
tctx
Package tctx 提供 context 工具函数。
Package tctx 提供 context 工具函数。
tdebug
Package tdebug 提供调试工具。
Package tdebug 提供调试工具。
tencoding/base64
Package base64 提供 Base64 编解码。
Package base64 提供 Base64 编解码。
tencoding/binary
Package binary 提供二进制数据与数值之间的编解码。
Package binary 提供二进制数据与数值之间的编解码。
tencoding/charset
Package charset 提供字符集转换。
Package charset 提供字符集转换。
tencoding/compress
Package compress 提供数据压缩/解压。
Package compress 提供数据压缩/解压。
tencoding/hash
Package hash 提供哈希编解码。
Package hash 提供哈希编解码。
tencoding/html
Package html 提供 HTML 实体编解码。
Package html 提供 HTML 实体编解码。
tencoding/ini
Package ini 提供轻量 INI 格式解析(零外部依赖)。
Package ini 提供轻量 INI 格式解析(零外部依赖)。
tencoding/json
Package json 提供 JSON 编解码。
Package json 提供 JSON 编解码。
tencoding/properties
Package properties 提供 Java Properties 格式解析(零外部依赖)。
Package properties 提供 Java Properties 格式解析(零外部依赖)。
tencoding/toml
Package toml 提供 TOML 编解码。
Package toml 提供 TOML 编解码。
tencoding/url
Package url 提供 URL 编解码。
Package url 提供 URL 编解码。
tencoding/xml
Package xml 提供 XML 编解码。
Package xml 提供 XML 编解码。
tencoding/yaml
Package yaml 提供 YAML 编解码。
Package yaml 提供 YAML 编解码。
tenv
Package tenv 提供类型安全的环境变量访问。
Package tenv 提供类型安全的环境变量访问。
tevent
Package tevent 提供轻量、零外部依赖的事件总线。
Package tevent 提供轻量、零外部依赖的事件总线。
tfile
Package tfile 提供文件操作工具。
Package tfile 提供文件操作工具。
tfilesystem
Package tfilesystem 提供多磁盘文件系统抽象。
Package tfilesystem 提供多磁盘文件系统抽象。
tfilesystem/s3
Package s3 提供与 AWS S3 兼容的对象存储适配器(S3 / 阿里云 OSS / 腾讯云 COS 通用)。
Package s3 提供与 AWS S3 兼容的对象存储适配器(S3 / 阿里云 OSS / 腾讯云 COS 通用)。
tlang
Package tlang 提供零外部依赖的国际化(i18n)支持。
Package tlang 提供零外部依赖的国际化(i18n)支持。
tlog
Package tlog 提供轻量、高性能的结构化日志。
Package tlog 提供轻量、高性能的结构化日志。
tmutex
Package tmutex 提供增强互斥锁和命名内存锁。
Package tmutex 提供增强互斥锁和命名内存锁。
tpage
Package tpage 提供分页管理。
Package tpage 提供分页管理。
tpipeline
Package tpipeline 提供管道模式(Pipeline Pattern)。
Package tpipeline 提供管道模式(Pipeline Pattern)。
tpool
Package tpool 提供协程池。
Package tpool 提供协程池。
tproc
Package tproc 提供进程管理。
Package tproc 提供进程管理。
tqueue
Package tqueue 提供零外部依赖的轻量任务队列。
Package tqueue 提供零外部依赖的轻量任务队列。
trand
Package trand 提供随机数生成工具。
Package trand 提供随机数生成工具。
tredis
Package tredis 提供 Redis 客户端封装。
Package tredis 提供 Redis 客户端封装。
tregex
Package tregex 提供正则表达式封装。
Package tregex 提供正则表达式封装。
tres
Package tres 提供资源管理。
Package tres 提供资源管理。
tsession
Package tsession 提供零外部依赖的 HTTP 会话管理。
Package tsession 提供零外部依赖的 HTTP 会话管理。
tspath
Package tspath 提供路径搜索工具。
Package tspath 提供路径搜索工具。
tstr
Package tstr 提供字符串处理工具。
Package tstr 提供字符串处理工具。
tstructs
Package tstructs 提供结构体反射工具。
Package tstructs 提供结构体反射工具。
ttime
Package ttime 提供时间处理工具。
Package ttime 提供时间处理工具。
ttimer
Package ttimer 提供定时器管理。
Package ttimer 提供定时器管理。
ttrace
Package ttrace 提供运行期调试工具栏。
Package ttrace 提供运行期调试工具栏。
ttree
Package ttree 提供树形数据结构。
Package ttree 提供树形数据结构。
ttype
Package ttype 提供并发安全的基本类型。
Package ttype 提供并发安全的基本类型。
tutil
Package tutil 提供杂项工具函数。
Package tutil 提供杂项工具函数。
tuuid
Package tuuid 提供 UUID/GUID 生成。
Package tuuid 提供 UUID/GUID 生成。
tvalid
Package tvalid 提供数据校验框架。
Package tvalid 提供数据校验框架。
tview
Package tview 提供轻量、零外部依赖的 HTML 模板渲染引擎。
Package tview 提供轻量、零外部依赖的 HTML 模板渲染引擎。
Package tapp 提供应用层约定。
Package tapp 提供应用层约定。

Jump to

Keyboard shortcuts

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