Libraries and tools

A listing of etcd tools and client libraries

Note that third-party libraries and tools (not hosted on https://github.com/etcd-io) mentioned below are not tested or maintained by the etcd team. Before using them, users are recommended to read and investigate them.

Tools

  • etcdctl - A command line client for etcd
  • etcd-dump - Command line utility for dumping/restoring etcd.
  • etcd-fs - FUSE filesystem for etcd
  • etcddir - Realtime sync etcd and local directory. Work with windows and linux.
  • etcd-browser - A web-based key/value editor for etcd using AngularJS
  • etcd-lock - Master election & distributed r/w lock implementation using etcd - Supports v2
  • etcd-console - A web-base key/value editor for etcd using PHP
  • etcd-viewer - An etcd key-value store editor/viewer written in Java
  • etcdtool - Export/Import/Edit etcd directory as JSON/YAML/TOML and Validate directory using JSON schema
  • etcdloadtest - A command line load test client for etcd version 3.0 and above.
  • lucas - A web-based key-value viewer for kubernetes etcd3.0+ cluster.
  • etcd-manager - A modern, efficient, multi-platform and free etcd 3.x GUI & client tool. Available for Windows, Linux and Mac.
  • etcd-backup-restore - Utility to periodically and incrementally backup and restore the etcd.
  • etcd-druid - A Kubernetes operator to deploy etcd clusters and manage day-2 operations.
  • etcdadm - A command-line tool for operating an etcd cluster.
  • etcd-defrag - An easier to use and smarter etcd defragmentation tool.
  • etcdhelper - An intellij platform plugin for etcd.

Libraries

The sections below list etcd client libraries by language.

Go

  • etcd/client/v3 - the officially maintained Go client for v3
  • etcd/client/v2 - the officially maintained Go client for v2
  • go-etcd - the deprecated official client. May be useful for older (<2.0.0) versions of etcd.
  • encWrapper - encWrapper is an encryption wrapper for the etcd client Keys API/KV.

Java

Scala

Perl

Python

Node

Ruby

C

C++

Clojure

Erlang

Elixir

.NET

PHP

Haskell

R

Nim

Tcl

Rust

Gradle

Lua

Deployment tools

Chef integrations

Chef cookbooks

BOSH releases

Projects using etcd

  • etcd Raft users - projects using etcd’s raft library implementation.
  • apache/celix - an implementation of the OSGi specification adapted to C and C++
  • binocarlos/yoda - etcd + ZeroMQ
  • blox/blox - a collection of open source projects for container management and orchestration with AWS ECS
  • calavera/active-proxy - HTTP Proxy configured with etcd
  • chain/chain - software designed to operate and connect to highly scalable permissioned blockchain networks
  • derekchiang/etcdplus - A set of distributed synchronization primitives built upon etcd
  • go-discover - service discovery in Go
  • gleicon/goreman - Branch of the Go Foreman clone with etcd support
  • garethr/hiera-etcd - Puppet hiera backend using etcd
  • mattn/etcd-vim - SET and GET keys from inside vim
  • mattn/etcdenv - “env” shebang with etcd integration
  • kelseyhightower/confd - Manage local app config files using templates and data from etcd
  • configdb - A REST relational abstraction on top of arbitrary database backends, aimed at storing configs and inventories.
  • kubernetes/kubernetes - Container cluster manager introduced by Google.
  • mailgun/vulcand - HTTP proxy that uses etcd as a configuration backend.
  • duedil-ltd/discodns - Simple DNS nameserver using etcd as a database for names and records.
  • skynetservices/skydns - RFC compliant DNS server
  • xordataexchange/crypt - Securely store values in etcd using GPG encryption
  • spf13/viper - Go configuration library, reads values from ENV, pflags, files, and etcd with optional encryption
  • lytics/metafora - Go distributed task library
  • ryandoyle/nss-etcd - A GNU libc NSS module for resolving names from etcd.
  • Gru - Orchestration made easy with Go
  • Vitess - Vitess is a database clustering system for horizontal scaling of MySQL.
  • lclarkmichalek/etcdhcp - DHCP server that uses etcd for persistence and coordination.
  • openstack/networking-vpp - A networking driver that programs the FD.io VPP dataplane to provide OpenStack cloud virtual networking
  • OpenStack - OpenStack services can rely on etcd as a base service.
  • CoreDNS - CoreDNS is a DNS server that chains plugins, part of CNCF and Kubernetes
  • Uber M3 - M3: Uber’s Open Source, Large-scale Metrics Platform for Prometheus
  • Rook - Storage Orchestration for Kubernetes
  • Patroni - A template for PostgreSQL High Availability with ZooKeeper, etcd, or Consul
  • Trillian - Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees.
  • Apache APISIX - Apache APISIX is a dynamic, real-time, high-performance API gateway.
  • purpleidea/mgmt - Next generation distributed, event-driven, parallel config management!
  • Portworx/kvdb - The internal kvdb for storing Portworx cluster configuration.
  • Apache Pulsar - Apache Pulsar is an open-source, distributed messaging and streaming platform built for the cloud.