GF(Go Frame)
goframe.org 是一款模塊化、高性能、生產級的Go基礎開發框架。實現了比較完善的基礎設施建設,包括經常使用的核心開發組件, 如:緩存、日誌、文件、時間、隊列、數組、集合、字符串、定時器、命令行、文件鎖、內存鎖、對象池、鏈接池、資源管理、數據校驗、數據編碼、文件監控、 定時任務、數據庫ORM、TCP/UDP組件、進程管理/通訊、併發安全容器等等。 並提供了Web服務開發的系列核心組件,如:Router、Cookie、Session、Middleware、服務註冊、配置管理、模板引擎等等, 支持熱重啓、熱更新、多域名、多端口、多服務、HTTPS、Rewrite等特性。git
GF
有着豐富的基礎模塊、完善的工具鏈、詳盡的開發文檔。開源近兩年以來,GF
獲得愈來愈多小夥伴的確定和支持,從寂寂無名到如今被普遍應用於微服務、物聯網、區塊鏈、電商系統、銀行系統等企業級的生產項目中,經歷了百萬級、千萬級項目的考驗,2019年度被碼雲gitee
評選爲GVP
最有價值開源項目。GF
正在快速地成長中,目前保持着1-2個月迭代版本的發佈規律,社區活躍。docker
最後,祝你們2020新年快樂,鼠年大吉!數據庫
GF
工具鏈更新:goframe.org/toolchain/c…
gf run
熱編譯運行命令;gf docker
Docker鏡像編譯命令;gf gen model
強大的模型自動生成命令;gf build
命令增長對配置文件配置支持;ORM
新特性:
prefix
數據表前綴支持:goframe.org/database/gd…Schema
數據庫對象並改進數據庫切換特性:goframe.org/database/gd…WherePri
方法,用於自動識別主鍵的條件方法:goframe.org/database/gd…container
garray
New*ArrayRange
方法,用於初始化建立指定數值範圍的數組。Iterator*
方法,用於數組項元素回調遍歷。gvar
MapStrStr
、MapStrStrDeep
方法實現。net
ghttp
Content-Type
識別功能。Request
對象增長Parse
方法,用於快捷的對象轉換即參數校驗。Request.GetPost*
方法所有標記爲deprecated
,統一客戶端參數提交方式爲QueryString
, Form
, Body
。Response
模板解析時的Get
/Post
內置變量,新增Query
, Form
, Request
內置變量:goframe.org/net/ghttp/r…Response.WriteJson*
及Response.WriteXml*
方法,增長對string
, []byte
類型參數的支持。Server
新增GetRouterArray
方法,用於嚮應用層暴露並獲取Server
的路由列表。Server
新增Use
方法,該方法爲BindMiddlewareDefault
的別名,用以全局中間件的註冊。Server
新增RouteOverWrite
配置項,用於控制是否在註冊路由衝突時自動覆蓋,默認關閉並提示。Server
新增Graceful
配置項,用於在單服務場景下控制平滑重啓特性的開啓/關閉,默認開啓。gtcp
30
秒修改成10
秒。database
gdb
As
數據表別名方法。DB
數據庫對象切換方法。TX
鏈式操做事務支持方法。os
gcfg
json
GetMapStrStr
方法。gcmd
windows
strict
嚴格參數,默認嚴格解析,不存在指定參數/選項名稱時則報錯返回。genv
數組
Remove
方法支持多個環境變量的刪除。gfile
緩存
TempDir
臨時目錄獲取方法,在*nix
系統下默認爲/tmp
目錄。ReadLines
, ReadByteLines
方法,用以按行回調讀取文件內容。Copy*
方法,用以文件/目錄的拷貝,支持遞歸。Replace*
方法,用以目錄下的文件內容替換,支持遞歸。Scan*
方法,用以檢索並返回指定目錄下的全部文件/目錄,支持文件模式指定,支持遞歸。gproc
安全
Shell
命令文件檢索邏輯。gtime
併發
Time
對象的時間戳方法Second
, Millisecond
, Microsecond
, Nanosecond
標記爲廢除, 並新增Timestamp
, TimestampMilli
, TimestampMicro
, TimestampNano
替換。gview
框架
encode
, decode
HTML編碼/解碼模板函數。concat
字符串拼接模板函數。dump
模板函數,功能相似於g.Dump
方法。AutoEncode
配置項,用於自動轉碼輸出的HTML
內容,經常使用於防止XSS
,默認關閉。須要注意的是該特性並不會影響include
內置函數: goframe.org/os/gview/xs…crypto
gmd5
MustEncrypt
, MustEncryptBytes
, MustEncryptString
, MustEncryptFile
方法。gsha1
MustEncryptFile
方法encoding
gbase64
MustEncodeFile
, MustEncodeFileToString
, MustDecode
, MustDecodeToString
方法。gjson
/gparser
GetMapStrStr
方法。Must*
方法,用於指定數據格式的轉換失敗時產生panic
錯誤,而不會返回error
參數。util
gconv
Convert
方法增長對[]int32
, []int64
, []uint
, []uint32
, []uint64
, []float32
, []float64
數據類型的轉換支持。String
字符串轉換方法對指針參數的支持。Map*
Map轉換方法的代碼結構及性能。Floats
, Float32s
, Float64s
對[]float32
, []float64
類型轉換方法。Ints
, Int32s
, Int64s
對[]int
, []int32
, []int64
類型轉換方法。Uints
, Uint32s
, Uint64s
對[]uint
, []uint32
, []uint64
類型轉換方法。frame
gins
panic
錯誤。/user//index
的兼容支持。gtcp
/gudp
在數據接收時的間隔時間單位問題。gfile
/gspath
/gfsnotify
包對文件的存在性判斷不嚴謹問題。gproc.Kill
方法在windows
系統下的運行阻塞問題。gstr.TrimLeftStr
/gstr.TrimRightStr
在被替換字符串長度小於替換字符串長度時的數組溢出問題。