必須知道的17個Go開發(fā)庫

包含各種使用場景的Go第三方列表。

隨著時間的推移,Go語言愛好者已經(jīng)創(chuàng)建并共享了許多Go框架和庫。這些包有不同的功能,從微服務(wù)開發(fā)到構(gòu)建web應(yīng)用程序!

備注:在Go語言中我們都稱第三方庫位package(包)。

配置文件處理庫

配置文件通常以各種格式編寫,如JSON和YAML。Go有一個非常有用的包,它使讀取和寫入各種格式的配置文件成為小菜一碟。

1、Viper:這是一個關(guān)于Go應(yīng)用程序配置處理的完整解決方案,包括12-Factor應(yīng)用程序。它作用在應(yīng)用程序中,可以處理所有類型的配置文件和格式。

  • 可以讀取JSON, TOML, YAML, HCL, .env, and Java properties等格式的配置文件。
  • 實時監(jiān)控和重新加載配置文件
  • 讀取環(huán)境變量

地址:https://github.com/spf13/viper

命令行接口

對于構(gòu)建命令行應(yīng)用程序,Go有一個很棒的庫,使其變得輕而易舉。

2、Cobra:一個用于創(chuàng)建基于Go的CLI應(yīng)用程序的強大庫。具備的功能有:

  • 它與Viper庫的配置文件集成了強大的功能。
  • 它支持常規(guī)子命令、嵌套子命令,并幫助對類似的命令進行分組。
  • 完全符合posix的參數(shù)(包括短和長版本)

地址:https://github.com/spf13/cobra

環(huán)境變量

Go有很多包能讀.env文件,這些文件可以更容易地存儲各種應(yīng)用程序密匙。

3、GoDotEnv:從.env文件讀取變量非常簡單,而且使用起來相當輕便。

地址:https://github.com/joho/godotenv

自動化構(gòu)建

自動化工具,旨在通過簡單的命令幫助執(zhí)行任務(wù)。

你可能已經(jīng)知道的一個流行工具是Make命令,它幫助我們使用makefile的任務(wù)自動化。一個很好的開發(fā)實踐是在Makefile中定義一個要執(zhí)行的命令列表,我們可以在后面很容易地引用它并使用簡單的make命令執(zhí)行。

4、Task:這個庫擁有更多的詳細說明,因此,在執(zhí)行命令時比Make更好的解釋性。它也沒有依賴性,相比之下是相當輕量級的。

地址:https://taskfile.dev/

動態(tài)編譯

5、Air:這是一個實用的Go庫,當你在開發(fā)Go項目的時候,每當有代碼更新,該庫能自動檢測到代碼的更新并重新編譯運行你的項目。

地址:https://github.com/cosmtrek/air

Web開發(fā)

以下是兩種經(jīng)常被維護的頂級web框架:

6、Gin web框架:這是Go最流行的web開發(fā)庫,有很多好的特性。

地址:https://gin-gonic.com/

7、Iris web框架:這也是在Go中構(gòu)建高性能web應(yīng)用程序和api的另一種選擇。如果你以前用過ExpressJS,你會覺得有點熟悉。

地址:https://www.iris-go.com/

日期管理

8、Carbon:這是一個輕量級的、易于使用的、語義智能的日期時間庫,適用于Go開發(fā)者。

地址:https://github.com/golang-module/carbon

數(shù)據(jù)庫ORM

9、Gorm:這是最容易使用的對象關(guān)系映射(ORM) Go庫,作者使用過三種主要的數(shù)據(jù)庫SQLite, PostgreSQL和MySQL。

微服務(wù)

微服務(wù)通常在Docker和Kubernetes容器架構(gòu)中使用,以構(gòu)建健壯的應(yīng)用程序。下面是幾個Go微服務(wù)包:

10、Echo:該框架支持RESTful API設(shè)計,是最流行的Go微服務(wù)框架。

地址:https://echo.labstack.com/guide/

11、go-micro:這個庫具有內(nèi)置的身份驗證和數(shù)據(jù)存儲設(shè)計,在同一領(lǐng)域是另一個很好的選擇。確實很方便。

地址:https://github.com/go-micro/go-micro

web爬蟲

12、Colly:這是一個很棒的Go網(wǎng)頁爬蟲框架,特別適合存檔(我經(jīng)常用它)和數(shù)據(jù)挖掘。

地址:https://github.com/gocolly/colly

13、Retry

用于重試邏輯和回退。它是高度可擴展的,可以完全控制重試發(fā)生的方式和時間。還可以通過實現(xiàn)backoff接口編寫自己的自定義后退函數(shù)。

地址:https://github.com/sethvargo/go-retry

14、endless

golang HTTP和HTTPS服務(wù)器的零停機重啟。

地址:https://github.com/fvbock/endless

15、定時任務(wù)cron

地址:https://github.com/robfig/cron

其他:

16、Go-Redis:這是一個很棒的、高度維護的Go redis數(shù)據(jù)庫客戶端。它與redis 6和7都兼容,并且有一個非常簡單的設(shè)置過程。強烈推薦。

地址:https://github.com/go-redis/redis

17、go-elasticsearch:這是官方Elasticsearch的Go客戶端。

地址:https://github.com/elastic/go-elasticsearch

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容