🤦🏻

快速上手

 
notion image
 

特性

  • 简单易用、足够轻量
  • 对 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
 
notion image
更多用法请查看
🛫
路由设置
🏗️
服务配置

 

初始化项目

# go get -u github.com/sohaha/zzz zzz init 新建项目目录

热重启

# 发送 USR2 即可实现热重启 kill -USR2 pid
考虑到安全问题,默认情况会对执行文件进行 MD5 校验,如果您是想替换掉当前执行文件后进行热更新,请关闭该功能
// 关闭 md5 验证,方便进行热替换更新 znet.CloseHotRestartFileMd5()

 

日常开发

为了提高开发效率,比如代码更新就自动重新编译执行,可以配合 Zzz工具 使用。
🏇
Zzz 工具