简体中文 | English
go-sail是一个轻量的渐进式web框架,使用Go语言实现。它并不是重复造轮子的产物,而是站在巨人的肩膀上,整合现有的优秀组件,旨在帮助使用者以最简单的方式构建稳定可靠的服务。
正如它的名字一般,你可以把它视作自己在golang生态的一个开始。go-sail将助力你从轻出发,扬帆起航。
推荐go version >= 1.19
go get -u github.com/keepchen/go-sail/v3
import (
"github.com/gin-gonic/gin"
"github.com/keepchen/go-sail/v3/sail"
"github.com/keepchen/go-sail/v3/sail/config"
)
var (
conf = &config.Config{}
registerRoutes = func(ginEngine *gin.Engine) {
ginEngine.GET("/hello", func(c *gin.Context){
c.String(http.StatusOK, "%s", "hello, world!")
})
}
)
func main() {
sail.WakeupHttp("go-sail", conf).Hook(registerRoutes, nil, nil).Launch()
}
当你看到终端如下图所示内容就表示服务启动成功了:
- HTTP响应器
- 统一响应字段
- 管理HTTP状态码
- 管理业务码
- 常用的组件库
- Database
- Jwt
- Kafka
- Logger
- Nacos
- Etcd
- Nats
- Redis
- 服务注册与发现
- Nacos
- Etcd
- 常用的工具类
- 加解密
- 文件
- ip
- 字符串
- 随机数
- 日期时间
- ...
- 日志收集与导出
- 本地文件
- 导出器
- Redis
- Kafka
- Nats
- 计划任务
- 可取消的
- 一次性的
- 周期性的
- Linux Crontab风格的
- 竞态检测
- 调用链日志追踪
- 请求上下文
- requestId
- spanId
- 跨服务
- 请求上下文
- 性能监测
- Prometheus
- Pprof
- 多语言错误码
- 动态注入
- 基于Redis的分布式锁
- 阻塞式
- 非阻塞式
- 接口文档
- Redocly
- Swagger
感谢在体验、使用过程中提出宝贵建议和意见以及提供过其他各种帮助的各位小伙伴!
- 配置模块化优化 @fujilin
- 响应器语法糖增强优化 @lichuanzhang
- Logo美化 @ShuaiRen34
- 欢迎大家提PR: pull request
- 欢迎大家提出自己的想法: issue
- 感谢你的star如果你喜欢这个项目的话 :)