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 应用程序添加身份验证变得直截了当。有关详细信息和示例代码,请参见 自述文件。
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
一旦使用 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 接口练习
博客索引