包含各種使用場景的Go第三方列表。
隨著時(shí)間的推移,Go語言愛好者已經(jīng)創(chuàng)建并共享了許多Go框架和庫。這些庫有不同的功能,從微服務(wù)開發(fā)到構(gòu)建web應(yīng)用程序!
備注:在Go語言中我們都稱第三方庫為package(包)。
1、Viper:這是一個(gè)關(guān)于Go應(yīng)用程序配置處理的完整解決方案,包括12-Factor應(yīng)用程序。它作用在應(yīng)用程序中,可以處理所有類型的配置文件和格式。
可以讀取JSON, TOML, YAML, HCL, .env, and Java properties等格式的配置文件。
實(shí)時(shí)監(jiān)控和重新加載配置文件
讀取環(huán)境變量
地址:https://github.com/spf13/viper
命令行接口
對(duì)于構(gòu)建命令行應(yīng)用程序,Go有一個(gè)很棒的庫,使其變得輕而易舉。2、Cobra:一個(gè)用于創(chuàng)建基于Go的CLI應(yīng)用程序的強(qiáng)大庫。具備的功能有:
它與Viper庫的配置文件集成了強(qiáng)大的功能。
它支持常規(guī)子命令、嵌套子命令,并幫助對(duì)類似的命令進(jìn)行分組。
完全符合posix的參數(shù)(包括短和長版本)
地址:https://github.com/spf13/cobra
環(huán)境變量
Go有很多包能讀.env文件,這些文件可以更容易地存儲(chǔ)各種應(yīng)用程序密匙。3、GoDotEnv:從.env文件讀取變量非常簡單,而且使用起來相當(dāng)輕便。
地址:https://github.com/joho/godotenv
自動(dòng)化構(gòu)建
自動(dòng)化工具,旨在通過簡單的命令幫助執(zhí)行任務(wù)。
你可能已經(jīng)知道的一個(gè)流行工具是Make命令,它幫助我們使用makefile的任務(wù)自動(dòng)化。一個(gè)很好的開發(fā)實(shí)踐是在Makefile中定義一個(gè)要執(zhí)行的命令列表,我們可以在后面很容易地引用它并使用簡單的make命令執(zhí)行。4、Task:這個(gè)庫擁有更多的詳細(xì)說明,因此,在執(zhí)行命令時(shí)比Make更好的解釋性。它也沒有依賴性,相比之下是相當(dāng)輕量級(jí)的。
地址:https://taskfile.dev/
動(dòng)態(tài)編譯5、Air:這是一個(gè)實(shí)用的Go庫,當(dāng)你在開發(fā)Go項(xiàng)目的時(shí)候,每當(dāng)有代碼更新,該庫能自動(dòng)檢測到代碼的更新并重新編譯運(yùn)行你的項(xiàng)目。
地址:https://github.com/cosmtrek/air
Web開發(fā)
以下是兩種經(jīng)常被維護(hù)的頂級(jí)web框架:6、Gin web框架:這是Go最流行的web開發(fā)庫,有很多好的特性。
地址:https://gin-gonic.com/7、Iris web框架:這也是在Go中構(gòu)建高性能web應(yīng)用程序和api的另一種選擇。如果你以前用過ExpressJS,你會(huì)覺得有點(diǎn)熟悉。
地址:https://www.iris-go.com/
日期管理8、Carbon:這是一個(gè)輕量級(jí)的、易于使用的、語義智能的日期時(shí)間庫,適用于Go開發(fā)者。
地址:https://github.com/golang-module/carbon
數(shù)據(jù)庫ORM9、Gorm:這是最容易使用的對(duì)象關(guān)系映射(ORM) Go庫,作者使用過三種主要的數(shù)據(jù)庫SQLite, PostgreSQL和MySQL。
微服務(wù)
微服務(wù)通常在Docker和Kubernetes容器架構(gòu)中使用,以構(gòu)建健壯的應(yīng)用程序。下面是幾個(gè)Go微服務(wù)包:10、Echo:該框架支持RESTful API設(shè)計(jì),是最流行的Go微服務(wù)框架。
地址:https://echo.labstack.com/guide/11、go-micro:這個(gè)庫具有內(nèi)置的身份驗(yàn)證和數(shù)據(jù)存儲(chǔ)設(shè)計(jì),在同一領(lǐng)域是另一個(gè)很好的選擇。確實(shí)很方便。
地址:https://github.com/go-micro/go-micro
web爬蟲12、Colly:這是一個(gè)很棒的Go網(wǎng)頁爬蟲框架,特別適合存檔(我經(jīng)常用它)和數(shù)據(jù)挖掘。
地址:https://github.com/gocolly/colly13、Retry
用于重試邏輯和回退。它是高度可擴(kuò)展的,可以完全控制重試發(fā)生的方式和時(shí)間。還可以通過實(shí)現(xiàn)backoff接口編寫自己的自定義后退函數(shù)。
地址:https://github.com/sethvargo/go-retry14、endless
golang HTTP和HTTPS服務(wù)器的零停機(jī)重啟。
地址:https://github.com/fvbock/endless15、定時(shí)任務(wù)cron
地址:https://github.com/robfig/cron
其他:16、Go-Redis:這是一個(gè)很棒的、高度維護(hù)的Go redis數(shù)據(jù)庫客戶端。它與redis 6和7都兼容,并且有一個(gè)非常簡單的設(shè)置過程。強(qiáng)烈推薦。
地址:https://github.com/go-redis/redis17、go-elasticsearch:這是官方Elasticsearch的Go客戶端。
地址:https://github.com/elastic/go-elasticsearch18、excelize: 是一個(gè)excel操作庫
地址: https://github.com/xuri/excelize/v219、maaslalani/invoice: 發(fā)票生成工具
地址: github.com/maaslalani/invoice
介紹: https://mp.weixin.qq.com/s/yxN4ZqYJ4gpVKt94vHYtpg20、web桌面應(yīng)用: wails2
地址: https://wails.io/zh-Hans/docs/next/introduction
-- 持續(xù)更新