1. ホーム
  2. スクリプト・コラム
  3. ゴラン

Golang開発ライブラリ集と役割説明

2022-02-07 16:52:56

メールを作成・送信するための golang ライブラリ

douceur - HTMLメールにインラインCSSを導入する。
email - 堅牢で柔軟なメールライブラリ
Go-dkim - 電子メールの署名と検証を行うための DKIM ライブラリ
Go-imap - クライアントとサーバー用の IMAP ライブラリ
Go-message - Touchdown インターネットメッセージフォーマットとメール用ライブラリ
Gomail - Gomail はメール送信のための非常にシンプルで強力なライブラリです。
Hectane - HTTP API を備えた軽量な SMTP クライアント
hermes - きれいで反応の良い HTML メールを生成するためのパッケージ
MailHog - ウェブおよび API インターフェースを備えた電子メールおよび SMTP テストツール
SendGrid - SendGridのメール送信のためのGo言語ライブラリ
smtp - SMTP サーバプロトコルのステートマシン

日付と時刻を処理するための golang ライブラリ

carbon - 多くの便利なメソッドを持つ、シンプルな時刻拡張モジュール PHP Carbon ライブラリへのインターフェイス
durafmt - 連続した時刻のフォーマット
feiertage - イースター、感謝祭などドイツの祝祭日を計算する関数群。
Go-persian-calendar - 太陽暦
Goweek - 1週間を処理するライブラリ
now - Now は Go 言語の時間ツールセットです。
NullTime - 時間がNULLになるライブラリ
timeutil - Go言語の時間パッケージを拡張し、時間間隔や書式設定などの便利な機能を提供します。

データベースの移行

darwin - データベーススキーマ進化ライブラリ
Go-fixtures - DjanGo ライクなフィクスチャ、Golang 用の組み込みデータベース/SQL ライブラリ
Goose - データベース移行ツール。SQLやGo言語のスクリプトをインクリメンタルに記述することでデータベースを管理できる
Gormigrate - Gorm ORMのためのデータベーススキーママイグレーションヘルパーツール。
migrate - データベースの移行。コマンドラインとGo言語ライブラリ
pravasan - シンプルなマイグレーション、現在はMySQLをサポートしていますが、近々Postgres, SQLite, MonGoDBなどをサポートする予定です。
soda - MySQL、PostgreSQL、SQLiteのデータベース移行、作成、ORMなど。
sql-migrate - Go-bindata を使ってアプリケーションにデータベース移行を埋め込むことができるデータベース移行ツール

データベースのGo言語実装

BigCache - ギガバイトデータ用の効率的なキー/バリューキャッシュ
bolt - 基盤となるキー・バリュー・データベース
buntdb - 定義可能なインデックスと空間を持つ、高速で埋め込み可能なインメモリキーバリューデータベース
cache2Go - インメモリストアベースのキーバリューキャッシュ、タイムアウトベースの自動障害対応
cockroach - スケーラブルで一貫性のあるトランザクションデータベース
couchcache - CouchbaseをベースとしたRESTfulなキャッシングマイクロサービス
dgraph - スケーラブル、分散、低レイテンシ、高スループットのグラフデータベース
diskv - ディスクバック機能を持つ永続的なキーバリューストア
eliasdb - 依存性のない、モノベースのグラフデータベース、REST API、フレーズ検索、SQL ライクなクエリ言語を備えています。
forestdb - ForestDB の Go 言語による言い訳。
GCache - キャッシュエクスパイア、LFU、LRU、ARC をサポートしたキャッシュライブラリです。
geocache - 分散配置アプリケーションのためのインメモリストレージベースのキャッシュ
Go-cache - スタンドアローンアプリケーション用のインメモリKey-Valueストレージ/キャッシュライブラリ
Goleveldb - Go 言語を使って実装された LevelDB。
groupcache - Groupcache はキャッシュとキャッシュパディングのライブラリで、memcached の代わりとして多くの場合使用されます。
influxdb - メトリクス、イベント、リアルタイム解析のためのスケーラブルなデータベース
ledisdb - Ledisdb は Redi に似たハイパフォーマンスな NoSQL データベースです。
leviGo - LeviGo は LevelDB の Go 言語ラッパーです。
moss - Moss は 100% Go で実装されたシンプルな LSM キーバリューストレージエンジンです。
piladb - スタックアーキテクチャに基づいた、軽量なRESTfulデータベースエンジン。
prometheus - モニタリングシステム、時系列データベース
rqlite - SQLite をベースとした軽量分散型リレーショナルデータベース
Scribble - 小さなJSONファイルストレージ
tempdb - 一時的なデータのためのキーと値のペアのストレージ
tidb - TiDBは分散型SQLデータベースです。Google F1 にインスパイアされた
tiedot - Go言語ベースのNoSQLデータベース
Tile38 - ジオロケーションデータベースとリアルタイムのジオフェンシング

