Go 部落格

重點介紹外部 Go 函式庫

Andrew Gerrand
2011 年 6 月 3 日

儘管 Go 作者致力於改善 Go 的標準函式庫,整個社群建立了越來越龐大的外部函式庫生態系統。在本文中,我們將探討一些廣受歡迎的 Go 函式庫以及它們的使用方式。

Mgo (發音為“芒果”) 是 MongoDB 資料庫的驅動程式。 MongoDB 是一個 文件導向的資料庫,功能強大,適用於 廣泛的用途。mgo 套件提供豐富且夠用的 Go API,可處理 MongoDB 相關的工作,從基本操作(例如插入和更新記錄)到進階的 MapReduceGridFS 功能。Mgo 擁有許多強大的功能,包括自動叢集發現和預先擷取結果,詳情和範例程式碼請參閱 mgo 首頁。對於處理大型資料集,Go、MongoDB 和 mgo 的組合非常強大。

Authcookie 是用於產生和驗證使用者驗證 cookie 的 Web 函式庫。它允許 Web 伺服器散發與特定使用者連結的密碼安全權杖,該權杖於指定的時間後將過期。它提供的 API 很簡單,因此可以輕鬆將驗證功能新增到現有的 Web 應用程式中。詳情和範例程式碼請參閱 README 檔案

Go-charset 提供支援,用以在 Go 的標準 UTF-8 編碼和各種字元集之間轉換。go-charset 套件實作了轉譯的 io.Reader 和 io.Writer,因此您可以包裝現有的 Readers 和 Writers(例如網路連線或檔案描述詞),進而輕鬆與使用其他字元編碼的系統進行通訊。

Go-socket.ioSocket.IO 的 Go 實作,Socket.IO 是一個客戶端/伺服器 API,讓 Web 伺服器可以將訊息推送到 Web 瀏覽器。根據使用者的瀏覽器功能,Socket.IO 會使用最棒的傳輸方式建立連線,不論是現代的 websockets、AJAX 長輪詢或某些 其他機制。Go-socket.io 可以替 Go 伺服器和各種瀏覽器的豐富 JavaScript 客戶端之間搭起一座橋樑。若想了解 go-socket.io 的特性,請參閱 聊天伺服器範例

值得一提的是,這些套件都是 可透過 go 安裝的。只要您具備最新的 Go 安裝,便可以使用單一命令安裝所有套件

goinstall launchpad.net/mgo \
    github.com/dchest/authcookie \
    go-charset.googlecode.com/hg/charset \
    github.com/madari/go-socket.io

安裝透過 go 安裝的套件後,就可以使用相同的路徑匯入套件

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 介面
部落格索引