ライブラリーとツール
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
- coreos/jetcd - v3に対応します。
- justinsb/jetcd
- cdancy/etcd-rest - jcloudsを使用したv2 APIの完全な実装。
- IBM/etcd-java
Scala
- maciej/etcd-client - v2に対応します。Akka HTTPベースの完全非同期クライアント。
- eiipii/etcdhttpclient - v2に対応します。NettyとScala Futuresを基盤とする非同期HTTPクライアント。
- mingchuno/etcd4s - gRPCでv3に対応し、必要に応じてAkka Streamも使用できます。
Perl
- hexfusion/perl-net-etcd - v3 grpcゲートウェイのHTTP APIに対応します。
- robn/p5-etcd - v2に対応します。
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
- mixer/etcd3 - v3に対応します。
- stianeikeland/node-etcd - v2に対応します(Coffeescriptを使用)。
- lavagetto/nodejs-etcd - v2に対応します。
- deedubs/node-etcd-config - v2に対応します。
Ruby
- iconara/etcd-rb
- jpfuentes2/etcd-ruby
- ranjib/etcd-ruby - v2に対応します。
- davissp14/etcdv3-ruby - v3に対応します。
C
- apache/celix/etcdlib - v2に対応します。
- jdarcy/etcd-api - v2に対応します。
- shafreeck/cetcd - v2に対応します。
C++
- edwardcapriolo/etcdcpp - v2に対応します。
- suryanathan/etcdcpp - v2に対応します(待機機能あり)。
- nokia/etcd-cpp-api - v2に対応します。
- etcd-cpp-apiv3/etcd-cpp-apiv3 - v3に対応します。
Clojure
- aterreno/etcd-clojure
- dwwoelfel/cetcd - v2に対応します。
- rthomas/clj-etcd - v2に対応します。
Erlang
- marshall-lee/etcd.erl - v2に対応します。
- zhongwencool/eetcd - v3以降に対応します(GRPCのみ)。
Elixir
- team-telnyx/etcdex - v3以降に対応します(GRPCのみ)。
.NET
- wangjia184/etcdnet - v2に対応します。
- drusellers/etcetera
- shubhamranjan/dotnet-etcd - v3以降に対応します(GRPCのみ)。
- SimplifyNet/Etcd.Microsoft.Extensions.Configuration
PHP
- linkorb/etcd-php
- activecollab/etcd
- ouqiang/etcd-php - v3 gRPCゲートウェイ用クライアント。
Haskell
R
Nim
Tcl
- efrecon/etcd-tcl - waitを除き、v2に対応します。
Rust
- jimmycuadra/rust-etcd - v2に対応します。
Gradle
- gradle-etcd-rest-plugin - v2に対応します。
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 - クラウド向けに構築された、オープンソースの分散メッセージング・ストリーミングプラットフォーム。