Skip to content

一个轻量的渐进式Golang Web框架。 A lightweight progressive Web Framework written in Go.

License

Notifications You must be signed in to change notification settings

keepchen/go-sail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

73258f6 · Mar 19, 2025
Mar 19, 2025
Feb 18, 2025
Mar 19, 2025
Mar 5, 2025
Mar 19, 2025
Oct 8, 2024
Dec 26, 2023
Mar 19, 2025
Feb 18, 2025
Jan 9, 2025
Mar 19, 2025
Dec 15, 2022
Mar 6, 2024
Dec 15, 2022
Mar 6, 2025
Mar 6, 2025
Mar 19, 2025
Mar 19, 2025

Repository files navigation

sailboat-solid

Go CodeQL Go Report Card codecov Dependabot Status Snyk Security LICENSE: MIT

简体中文 | English

go-sail是什么?

go-sail是一个轻量的渐进式Web框架,使用Go语言实现。它并不是重复造轮子的产物,而是站在巨人的肩膀上,整合现有的优秀组件,旨在帮助使用者以最简单的方式构建稳定可靠的服务。
正如它的名字一般,你可以把它视作自己在golang生态的一个开始。go-sail将助力你从轻出发,扬帆起航。

如何使用

推荐go version >= 1.20

go get -u github.com/keepchen/go-sail/v3

import (
    "net/http"
    "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()
}

当你看到终端如下图所示内容就表示服务启动成功了:

launch.png

文档

文档传送门

功能特性

  • HTTP响应器
    • 统一响应字段
    • 管理HTTP状态码
    • 管理业务码
  • 组件库
    • Database
    • Email
    • Jwt
    • Kafka
    • Logger
    • Nacos
    • Etcd
    • Nats
    • Redis
  • 服务注册与发现
    • Nacos
    • Etcd
  • 工具类
    • 加解密
    • 文件
    • ip
    • 字符串
    • 随机数
    • 日期时间
    • ...
  • 日志收集与导出
    • 本地文件
    • 导出器
      • Redis
      • Kafka
      • Nats
  • 计划任务
    • 可取消的
    • 一次性的
    • 周期性的
    • Linux Crontab风格的
    • 竞态检测
  • 遥测与可观测性
    • 调用链追踪
    • Prometheus
    • Pprof
    • 日志导出器
  • 接口错误码
    • 动态注入
    • 国际化
  • 基于Redis的分布式锁
    • 阻塞式
    • 非阻塞式
  • 接口文档
    • Redocly
    • Swagger

其他插件

README.md

大感谢

感谢在体验、使用过程中提出宝贵建议和意见以及提供过其他各种帮助的各位小伙伴!

其他

  • 欢迎大家提PR: pull request
  • 欢迎大家提出自己的想法: issue
  • 感谢你的star如果你喜欢这个项目的话 :)

使用案例

stardots.io

Piggy (telegram mini-game)

FantaGoal

Pikaster

WinGoal

生活好评助手-小程序