golangの一般的なデータ構造とアルゴリズム

binpacker - カスタムバイナリデータストリームを構築するためのバイナリデータパケットアンパッカツール
bit - Go 言語の集約データ構造。ビット操作の追加機能を提供する
bitset - bitset を実装した Go 言語パッケージ。
bloom - ブルームフィルタの Go による実装。
bloom - ブルームフィルタのGo言語実装
boomfilters - 大量の連続データを扱うための確率統計的なデータ構造。
count-min-log - Count-Min-Log スケッチアルゴリズムの Go 言語実装 (Count-Min スケッチアルゴリズムに似ているが、より少ないメモリしか使わない)。
cuckoofilter - カッコーフィルタ:goで実装されたカウントブルームフィルタの代替品です。
encoding - 整数圧縮ライブラリ
Go-adaptive-radix-tree - 適応型ベースツリーの Go 言語実装
Go-datastructures - 便利で高性能な、スレッドセーフなデータ構造一式。
Go-geoindex - インメモリストレージベースの地理インデックス
Go-rquad - 有効なポイントロケーションとドメインディスカバリーをサポートしたリージョン クワッドツリー
Gods - Go 言語のデータ構造、コンテナ、コレクション、リスト、スタック、キーと値のペア、BidiMap、ツリー、HashSet など。
Golang-set - スレッドセーフおよび非スレッドセーフの高性能なコレクション
Goskiplist - Go 言語によるジャンプテーブルの実装
Gota - go 言語用のデータフレーム、シーケンス、データノイズメソッドを実装しています。
hilbert - 空間を満たす曲線(ヒルベルト曲線やピアノ曲線など)と値を対応させるためのライブラリ。
hyperloglog - スパース、LogLog-Betaバイアス補正、TailCut空間削減を備えたHyperLogLogの実装。
levenshtein - 編集距離 (levenshtein distance) と類似性メトリック、カスタマイズ可能な編集コストと共通の接頭辞に対するウィンクラー的なボーナス。
levenshtein - 編集距離を計算するための Go 言語実装
mafsa - 最小完全ハッシュを用いた MA-FSA の Go 言語による実装
merkletree - データ構造の内容を効率的かつ安全に検証するためのmerkletreeを実装しています。
roaring - ビットセットを圧縮するためのGo言語ライブラリを実装しています。
skiplist - Go 言語によるジャンプテーブルの実装
trie - トライアツリーの Go による実装
ttlcache - Golang 用の期限付きインメモリ LRU string-interface{} マップ
willf/bloom - ブルームフィルタを実装したライブラリ

golang の設定パース用ライブラリです。

