Snow簡單易用的 Go 語言業(yè)務(wù)框架
Snow 是一套簡單易用的 Go 語言業(yè)務(wù)框架,整體邏輯設(shè)計簡潔,支持 HTTP 服務(wù)、隊列調(diào)度和任務(wù)調(diào)度等常用業(yè)務(wù)場景模式。
Goals
我們致力于讓PHPer更方便地切入到Go語言開發(fā),在業(yè)務(wù)框架選擇上貼合PHP主流框架的設(shè)計思想,以更低的學(xué)習(xí)成本快速熟悉框架,致力于業(yè)務(wù)邏輯的開發(fā)。
Features
- HTTP服務(wù):基于gin進(jìn)行模塊化設(shè)計,簡單易用、核心足夠輕量;支持平滑重啟;
- 任務(wù)調(diào)度:基于cron進(jìn)行模塊化設(shè)計,簡單易用;
- 隊列調(diào)度:基于自研的高性能隊列調(diào)度服務(wù)worker,通用的Queue接口化,解耦隊列調(diào)度與底層隊列驅(qū)動;支持平滑關(guān)閉;
- Cache: 通用的緩存接口化設(shè)計,核心組件實(shí)現(xiàn)了插件式的redis驅(qū)動支持,可擴(kuò)展;
- Database: 使用成熟的ORM庫,有豐富的數(shù)據(jù)庫驅(qū)動支持和特性;
- Queue: 通用的接口化設(shè)計,框架實(shí)現(xiàn)了redis、alimns作為隊列底層驅(qū)動,支持可擴(kuò)展;
- Config: 采用toml語義化的配置文件格式,簡單易用;
- Logger: 基于logrus進(jìn)行封裝,內(nèi)嵌上下文通用數(shù)據(jù)采集和trace_id追蹤;
- Request and Response:定義輸入和輸出數(shù)據(jù)實(shí)體格式;
- Curl: 簡單易用的Curl請求庫;
- 腳手架:方便快捷的創(chuàng)建新項(xiàng)目,可一鍵升級;
Quick start
Requirements
Go version>=1.12
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
Contributors
- Tinson Ho (@tinson)
- ACoderHIT
- xiongwilee (@xiongwilee)
- KEL (@deathkel)
- peterwu
評論
圖片
表情
