Goブログ

注目すべき外部Goライブラリ

Andrew Gerrand
2011年6月3日

Goの作者はGoの標準ライブラリの改善に尽力してきましたが、より大きなコミュニティは外部ライブラリのエコシステムを成長させてきました。 この記事では、人気のあるGoライブラリとその使用方法について説明します。

Mgo(「マンゴー」と発音)はMongoDBデータベースドライバです。 MongoDBは、ドキュメント指向データベースであり、幅広い用途に適した多くの機能を備えています。 mgoパッケージは、レコードの挿入や更新などの基本的な操作から、より高度なMapReduceGridFS機能まで、MongoDBを操作するための豊富で慣用的なGo APIを提供します。 Mgoには、自動クラスタ検出や結果のプリフェッチなど、多くの優れた機能があります。詳細とサンプルコードについては、mgoホームページをご覧ください。 大規模なデータセットを扱う場合、Go、MongoDB、およびmgoは強力な組み合わせです。

Authcookieは、ユーザー認証Cookieを生成および検証するためのWebライブラリです。 これにより、Webサーバーは、特定のユーザーに関連付けられ、指定された期間後に期限切れになる、暗号化によって保護されたトークンを配布できます。 シンプルなAPIを備えているため、既存のWebアプリケーションに認証を簡単に追加できます。 詳細とサンプルコードについては、READMEファイルをご覧ください。

Go-charsetは、Goの標準UTF-8エンコーディングとさまざまな文字セット間の変換をサポートします。 go-charsetパッケージは、変換を行うio.Readerとio.Writerを実装しているため、既存のリーダーとライター(ネットワーク接続やファイル記述子など)をラップして、他の文字エンコーディングを使用するシステムと簡単に通信できます。

Go-socket.ioは、Socket.IOのGo実装です。Socket.IOは、WebサーバーがWebブラウザにメッセージをプッシュできるようにするクライアント/サーバーAPIです。 ユーザーのブラウザの機能に応じて、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インターフェースの練習
ブログインデックス