给大家分享一下我的开源项目

给大家分享一下我的开源项目,目前已为公司和个人在生产环境稳定服务三年了。欢迎同样喜欢开源贡献的朋友一起输出。

仓库地址:

sailboat-solid

Go CodeQL Go Report Card codecov LICENSE: MIT

简体中文 | English

go-sail是什么?

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()
}

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

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

其他插件

plugins/README.md

大感谢

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

其他

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

感谢分享,来了,go大佬

大佬牛逼啊,新年快乐

可以理解 为一个Golang 开发的脚手架吗

佬友好厉害

2 个赞

牛逼呀,开源的大佬值得赞:+1:t2:

佬友谬赞了,我是go菜鸡,还得多练。

1 个赞

佬友新年快乐呀!

可以这么理解吧。

感谢大佬夸奖。

跟beego比怎么样啊

我这个是非常轻量的,可以玩玩看。

太强了大佬

佬友谬赞了。还得多练。 :grin:

感谢大佬分享

厉害厉害

1 个赞

佬友客气了 :clap:

不怎么熟悉 go 这门语言,帮顶

感谢佬友。

1 个赞

感谢佬了! 学习一下。

1 个赞