Go 博客

外部 Go 库聚焦

Andrew Gerrand
2011 年 6 月 3 日

Go 语言的作者们一直在努力改进 Go 的标准库,与此同时,更广阔的社区已经建立了一个不断壮大的外部库生态系统。在这篇文章中,我们将介绍一些流行的 Go 库以及它们的用法。

Mgo(读作 “mango”)是一个 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,因此您可以包装现有的 Reader 和 Writer(例如网络连接或文件描述符),从而轻松与使用其他字符编码的系统通信。

Go-socket.ioSocket.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 接口实践
博客索引