config - 環境変数とタグの解析をサポートする、JSON または YAML 設定ラッパー。
configure - JSON、トークンビット、環境変数など、複数の方法で設定できます。
env - 環境変数を Go 言語の構造体にパースします。
envcfg - 環境変数を Go 言語の構造体にパースする。
envconf - 環境変数で設定する
envconfig - 環境変数から設定を読み込む
gcfg - INI 型の設定ファイルを Go 言語の構造体として読み込み、カスタム変数とセクションをサポートする
GoConfig - コマンドライン入力、環境変数、設定ファイルを入力として構造体をパースして初期化する
Godotenv - Ruby ライブラリ dotenv への Go 言語インターフェイス (環境変数を .env 経由で取得)
Gofigure - Go 言語アプリケーションの設定を容易にする
Gone/jconf - モジュラー式JSON設定ツール。メイン設定ファイルがシリアライズするサブモジュールの詳細をすべて知っている必要がなく、設定パラメータ構造とそれを使用するコードをまとめることができる。
hjson - Humanized JSON、プログラマーが使いやすく、読みやすい設定ファイル形式です。より簡単な構文、より少ないエラー、より多くのコメント
inGo - 設定タグをiniのようなファイルに永続化する
ini - INI ファイルを読み書きするためのライブラリ
joshbetz/config - 環境変数、JSONファイルを解析し、SIGHUPに基づき自動的に再読み込みするメッセージ設定ライブラリ
mini - ini ライクなファイルをパースするためのライブラリ
store - 軽量な設定管理
viper - このライブラリは、Go 言語の設定ツールである Viper と呼ばれています。
xdg - XDG 標準に準拠した設定ツールです。

golang 認証および認可ライブラリ

authboss - Web 開発のためのコンポーネント化された認証・認可システム。定型的なコードやハードコーディングを可能な限り排除しようとしています。これにより、新しい Web プロジェクトを作成するたびに、毎回認証認可システムを再作成することなく、プラグアンドプレイで Web 英語の開発を開始することができます。
casbin - アクセス制御モデル (例: ACL、RBAC、ABAC) をサポートする認可ライブラリです。
Go-AWS-Auth - AWSリクエストサイニングライブラリ
Go-jose - JOSE ワーキンググループの JSON Web Token, JSON Web signature, JSON Web encryption 仕様をほぼ完全に実装しています。
Go-oauth2-server - Go で書かれた、スタンドアロンの標準準拠の OAuth2 サーバーです。
Go.auth - Go 言語ウェブ アプリケーションのための認証 API。
Gologin - OAuth1、OAuth2認証と併用可能なサービス
Gorbac - Goで実装された軽量なRBAC
Goth - OAuth と OAuth2 を使うための、クリーンでイディオムな方法を提供します。
httpauth - HTTP 認証ミドルウェア
jwt - JSON ウェブトークン (JWT) の使いやすい実装です。
jwt-auth - Go 言語 HTTP サーバー用に書かれた JWT jwt ミドルウェアで、複数の設定オプションがあります。
jwt-Go - Go言語で実装されたJSONウェブトークン(JWT)です。
loginsrv - OAuth2 (Github)、htpasswd、osiam、その他のバックエンドを継承したJWTログインのマイクロサービス。

oauth2 - Goauth2 の後継。JWT、Google API、Compute Engine、App Engine を統合的にサポートする汎用的な OAuth 2.0 ライブラリ。
osin - Go言語OAuth2サーバライブラリ
permissions2 - ユーザー、ログイン状況、パーミッションを追跡するためのライブラリ。セキュアクッキーとbcryptを使用します。
session - Go言語によるセッション管理 (Google App Engine - GAEをサポート)
sessions - Go 言語 HTTP サーバー用の、非常にシンプルで高性能、かつ高度にカスタマイズ可能なセッション サービスです。
traefik - 複数のバックエンドをサポートするリバースプロキシとロードバランサライブラリ
yubiGo - Go言語アプリケーションでYubico Yubikeyを統合するためのAPIを提供するYubikeyクライアント

golang の音声操作用ライブラリ

flac - ネイティブ Go FLAC デコーダー
flac - Native Go FLAC デコーダー
gaad - ネイティブ Go AAC ビットストリームパーサ
Go-sox - libsox への Go 言語インターフェース
Go_mediainfo - libmediainfo への Go 言語インターフェイス。
Gosamplerate - libsamplerate への Go 言語インターフェース
id3v2 - 高速で安定した ID3 パースおよび書き込み用ライブラリ
mix - 音楽アプリのためのシーケンスベースのGo言語ミキサー。
mp3 - ネイティブ Go MP3 デコーダー
music-theory - Go で書かれた音楽理論モデル
PortAudio - オーディオI/OライブラリへのGo言語インターフェイス
portmidi - PortMidi への Go 言語インターフェイス。
taglib - taglib への Go 言語インターフェース
vorbis - "native" Go Vorbis デコーダー (CGo を使用しますが、他に依存するものはありません).
waveform - オーディオストリームから波形画像を生成できるパッケージ

