必須知道的 17 個 Go 開發庫
包含各種使用場景的 Go 第三方列表。
隨着時間的推移,Go 語言愛好者已經創建並共享了許多 Go 框架和庫。這些庫有不同的功能,從微服務開發到構建 web 應用程序!
備註:在 Go 語言中我們都稱第三方庫爲 package(包)。
配置文件處理庫
配置文件通常以各種格式編寫,如 JSON 和 YAML。Go 有一個非常有用的包,它使讀取和寫入各種格式的配置文件成爲小菜一碟。
1、Viper:這是一個關於 Go 應用程序配置處理的完整解決方案,包括 12-Factor 應用程序。它作用在應用程序中,可以處理所有類型的配置文件和格式。
-
可以讀取 JSON, TOML, YAML, HCL, .env, and Java properties 等格式的配置文件。
-
實時監控和重新加載配置文件
-
讀取環境變量
地址:https://github.com/spf13/viper
命令行接口
對於構建命令行應用程序,Go 有一個很棒的庫,使其變得輕而易舉。
2、Cobra:一個用於創建基於 Go 的 CLI 應用程序的強大庫。具備的功能有:
-
它與 Viper 庫的配置文件集成了強大的功能。
-
它支持常規子命令、嵌套子命令,並幫助對類似的命令進行分組。
-
完全符合 posix 的參數 (包括短和長版本)
地址:https://github.com/spf13/cobra
環境變量
Go 有很多包能讀. env 文件,這些文件可以更容易地存儲各種應用程序密匙。
3、GoDotEnv:從. env 文件讀取變量非常簡單,而且使用起來相當輕便。
地址:https://github.com/joho/godotenv
自動化構建
自動化工具,旨在通過簡單的命令幫助執行任務。
你可能已經知道的一個流行工具是 Make 命令,它幫助我們使用 makefile 的任務自動化。一個很好的開發實踐是在 Makefile 中定義一個要執行的命令列表,我們可以在後面很容易地引用它並使用簡單的 make 命令執行。
4、Task:這個庫擁有更多的詳細說明,因此,在執行命令時比 Make 更好的解釋性。它也沒有依賴性,相比之下是相當輕量級的。
地址:https://taskfile.dev/
動態編譯
5、Air:這是一個實用的 Go 庫,當你在開發 Go 項目的時候,每當有代碼更新,該庫能自動檢測到代碼的更新並重新編譯運行你的項目。
地址:https://github.com/cosmtrek/air
Web 開發
以下是兩種經常被維護的頂級 web 框架:
6、Gin web 框架:這是 Go 最流行的 web 開發庫,有很多好的特性。
地址:https://gin-gonic.com/
7、Iris web 框架:這也是在 Go 中構建高性能 web 應用程序和 api 的另一種選擇。如果你以前用過 ExpressJS,你會覺得有點熟悉。
地址:https://www.iris-go.com/
日期管理
8、Carbon:這是一個輕量級的、易於使用的、語義智能的日期時間庫,適用於 Go 開發者。
地址:https://github.com/golang-module/carbon
數據庫 ORM
9、Gorm:這是最容易使用的對象關係映射 (ORM) Go 庫,作者使用過三種主要的數據庫 SQLite, PostgreSQL 和 MySQL。
微服務
微服務通常在 Docker 和 Kubernetes 容器架構中使用,以構建健壯的應用程序。下面是幾個 Go 微服務包:
10、Echo:該框架支持 RESTful API 設計,是最流行的 Go 微服務框架。
地址:https://echo.labstack.com/guide/
11、go-micro:這個庫具有內置的身份驗證和數據存儲設計,在同一領域是另一個很好的選擇。確實很方便。
地址:https://github.com/go-micro/go-micro
web 爬蟲
12、Colly:這是一個很棒的 Go 網頁爬蟲框架,特別適合存檔 (我經常用它) 和數據挖掘。
地址:https://github.com/gocolly/colly
13、Retry
用於重試邏輯和回退。它是高度可擴展的,可以完全控制重試發生的方式和時間。還可以通過實現 backoff 接口編寫自己的自定義後退函數。
地址:https://github.com/sethvargo/go-retry
14、endless
golang HTTP 和 HTTPS 服務器的零停機重啓。
地址:https://github.com/fvbock/endless
15、定時任務 cron
地址:https://github.com/robfig/cron
其他:
16、Go-Redis:這是一個很棒的、高度維護的 Go redis 數據庫客戶端。它與 redis 6 和 7 都兼容,並且有一個非常簡單的設置過程。強烈推薦。
地址:https://github.com/go-redis/redis
17、go-elasticsearch:這是官方 Elasticsearch 的 Go 客戶端。
地址:https://github.com/elastic/go-elasticsearch
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/1sxaut0AhnEEltn1YH26cQ