Snow——简单易用的 Go 语言业务框架

Snow

Snow是一套简单易用的Go语言业务框架,整体逻辑设计简洁,支持HTTP服务、队列调度、任务调度和和脚本任务等常用业务场景模式。

Goals

我们致力于让PHPer更方便地切入到Go语言开发,在业务框架选择上贴合PHP主流框架的设计思想,以更低的学习成本快速熟悉框架,致力于业务逻辑的开发。

Features

  • HTTP服务:基于gin进行模块化设计,简单易用、核心足够轻量;支持平滑重启;
  • 任务调度:基于cron进行模块化设计,简单易用;
  • 队列调度:基于自研的高性能队列调度服务worker,通用的Queue接口化,解耦队列调度与底层队列驱动;支持平滑关闭;
  • Cache: 通用的缓存接口化设计,核心组件实现了插件式的redis驱动支持,可扩展;
  • Database: 使用成熟的ORM库,有丰富的数据库驱动支持和特性;
  • Queue: 通用的接口化设计,框架实现了redis、alimns作为队列底层驱动,支持可扩展;
  • Config: 采用toml语义化的配置文件格式,简单易用;
  • Logger: 基于logrus进行封装,内嵌上下文通用数据采集和trace_id追踪;
  • Request and Response:定义输入和输出数据实体格式;
  • Curl: 简单易用的Curl请求库;
  • 脚手架:方便快捷的创建新项目,可一键升级;

Quick start

Requirements

  • Go version >= 1.12
  • Global environment configure (Linux/Mac)
export GO111MODULE=on
export GOPROXY=https://goproxy.io

Installation

go get -u github.com/qit-team/snow/tool/snow
cd $GOPATH/src
snow new snow-demo

Build & Run

cd snow-demo
sh build/shell/build.sh
build/bin/snow

Test demo

curl "http://127.0.0.1:8000/hello"

Documents

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 9

安装文档那里GitHub上面给你们提改进建议了

git clone git@github.com/qit-team/snow.git my-project

需要修改为:

git clone git@github.com:qit-team/snow.git my-project
4年前 评论
tinson (楼主) 4年前
tangq

你这个是挖墙脚啊 :sweat_smile:

4年前 评论

@tangq 哈哈, :blush: 偷偷地

4年前 评论

@michealzh 谢谢大佬指出~

4年前 评论

go get 执行了一年

4年前 评论

@chery 建议先设置一下环境变量,特别是 GOPROXY,不然有些资源是境外的,不设置代理的话,访问不到。设置后速度贼 6
export GO111MODULE=on
export GOPROXY=https://goproxy.io

4年前 评论
chery 4年前

这个看起来比较亲切 别的框架有推荐的嘛

4年前 评论

@chery echo iris revel martini beego gin,还有bilibili开源的kratos,里面很多微服务治理相关的集成。

4年前 评论
chery 4年前
tinson (作者) (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!