本文へ移動

ライブラリーとツール

etcdのツールとクライアントライブラリーの一覧

以下に挙げるサードパーティーのライブラリーやツール(https://github.com/etcd-io 以外で公開されているもの)は、etcdチームによるテストや保守の対象外です。利用する前に、それぞれのドキュメントを読み、調査することを推奨します。

ツール

  • etcdctl - etcd用コマンドラインクライアント。
  • etcd-dump - etcdのダンプとリストアを行うコマンドラインユーティリティー。
  • etcd-fs - etcd用のFUSEファイルシステム。
  • etcddir - etcdとローカルディレクトリをリアルタイムに同期します。WindowsとLinuxで動作します。
  • etcd-browser - AngularJSを使用した、etcd用のWebベースのキー・バリューエディター。
  • etcd-lock - etcdを使用したマスター選出と分散読み書きロックの実装。v2に対応します。
  • etcd-console - PHPを使用した、etcd用のWebベースのキー・バリューエディター。
  • etcd-viewer - Javaで書かれた、etcdキー・バリューストアのエディター兼ビューアー。
  • etcdtool - etcdディレクトリのJSON/YAML/TOML形式でのエクスポート、インポート、編集と、JSONスキーマによるディレクトリの検証を行います。
  • etcdloadtest - etcdバージョン3.0以降向けのコマンドライン負荷テストクライアント。
  • etcd-tui - etcdデータベースを操作するためのモダンなターミナルユーザーインターフェース(TUI)。キーの参照、値の表示、データの絞り込み、etcdクラスターの管理をターミナルから直接行えます。
  • etcdfinder - 即時検索を備えた、etcd用の高速でモダンなWeb UI。etcd v2とv3の両方に対応します。
  • lucas - Kubernetesのetcd3.0以降のクラスター向けの、Webベースのキー・バリュービューアー。
  • etcd-manager - モダンで効率的な、複数のプラットフォームに対応する無料のetcd 3.x GUI兼クライアントツール。Windows、Linux、Macで利用できます。
  • etcd-backup-restore - etcdの定期的な増分バックアップとリストアを行うユーティリティー。
  • etcd-druid - etcdクラスターのデプロイと導入後の運用を管理するKubernetesオペレーター。
  • etcdadm - etcdクラスターを運用するためのコマンドラインツール。
  • etcd-defrag - より使いやすく、賢く動作するetcdのデフラグメンテーションツール。
  • etcdhelper - etcd用のIntelliJプラットフォームプラグイン。

ライブラリー

以下では、etcdのクライアントライブラリーを言語別に紹介します。

Go

  • etcd/client/v3 - 公式に保守されているv3用Goクライアント。
  • go-etcd - 非推奨となった公式クライアント。古いetcd(2.0.0未満)では役立つ場合があります。
  • encWrapper - etcdクライアントのKeys API/KV向けの暗号化ラッパー。

Java

Scala

  • maciej/etcd-client - v2に対応します。Akka HTTPベースの完全非同期クライアント。
  • eiipii/etcdhttpclient - v2に対応します。NettyとScala Futuresを基盤とする非同期HTTPクライアント。
  • mingchuno/etcd4s - gRPCでv3に対応し、必要に応じてAkka Streamも使用できます。

Perl

Python

  • kragniz/python-etcd3 - v3用クライアント。
  • jplana/python-etcd - v2に対応します。
  • russellhaering/txetcd - Twisted用のPythonライブラリー。
  • cholcombe973/autodock - Dockerのデプロイ自動化ツール。
  • lisael/aioetcd - (Python 3.4以降)Asyncioコルーチンクライアント。v2に対応します。
  • txaio-etcd - Twisted(現時点)とasyncio(将来)向けの、etcd v3専用の非同期クライアントライブラリー。
  • dims/etcd3-gateway - HTTP grpcゲートウェイを使用するetcd v3 APIライブラリー。
  • aioetcd3 - (Python 3.6以降)asyncio用のetcd v3 API。
  • Revolution1/etcd3-py - (python2.7およびpython3.5以降)gRPC-JSON-Gatewayを使用するetcd v3用Pythonクライアント。

Node

Ruby

C

C++

Clojure

Erlang

Elixir

.NET

PHP

Haskell

R

Nim

Tcl

Rust

Gradle

Lua

  • api7/lua-resty-etcd - v2およびv3(grpcゲートウェイのHTTP API)に対応します。

デプロイツール

Chefとの連携

Chefクックブック

BOSHリリース

etcdを使用しているプロジェクト

  • etcd Raftの利用例 - etcdのraftライブラリー実装を使用するプロジェクト。
  • Apache APISIX - etcdを設定ストアとして使用するAPIゲートウェイ。
  • apache/celix - OSGi仕様をCとC++向けに適応した実装。
  • binocarlos/yoda - etcd + ZeroMQ
  • blox/blox - AWS ECSを利用したコンテナー管理とオーケストレーションのためのオープンソースプロジェクト群。
  • calavera/active-proxy - etcdで設定するHTTPプロキシ。
  • chain/chain - 高い拡張性を持つ許可型ブロックチェーンネットワークの運用と接続のために設計されたソフトウェア。
  • derekchiang/etcdplus - etcd上に構築された分散同期プリミティブ群。
  • go-discover - Goによるサービスディスカバリー。
  • gleicon/goreman - etcdに対応した、Go製Foremanクローンのブランチ。
  • garethr/hiera-etcd - etcdを使用するPuppet hieraバックエンド。
  • mattn/etcd-vim - vim内からキーをSETおよびGETします。
  • mattn/etcdenv - etcd連携機能を備えた「env」shebang。
  • kelseyhightower/confd - テンプレートとetcdのデータを使用して、ローカルアプリケーションの設定ファイルを管理します。
  • configdb - 任意のデータベースバックエンド上にRESTによるリレーショナルな抽象化を提供し、設定やインベントリーの保存を目的とします。
  • kubernetes/kubernetes - Googleが発表したコンテナークラスターマネージャー。
  • mailgun/vulcand - etcdを設定バックエンドとして使用するHTTPプロキシ。
  • duedil-ltd/discodns - etcdを名前とレコードのデータベースとして使用するシンプルなDNSネームサーバー。
  • skynetservices/skydns - RFC準拠のDNSサーバー。
  • xordataexchange/crypt - GPG暗号化を使用して、etcdに値を安全に保存します。
  • spf13/viper - Go用の設定ライブラリー。ENV、pflags、ファイル、etcdから値を読み込み、必要に応じて暗号化できます。
  • lytics/metafora - Go用の分散タスクライブラリー。
  • ryandoyle/nss-etcd - etcdから名前を解決するためのGNU libc NSSモジュール。
  • Gru - Goでオーケストレーションを容易にします。
  • Vitess - MySQLの水平スケーリングを実現するデータベースクラスターシステム。
  • lclarkmichalek/etcdhcp - 永続化と協調にetcdを使用するDHCPサーバー。
  • openstack/networking-vpp - FD.io VPPデータプレーン を制御し、OpenStack クラウドの仮想ネットワークを提供するネットワークドライバー。
  • OpenStack - OpenStackのサービスは、基盤サービスとしてetcdに依存できます。
  • CoreDNS - プラグインを連結して処理するDNSサーバー。CNCFとKubernetesの一部です。
  • Uber M3 - M3:Uberによる、Prometheus向けのオープンソースの大規模メトリクスプラットフォーム。
  • Rook - Kubernetes向けのストレージオーケストレーション。
  • Patroni - ZooKeeper、etcd、Consulを使用するPostgreSQL高可用性のテンプレート。
  • Trillian - データストレージ層から内容を提供するMerkle木の実装で、極めて大きな木にも拡張できます。
  • purpleidea/mgmt - 次世代の分散型、イベント駆動型の並列設定管理。
  • Portworx/kvdb - Portworxのクラスター設定を保存する内部kvdb。
  • Apache Pulsar - クラウド向けに構築された、オープンソースの分散メッセージング・ストリーミングプラットフォーム。