Go 部落格
聚焦外部 Go 庫
Go 語言的作者們一直在努力改進 Go 的標準庫,與此同時,社群已經建立了一個不斷增長的外部庫生態系統。在這篇文章中,我們將介紹一些流行的 Go 庫以及它們的使用方法。
Mgo(發音為“mango”)是一個 MongoDB 資料庫驅動程式。MongoDB 是一個面向文件的資料庫,它擁有眾多適用於廣泛用途的特性。mgo 包為使用 MongoDB 提供了豐富、符合 Go 習慣的 API,從插入和更新記錄等基本操作到更高階的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 會使用最佳的傳輸方式進行連線,無論是現代的 websockets、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
安裝完成後,就可以使用相同的路徑匯入這些包了。
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 介面的練習
部落格索引