简单易用、足够轻量、性能好的 Golang 库
sohaha/zlsgo: 简单易用、足够轻量、性能好的 Golang 库 – Easy to use, light enough, good performance Golang library (github.com)
特性
- 简单易用、足够轻量
- 对 REST API 友好
- 完全兼容 http.HandlerFunc 接口
- Tree 路由高效并且支持正则
- 内置支持多端口多服务器
- 支持中间件
- 多种日志输出
- 异常恢复
- 平滑关闭/热重启
- 进程守护
- 依赖注入
- 遵循最小依赖原则,避免依赖地狱
- 更多(我还没想到。。。)
安装
go get -u github.com/sohaha/zlsgo
使用
// main.go
package main
import (
"github.com/sohaha/zlsgo/znet"
)
func main(){
// 获取一个实例
r := znet.New()
// 设置为开发模式
r.SetMode(znet.DebugMode)
// 异常处理
r.Use(znet.Recovery(func(c *znet.Context, err error) {
e := err.Error()
c.String(500, e)
}))
// 注册路由
r.GET("/json", func(c *znet.Context) {
c.JSON(200, znet.Data{"message":"Hello World"})
})
r.GET("/", func(c *znet.Context) {
c.String(200, "Hello world")
})
// 启动
znet.Run()
}
启动服务:
go run .
成功后打开浏览器访问 :http://127.0.0.1:3788
更多用法请查看:
初始化项目
# go get -u github.com/sohaha/zzz
zzz init 新建项目目录
热重启
# 发送 USR2 即可实现热重启
kill -USR2 pid
考虑到安全问题,默认情况会对执行文件进行 MD5 校验,如果您是想替换掉当前执行文件后进行热更新,请关闭该功能
// 关闭 md5 验证,方便进行热替换更新
znet.CloseHotRestartFileMd5()
日常开发
为了提高开发效率,比如代码更新就自动重新编译执行,可以配合 Zzz工具 使用。