golang のコードに他の言語を埋め込むためのパッケージ

aGora - Go に埋め込むことができる動的型付けプログラミング言語
anko - Go で書かれたインタプリタ
binder - Gopher-lua ベースの Lua インターフェース。
gisp - シンプルなLISP
Go-duktape - Duktape JavaScript エンジンへの Go 言語インターフェイス
Go-lua - Lua 5.2 仮想マシン用の純粋な Go 言語インターフェイス
Go-php - PHP 用の Go 言語インターフェイス
Go-python - CPython C-APIへのGo言語インターフェイス
Golua - Lua C API への Go 言語インターフェイス。
Gopher-lua - Go で書かれた Lua 5.1 仮想マシンとコンパイラ
ngaro - Ngaro 仮想マシンの埋め込み可能な実装で、Retro で footsteps を使うことをサポートしています。
otto - Go で書かれた Javascrip インタプリタ
purl - Go 言語を組み込んだ Perl 5.18.2

Go ロギングライブラリ

glg - glg はシンプルで高速、かつ階層的なロギングライブラリです。
glog - 階層的なロギングを行うためのライブラリ
Go-cronowriter - cronolog に似た、現在の日付と時刻に基づいてログファイルを自動で再帰的に書き込むためのライブラリ。
Go-log - マルチプロセッサをサポートし、ロギング階層を持つライブラリ
Go-log - Log4jのGo言語実装
Go-logger - シンプルなロギングツール、ロギング階層をサポート
Gologger - カラフルなコンソール、イージーコントロール、ファイル、Elasticsearch にログを記録できる使いやすいロギングライブラリです。
Gomol - 複数の出力をサポートし、その出力を拡張できる構造化されたロギングモジュール
Gone/log - 高速、スケーラブル、フル機能、標準ライブラリ互換のロギングライブラリ
log - 構造化ロギングライブラリ
log - シンプルで設定可能、拡張可能な構造化ロギングライブラリ
log-voyage - Goで書かれたフル機能のロギングSaaS
log15 - シンプルで強力なロギングライブラリ
logdump - 階層型ロギングライブラリサポート
logex - トレースと階層をサポートした、標準ライブラリをベースにラップされたGo言語のロギングライブラリ
logger - 最小限のロギングライブラリ
logrus - 構造化されたロギングをサポートするロギングツール。
logrusly - logrusがエラーをLogglyに送信するためのプラグイン。
logutils - Go言語標準のロギングツールをより良くするための拡張機能です。
logxi - 非常に高速であなたを幸せにする12要素のアプリログツール
lumberjack - io.WriteCloserを実装したシンプルな反復ロギングツール。
mlog - 5つのレベルに分割でき、stdout/stderr出力をサポートするオプションの循環ログファイル記録機能を持つ、シンプルなログモジュール。
ozzo-log - ログの重要度レベル、分類、フィルタリングをサポートする高性能なロギングライブラリです。フィルタリングされたメッセージは異なる宛先 (例: コンソール、ネットワーク、メールボックス) に送ることができます。
seelog - 柔軟で、分離された、フォーマットされたロギングライブラリ
slf - Structured Logging Facade (SLF) (SLF4Jに似ていますが、構造化されておりGo言語用に設計されています)
slog - Go言語用のSLF(Structured Logging Facade)です。
spew - デバッグを助けるために、Go 言語のデータ構造に対してきちんとしたプリント関数を実装しています。
stdlog - Stdlog は階層的なロギング機能を提供するオブジェクト指向のライブラリで、タイミングタスクに便利です。
tail - この Go 言語パッケージは、BSD tail の機能をエミュレートしようとするものです。
xlog - ログレベル制御、複数のログターゲット、カスタムロギングフォーマットを備えたプラグインアーキテクチャと柔軟なログ記録システム
xlog - ネット/コンテキストを意識したHTTPハンドラのための構造化ロギング、柔軟な配布が可能
zap - 高速、構造化、階層化されたロギングリポジトリ
zerolog - ゼロアロケーションのJSONログ。

