Go 部落格
外部 Go 庫聚焦
Go 語言的作者們一直在努力改進 Go 的標準庫,與此同時,更廣闊的社群已經建立了一個不斷壯大的外部庫生態系統。在這篇文章中,我們將介紹一些流行的 Go 庫以及它們的用法。
Mgo(讀作 “mango”)是一個 MongoDB 資料庫驅動。MongoDB 是一種文件資料庫,具有許多適合各種用途的特性。mgo 包提供了一個豐富、慣用的 Go API,用於操作 MongoDB,從插入和更新記錄等基本操作到更高階的MapReduce 和GridFS 特性。Mgo 具有許多很棒的特性,包括自動叢集發現和結果預取——有關詳細資訊和示例程式碼,請參閱mgo 主頁。對於處理大型資料集,Go、MongoDB 和 mgo 是一個強大的組合。
Authcookie 是一個用於生成和驗證使用者認證 cookie 的 Web 庫。它允許 Web 伺服器分發與特定使用者繫結的加密安全令牌,這些令牌將在指定時間後過期。它有一個簡單的 API,可以輕鬆地為現有的 Web 應用程式新增認證功能。有關詳細資訊和示例程式碼,請參閱README 檔案。
Go-charset 支援在 Go 的標準 UTF-8 編碼和各種字元集之間進行轉換。go-charset 包實現了可翻譯的 io.Reader 和 io.Writer,因此您可以包裝現有的 Reader 和 Writer(例如網路連線或檔案描述符),從而輕鬆與使用其他字元編碼的系統通訊。
Go-socket.io 是 Socket.IO 的 Go 實現,Socket.IO 是一種客戶端/伺服器 API,允許 Web 伺服器向 Web 瀏覽器推送訊息。根據使用者瀏覽器的能力,Socket.IO 會使用最適合連線的傳輸方式,無論是現代的 WebSocket、AJAX 長輪詢還是其他機制。Go-socket.io 彌合了 Go 伺服器與廣泛瀏覽器上的富 JavaScript 客戶端之間的鴻溝。要了解 go-socket.io 的用法,請參閱聊天伺服器示例。
值得一提的是,這些包都可以透過 goinstall 進行安裝。只要您的 Go 安裝是最新版本,您就可以透過一個命令安裝所有這些包
goinstall launchpad.net/mgo \
github.com/dchest/authcookie \
go-charset.googlecode.com/hg/charset \
github.com/madari/go-socket.io
透過 goinstall 安裝後,可以使用相同的路徑匯入這些包
import (
"launchpad.net/mgo"
"github.com/dchest/authcookie"
"go-charset.googlecode.com/hg/charset"
"github.com/madari/go-socket.io"
)
此外,由於它們現在是本地 Go 系統的一部分,我們可以使用 godoc 檢視它們的文件
godoc launchpad.net/mgo Database # see docs for Database type
當然,這只是冰山一角;在 包儀表板 上列出了更多出色的 Go 庫,未來還會有更多。
下一篇文章:Go 程式效能分析
上一篇文章:一個 GIF 解碼器:Go 介面實踐
部落格索引