Snow——簡單易用的 Go 語言業務框架

tinson發表於2019-07-09

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

相關文章