フォームを操作するための golang ライブラリ

bind - フォームのデータを任意の Go 変数にバインドします。
バインド - フォームやネット/HTTPリクエストからのJSONデータを構造体にバインドします。
conform - ユーザーの入力を検査し、構造体タグに基づいてデータをクリーンアップします。
フォーム - url からデータを Go 言語変数にデコードし、Go 言語変数を url にエンコードします。 Dual Array と Full map をサポートします。
formam - フォームデータを構造体にデコードする
forms - フレームワークに依存しないフォーム/JSONデータ解析検証ライブラリで、マルチパートフォームとドキュメントをサポートします。
Gorilla/csrf - Go 言語ウェブアプリケーション用の CSRF 対策。
nosurf - CSRF防御ミドルウェア

メッセージングシステムを実装するための Go ライブラリ

CentrifuGo - リアルタイムメッセージングサーバー
dbus - D-Bus への Go 言語インターフェイス
drone-line - パッケージ、docker、Drone CI経由でLineの通知を送信する
emitter - ワイルドカード、アサーション、送信取り消しなどの素晴らしい機能を備えたGoの方法でイベントメッセージを送信します。
EventBus - 非同期をサポートした軽量なイベントライブラリ
gaurun-client - Go で書かれたガウルンクライアント
Glue - 堅牢な Go と Javascript のソケットライブラリ (Socket.io の代わりとして使用可能)。
Go-longpoll - ロングポーリングに対応したパブリッシュとサブスクライブ
Go-notify - デスクトップ通知仕様のネイティブ実装
Go-nsq - 公式 NSQ Go 言語ライブラリ
Go-socket.io - Go 言語の socket.io ライブラリ、リアルタイム アプリケーション フレームワーク。
Go-vitotrol - Viessmann Vitotrol サービス用の Go 言語クライアント。
Gollum - 異なるソースからのメッセージを集約し、ターゲットにブロードキャストする n:m マルチプレクサ
Golongpoll - HTTP ロングポーリングサーバライブラリ。Web 公開と購読をより簡単にします。
Goose - Go で実装されたサーバーサイドのイベント送信機能
Gopush-cluster - Gopush-cluster はクラスタリングをサポートする comet サービスの Go 言語による実装です (websocket と tcp プロトコルをサポート)。
Gorush - APNs2とGoogle GCMを使用した通知プッシュサーバー。
guble - プッシュ通知 (Google Firebase Cloud Messaging, Apple Push Notification services, SMS), ウェブソケット, REST API を使ったメッセージングサーバ。分散操作とメッセージの永続化機能を提供する。
機械 - 分散メッセージ処理に基づく非同期タスクキュー
manGos - Nanomsg ("Scalable Protocols") の純粋な Go 言語による実装。
melody - ブロードキャストや自動的なピング/ポン処理を含む、ウェブソケットセッションを扱う最小限のフレームワーク
NATS Go Client - 軽量、高性能なパブリッシュサブスクライブと分散メッセージキューシステム、Go言語ライブラリ。
nsq-event-bus - NSQ トピックとチャネルのシンプルなラッパー。
oplog - REST API 用のネイティブな oplog/replication システムです。
pubsub - シンプルな pubsub パッケージ
RapidMQ - RapidMQ は軽量で信頼性の高いネイティブのメッセージキュー管理ライブラリです。
sarama - Apache Kafka用ライブラリ
Uniqush-Push - サーバサイドからモバイルクライアントにメッセージをプッシュするためのRedisベースのユニファイドプッシュサービス
zmq4 - ZeroMQ バージョン 4 用の GO 言語インターフェイス。バージョン 3 およびバージョン 2 でも利用可能

以上、Golang開発ライブラリ集とその説明でした。Golangのライブラリ集と説明については、Script Houseの他の関連記事もフォローしてください