hoteas 4828f3625c chore(config): 更新 .gitignore 配置
- 移除 /example/config/app.json 的忽略规则
- 移除 /example/config/ 目录的忽略规则
- 保留其他现有忽略配置不变
2026-01-22 06:09:19 +08:00
2022-08-03 12:07:55 +08:00
2022-04-20 18:36:05 +08:00
2021-05-25 20:27:24 +08:00
2022-08-30 03:30:27 +08:00
2022-08-30 03:30:27 +08:00
2022-03-13 01:48:54 +08:00
2019-05-19 15:33:01 +00:00
2022-03-13 01:48:54 +08:00
2022-07-18 19:44:00 +08:00

HoTime

高性能 Go Web 服务框架

特性

  • 高性能 - 单机 10万+ QPS支持百万级并发用户
  • 多数据库支持 - MySQL、SQLite3支持主从分离
  • 三级缓存系统 - Memory > Redis > DB自动穿透与回填
  • Session管理 - 内置会话管理,支持多种存储后端
  • 自动代码生成 - 根据数据库表自动生成 CRUD 接口
  • 丰富工具类 - 上下文管理、类型转换、加密解密等

快速开始

安装

go get code.hoteas.com/golang/hotime

最小示例

package main

import (
    . "code.hoteas.com/golang/hotime"
    . "code.hoteas.com/golang/hotime/common"
)

func main() {
    appIns := Init("config/config.json")
    
    appIns.Run(Router{
        "app": {
            "test": {
                "hello": func(that *Context) {
                    that.Display(0, Map{"message": "Hello World"})
                },
            },
        },
    })
}

访问: http://localhost:8081/app/test/hello

性能测试报告

测试环境

项目 配置
CPU 24 核心
系统 Windows 10
Go 版本 1.19.3

测试结果

并发数 QPS 成功率 平均延迟 P99延迟
500 99,960 100% 5.0ms 25.2ms
1000 102,489 100% 9.7ms 56.8ms
2000 75,801 99.99% 26.2ms 127.7ms
5000 12,611 99.95% 391.4ms 781.4ms

性能总结

最高 QPS:      102,489 请求/秒
最佳并发数:    1,000

并发用户估算

使用场景 请求频率 可支持用户数
高频交互 1次/秒 ~10万
活跃用户 1次/5秒 ~50万
普通浏览 1次/10秒 ~100万
低频访问 1次/30秒 ~300万

生产环境建议: 保留 30-50% 性能余量,安全并发用户数约 50万 - 70万

与主流框架性能对比

框架 典型QPS 基础实现 性能评级
HoTime ~100K net/http 第一梯队
Fiber ~100K+ fasthttp 第一梯队
Gin ~60-80K net/http 第二梯队
Echo ~60-80K net/http 第二梯队
Chi ~50-60K net/http 第二梯队

框架对比

功能特性对比

特性 HoTime Gin Echo Fiber
性能 100K QPS 70K QPS 70K QPS 100K QPS
内置ORM
内置缓存 三级缓存
Session 内置 需插件 需插件 需插件
代码生成
微信/支付集成 内置
路由灵活性 中等 优秀 优秀 优秀
社区生态 较小 庞大 较大 较大

HoTime 优势

  1. 开箱即用 - 内置 ORM + 缓存 + Session无需额外集成
  2. 三级缓存 - Memory > Redis > DB自动穿透与回填
  3. 开发效率高 - 链式查询语法简洁,内置微信/云服务SDK
  4. 性能优异 - 100K QPS媲美最快的 Fiber 框架

适用场景

场景 推荐度 说明
中小型后台系统 完美适配,开发效率最高
微信小程序后端 内置微信SDK
快速原型开发 代码生成 + 全功能集成
高并发API服务 性能足够
大型微服务 建议用Gin/Echo

总体评价

维度 评分 说明
性能 95分 第一梯队媲美Fiber
功能集成 90分 远超主流框架
开发效率 85分 适合快速开发
生态/社区 50分 持续建设中

总结: HoTime 是"小而全"的高性能框架,性能不输主流,集成度远超主流,适合独立开发者或小团队快速构建中小型项目。


数据库操作

基础 CRUD

// 查询单条
user := that.Db.Get("user", "*", Map{"id": 1})

// 查询列表
users := that.Db.Select("user", "*", Map{"status": 1, "ORDER": "id DESC"})

// 插入数据
id := that.Db.Insert("user", Map{"name": "test", "age": 18})

// 更新数据
rows := that.Db.Update("user", Map{"name": "new"}, Map{"id": 1})

// 删除数据
rows := that.Db.Delete("user", Map{"id": 1})

链式查询

users := that.Db.Table("user").
    LeftJoin("order", "user.id=order.user_id").
    And("status", 1).
    Order("id DESC").
    Page(1, 10).
    Select("*")

条件语法

语法 说明 示例
key 等于 "id": 1
key[>] 大于 "age[>]": 18
key[<] 小于 "age[<]": 60
key[!] 不等于 "status[!]": 0
key[~] LIKE "name[~]": "test"
key[<>] BETWEEN "age[<>]": Slice{18, 60}

缓存系统

三级缓存: Memory > Redis > Database

// 通用缓存
that.Cache("key", value)           // 设置
data := that.Cache("key")          // 获取
that.Cache("key", nil)             // 删除

// Session 缓存
that.Session("user_id", 123)       // 设置
userId := that.Session("user_id")  // 获取

中间件

appIns.SetConnectListener(func(that *Context) bool {
    if that.Session("user_id").Data == nil {
        that.Display(2, "请先登录")
        return true  // 终止请求
    }
    return false  // 继续处理
})

扩展功能

  • 微信支付/公众号/小程序 - dri/wechat/
  • 阿里云服务 - dri/aliyun/
  • 腾讯云服务 - dri/tencent/
  • 文件上传下载 - dri/upload/, dri/download/
  • MongoDB - dri/mongodb/
  • RSA加解密 - dri/rsa/

License

MIT License


HoTime - 让 Go Web 开发更简单、更高效

Description
golang私有框架
Readme Apache-2.0 226 MiB
v1.6.3 Latest
2026-01-22 18:48:02 +00:00
Languages
JavaScript 91.5%
Go 8.5%