包含各種使用場景的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更好的解釋性。它也沒有依賴性,相比之下是相當輕量級的。
動態(tài)編譯
5、Air:這是一個實用的Go庫,當你在開發(fā)Go項目的時候,每當有代碼更新,該庫能自動檢測到代碼的更新并重新編譯運行你的項目。
地址:https://github.com/cosmtrek/air
Web開發(fā)
以下是兩種經(jīng)常被維護的頂級web框架:
6、Gin web框架:這是Go最流行的web開發(fā)庫,有很多好的特性。
7、Iris web框架:這也是在Go中構(gòu)建高性能web應(yīng)用程序和api的另一種選擇。如果你以前用過ExpressJS,你會覺得有點熟悉。
日期管理
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客戶端。