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 接口的练习
博客索引