歡迎您光臨本站 註冊首頁

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

←手機掃碼閱讀     admin @ 2020-01-14 , reply:0

GF(Go Frame) https://goframe.org 是一款模塊化、高性能、生產級的Go基礎開發框架。實現了比較完善的基礎設施建設,包括常用的核心開發組件, 如:緩存、日誌、文件、時間、隊列、數組、集合、字元串、定時器、命令行、文件鎖、內存鎖、對象池、連接池、資源管理、數據校驗、數據編碼、文件監控、 定時任務、資料庫ORM、TCP/UDP組件、進程管理/通信、併發安全容器等等。 並提供了Web服務開發的系列核心組件,如:Router、Cookie、Session、Middleware、服務註冊、配置管理、模板引擎等等, 支持熱重啟、熱更新、多域名、多埠、多服務、HTTPS、Rewrite等特性。

GF有著豐富的基礎模塊、完善的工具鏈、詳盡的開發文檔。開源近兩年以來,GF得到越來越多小夥伴的肯定和支持,從寂寂無名到現在被廣泛應用於微服務、物聯網、區塊鏈、電商系統、銀行系統等企業級的生產項目中,經歷了百萬級、千萬級項目的考驗,2019年度被碼雲gitee評選為GVP最有價值開源項目。GF正在快速地成長中,目前保持著1-2個月迭代版本的發布規律,社區活躍,歡迎加入GF大家庭。

最後,祝大家2020新年快樂,鼠年大吉!

新特性

  1. 新年新氣象,官網文檔大量更新:https://goframe.org/index
  2. GF工具鏈更新:https://goframe.org/toolchain/cli
    • 新增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,統一客戶端參數提交方式為QueryStringFormBody
    • 去掉Response模板解析時的Get/Post內置變數,新增QueryFormRequest內置變數:https://goframe.org/net/ghttp/response/template
    • 改進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

  2. gcfg

    • 新增GetMapStrStr方法。
  3. gcmd

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

    • 改進Remove方法支持多個環境變數的刪除。
  5. gfile

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

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

    • 將包方法以及Time對象的時間戳方法SecondMillisecondMicrosecondNanosecond標記為廢除, 並新增TimestampTimestampMilliTimestampMicroTimestampNano替換。
    • 需要注意的是以上修改可能和老版本存在兼容性問題。
  8. gview

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

crypto

  1. gmd5
    • 增加MustEncryptMustEncryptBytesMustEncryptStringMustEncryptFile方法。
  2. gsha1
    • 增加MustEncryptFile方法

encoding

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

util

  1. gconv
    • 改進Convert方法增加對[]int32[]int64[]uint[]uint32[]uint64[]float32[]float64數據類型的轉換支持。
    • 改進String字元串轉換方法對指針參數的支持。
    • 改進Map* Map轉換方法的代碼結構及性能。
    • 新增FloatsFloat32sFloat64s[]float32[]float64類型轉換方法。
    • 新增IntsInt32sInt64s[]int[]int32[]int64類型轉換方法。
    • 新增UintsUint32sUint64s[]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在被替換字元串長度小於替換字元串長度時的數組溢出問題。

[admin ]

來源:OsChina
連結:https://www.oschina.net/news/112783/goframe-1-11-released
GoFrame v1.11 發布,Go 基礎開發框架已經有139次圍觀

http://coctec.com/news/all/show-post-222916.html