GoFrame v1.11發佈, Go基礎開發框架

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新年快樂,鼠年大吉!數據庫

新特性

  1. 新年新氣象,官網文檔大量更新:goframe.org/index
  2. GF工具鏈更新:goframe.org/toolchain/c…
    • 新增gf run熱編譯運行命令;
    • 新增gf docker Docker鏡像編譯命令;
    • 新增gf gen model 強大的模型自動生成命令;
    • gf build命令增長對配置文件配置支持;
    • 大量命令行工具改進工做;
    • 新增自動代理設置特性;
  3. 數據庫ORM新特性:

功能改進

container

  1. garray
    • 新增New*ArrayRange方法,用於初始化建立指定數值範圍的數組。
    • 新增Iterator*方法,用於數組項元素回調遍歷。
    • 完善單元測試。
  2. gvar
    • 改進MapStrStrMapStrStrDeep方法實現。

net

  1. ghttp
    • 改進HTTP客戶端,增長對提交參數的自動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配置項,用於在單服務場景下控制平滑重啓特性的開啓/關閉,默認開啓。
    • 完善單元測試。
  2. gtcp
    • 改進簡單協議下的數據包發送接收功能。
    • 將鏈接池默認的緩存過時時間30秒修改成10秒。
    • 完善單元測試。

database

  1. gdb
    • 新增As數據表別名方法。
    • 改進數據表、字段的安全字符自動識別添加功能。
    • 新增DB數據庫對象切換方法。
    • 新增TX鏈式操做事務支持方法。
    • 完善單元測試。

os

  1. gcfgjson

    • 新增GetMapStrStr方法。
  2. gcmdwindows

    • 增長參數解析的strict嚴格參數,默認嚴格解析,不存在指定參數/選項名稱時則報錯返回。
  3. genv數組

    • 改進Remove方法支持多個環境變量的刪除。
  4. gfile緩存

    • 改進TempDir臨時目錄獲取方法,在*nix系統下默認爲/tmp目錄。
    • 新增ReadLines, ReadByteLines方法,用以按行回調讀取文件內容。
    • 新增Copy*方法,用以文件/目錄的拷貝,支持遞歸。
    • 新增Replace*方法,用以目錄下的文件內容替換,支持遞歸。
    • 改進Scan*方法,用以檢索並返回指定目錄下的全部文件/目錄,支持文件模式指定,支持遞歸。
    • 完善單元測試。
  5. gproc安全

    • 改進命令行運行方法。
    • 改進Shell命令文件檢索邏輯。
    • 改進實驗性的進程間通訊設計。
  6. gtime併發

    • 將包方法以及Time對象的時間戳方法Second, Millisecond, Microsecond, Nanosecond標記爲廢除, 並新增Timestamp, TimestampMilli, TimestampMicro, TimestampNano替換。
    • 須要注意的是以上修改可能和老版本存在兼容性問題。
  7. gview框架

    • 解析功能、緩存設計改進。
    • 新增encode, decodeHTML編碼/解碼模板函數。
    • 新增concat字符串拼接模板函數。
    • 新增dump模板函數,功能相似於g.Dump方法。
    • 新增AutoEncode配置項,用於自動轉碼輸出的HTML內容,經常使用於防止XSS,默認關閉。須要注意的是該特性並不會影響include內置函數: goframe.org/os/gview/xs…
    • 單元測試完善。

crypto

  1. gmd5
    • 增長MustEncrypt, MustEncryptBytes, MustEncryptString, MustEncryptFile方法。
  2. gsha1
    • 增長MustEncryptFile方法

encoding

  1. gbase64
    • 新增MustEncodeFile, MustEncodeFileToString, MustDecode, MustDecodeToString方法。
  2. gjson/gparser
    • 新增GetMapStrStr方法。
    • 新增Must*方法,用於指定數據格式的轉換失敗時產生panic錯誤,而不會返回error參數。

util

  1. 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

  1. gins
    • 全部的單例對象在獲取失敗時產生panic錯誤。

Bug Fix

  1. 增長對常見錯誤路由格式例如/user//index的兼容支持。
  2. 修復gtcp/gudp在數據接收時的間隔時間單位問題。
  3. 修復gfile/gspath/gfsnotify包對文件的存在性判斷不嚴謹問題。
  4. 修復gproc.Kill方法在windows系統下的運行阻塞問題。
  5. 修復gstr.TrimLeftStr/gstr.TrimRightStr在被替換字符串長度小於替換字符串長度時的數組溢出問題。
相關文章
相關標籤/搜索