The Go Blog

Обзор внешних библиотек для Go

Эндрю Герранд
3 июня 2011

Пока авторы Go усердно работали над улучшением стандартной библиотеки, большее сообщество создало растущую экосистему внешних библиотек. В этой статье мы рассмотрим некоторые популярные библиотеки Go и способы их использования.

Mgo (произносится как “mango”) — это драйвер базы данных MongoDB. MongoDB — это документо-ориентированная база данных с длинным списком функций, подходящих для широкого спектра применений. Пакет mgo предоставляет богатый и идиоматичный Go API для работы с MongoDB, от базовых операций, таких как вставка и обновление записей, до более продвинутых возможностей MapReduce и GridFS. Mgo имеет множество интересных особенностей, включая автоматическое обнаружение кластера и предварительную выборку результатов — см. документацию.

Домашняя страница mgo для получения подробной информации и примеров кода. Для работы с большими наборами данных Go, MongoDB и mgo представляют собой мощное сочетание.

Authcookie — это веб-библиотека для генерации и проверки cookie-файлов аутентификации пользователей. Она позволяет веб-серверам выдавать криптографически безопасные токены, связанные с определённым пользователем, которые истекут через заданный период времени. Библиотека имеет простой API, что делает её удобной для добавления аутентификации в существующие веб-приложения. См. файл README для получения подробной информации и примеров кода.

Go-charset предоставляет поддержку преобразования между стандартной кодировкой UTF-8 в Go и различными наборами символов. Пакет go-charset реализует переводящие io.Reader и io.Writer, таким образом, вы можете обернуть существующие Reader и Writer (например, сетевые соединения или дескрипторы файлов), что упрощает взаимодействие с системами, использующими другие кодировки символов.

Go-socket.io — это реализация Socket.IO на языке Go.

Клиент-серверный API, который позволяет веб-серверам отправлять сообщения веб-браузерам. В зависимости от возможностей браузера пользователя, Socket.IO использует наиболее подходящий механизм соединения, будь то современные вебсокеты, AJAX long polling, или другой механизм. Go-socket.io обеспечивает связь между серверами на Go и богатыми JavaScript-клиентами для широкого круга браузеров. Чтобы ознакомиться с возможностями go-socket.io, можно посмотреть пример чат-сервера.

Стоит упомянуть, что данные пакеты можно установить с помощью goinstall. Со свежей установкой Go installation все они могут быть установлены одной командой:

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

После установки пакеты можно импортировать, используя те же самые пути:

<code>import (
  "launchpad.net/mgo"
  "github.com/dchest/authcookie"
  "go-charset.googlecode.com/hg/charset"
  "github.com/madari/go-socket.io"
)
</code>

Кроме того, так как они теперь являются частью локальной системы Go, документацию к ним можно изучить с помощью godoc:

<code>godoc launchpad.net/mgo Database # see docs for Database type
</code>

Конечно, это лишь вершина айсберга; в списке на пакетной панели перечислены другие отличные библиотеки на Go, а их количество будет только расти.

Следующая статья: Профилирование программ на Go
Предыдущая статья: Декодер GIF: упражнение по интерфейсам в Go
Индекс блога

GoRu.dev Golang на русском

На сайте представлена адаптированная под русский язык документация языка программирования Golang