Skip to content

Latest commit

 

History

History
159 lines (115 loc) · 4.12 KB

File metadata and controls

159 lines (115 loc) · 4.12 KB

httpsrv

httpsrv 是一个轻量级、模块化、高性能的 MVC Web 框架,专为 Go 语言设计,适用于开发面向互联网的各类 API、Web 应用。

语言: English | 中文

特性

  • 模块化架构 - 业务代码通过模块组织管理,适合企业级复杂应用开发
  • 轻量简洁 - 核心代码精简(约 3000 行),接口稳定可靠,便于长期维护
  • 高性能 - 低内存占用,高并发稳定可靠,主流云服务商 2 核主机 QPS 可达 20000+
  • MVC 模式 - 支持标准的 MVC 架构,代码结构清晰
  • 模板引擎 - 内置模板引擎,支持灵活的视图渲染
  • 多语言支持 - 内置 i18n 国际化支持
  • 中间件 - 支持请求过滤和拦截器
  • 会话管理 - 内置会话管理功能

文档

安装

go get -u github.com/hooto/httpsrv

快速开始

创建一个简单的 Hello World 应用:

package main

import (
    "github.com/hooto/httpsrv"
)

// 定义一个控制器
type Hello struct {
    *httpsrv.Controller
}

// 定义一个 Action
func (c Hello) WorldAction() {
    c.RenderString("hello world")
}

// 创建模块
func NewModule() httpsrv.Module {
    module := httpsrv.NewModule("demo")
    module.ControllerRegister(new(Hello))
    return module
}

func main() {
    // 注册模块到全局服务
    httpsrv.GlobalService.ModuleRegister("/", NewModule())
    
    // 设置端口
    httpsrv.GlobalService.Config.HttpPort = 8080
    
    // 启动服务
    httpsrv.GlobalService.Start()
}

运行:

go run main.go

访问:

curl http://localhost:8080/hello/world/

输出:

hello world

项目结构

推荐的目录结构:

├─ bin/              # 编译后的可执行文件
├─ etc/              # 配置文件
├─ config/           # 配置解析代码
├─ cmd/
│  └─ server/
│     └─ main.go     # 服务入口
├─ data/             # 数据库访问层
├─ websrv/           # 模块目录
│  ├─ api-v1/        # API 模块
│  └─ frontend/      # 前端模块
│     └─ views/      # 模板文件
├─ webui/            # 静态文件
└─ var/              # 运行时数据

完整示例项目:httpsrv-demo

推荐依赖库

httpsrv 保持核心简洁,以下是一些推荐使用的第三方库:

数据库

工具库

更多 Go 生态库可参考:awesome-go

系统要求

  • Go 版本: 1.22 或更高
  • 推荐系统: Linux、Unix 或 macOS(Windows 未做兼容测试)

核心组件

扩展组件

  • log - 日志记录扩展
  • data-rdb - 关系数据库扩展
  • data-kv - Key-Value 数据库扩展
  • flag - 命令行参数扩展

参考项目

httpsrv 在架构设计和部分代码实现中参考过以下项目,特此感谢!

许可证

Apache License 2.0