mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00

Lock implementation for etcd. It has three go routines: a) acquire - loop that watches for the lock to be free and tries to acquire it. b) watch - to watch for lock changes c) refresh - to refresh the ttl when the lock is acquired All the changes in lock ownership are notified on the events channel. Any feedback welcome!
108 lines
5.1 KiB
Markdown
108 lines
5.1 KiB
Markdown
## Libraries and Tools
|
|
|
|
**Tools**
|
|
|
|
- [etcdctl](https://github.com/coreos/etcdctl) - A command line client for etcd
|
|
- [etcd-backup](https://github.com/fanhattan/etcd-backup) - A powerful command line utility for dumping/restoring etcd - Supports v2
|
|
- [etcd-dump](https://npmjs.org/package/etcd-dump) - Command line utility for dumping/restoring etcd.
|
|
- [etcd-fs](https://github.com/xetorthio/etcd-fs) - FUSE filesystem for etcd
|
|
- [etcd-browser](https://github.com/henszey/etcd-browser) - A web-based key/value editor for etcd using AngularJS
|
|
- [etcd-lock](https://github.com/datawisesystems/etcd-lock) - A lock implementation for etcd
|
|
|
|
**Go libraries**
|
|
|
|
- [go-etcd](https://github.com/coreos/go-etcd) - Supports v2
|
|
|
|
**Java libraries**
|
|
|
|
|
|
- [boonproject/etcd](https://github.com/boonproject/boon/blob/master/etcd/README.md) - Supports v2, Async/Sync and waits
|
|
- [justinsb/jetcd](https://github.com/justinsb/jetcd)
|
|
- [diwakergupta/jetcd](https://github.com/diwakergupta/jetcd) - Supports v2
|
|
- [jurmous/etcd4j](https://github.com/jurmous/etcd4j) - Supports v2
|
|
- [AdoHe/etcd4j](http://github.com/AdoHe/etcd4j) - Supports v2 (enhance for real production cluster)
|
|
|
|
**Python libraries**
|
|
|
|
- [jplana/python-etcd](https://github.com/jplana/python-etcd) - Supports v2
|
|
- [russellhaering/txetcd](https://github.com/russellhaering/txetcd) - a Twisted Python library
|
|
- [cholcombe973/autodock](https://github.com/cholcombe973/autodock) - A docker deployment automation tool
|
|
|
|
**Node libraries**
|
|
|
|
- [stianeikeland/node-etcd](https://github.com/stianeikeland/node-etcd) - Supports v2 (w Coffeescript)
|
|
- [lavagetto/nodejs-etcd](https://github.com/lavagetto/nodejs-etcd) - Supports v2
|
|
|
|
**Ruby libraries**
|
|
|
|
- [iconara/etcd-rb](https://github.com/iconara/etcd-rb)
|
|
- [jpfuentes2/etcd-ruby](https://github.com/jpfuentes2/etcd-ruby)
|
|
- [ranjib/etcd-ruby](https://github.com/ranjib/etcd-ruby) - Supports v2
|
|
|
|
**C libraries**
|
|
|
|
- [jdarcy/etcd-api](https://github.com/jdarcy/etcd-api) - Supports v2
|
|
|
|
**C++ libraries**
|
|
- [edwardcapriolo/etcdcpp](https://github.com/edwardcapriolo/etcdcpp) - Supports v2
|
|
|
|
**Clojure libraries**
|
|
|
|
- [aterreno/etcd-clojure](https://github.com/aterreno/etcd-clojure)
|
|
- [dwwoelfel/cetcd](https://github.com/dwwoelfel/cetcd) - Supports v2
|
|
- [rthomas/clj-etcd](https://github.com/rthomas/clj-etcd) - Supports v2
|
|
|
|
**Erlang libraries**
|
|
|
|
- [marshall-lee/etcd.erl](https://github.com/marshall-lee/etcd.erl)
|
|
|
|
**.Net Libraries**
|
|
|
|
- [drusellers/etcetera](https://github.com/drusellers/etcetera)
|
|
|
|
**PHP Libraries**
|
|
|
|
- [linkorb/etcd-php](https://github.com/linkorb/etcd-php)
|
|
|
|
**Haskell libraries**
|
|
|
|
- [wereHamster/etcd-hs](https://github.com/wereHamster/etcd-hs)
|
|
|
|
A detailed recap of client functionalities can be found in the [clients compatibility matrix][clients-matrix.md].
|
|
|
|
[clients-matrix.md]: https://github.com/coreos/etcd/blob/master/Documentation/clients-matrix.md
|
|
|
|
**Chef Integration**
|
|
|
|
- [coderanger/etcd-chef](https://github.com/coderanger/etcd-chef)
|
|
|
|
**Chef Cookbook**
|
|
|
|
- [spheromak/etcd-cookbook](https://github.com/spheromak/etcd-cookbook)
|
|
|
|
**BOSH Releases**
|
|
|
|
- [cloudfoundry-community/etcd-boshrelease](https://github.com/cloudfoundry-community/etcd-boshrelease)
|
|
- [cloudfoundry/cf-release](https://github.com/cloudfoundry/cf-release/tree/master/jobs/etcd)
|
|
|
|
**Projects using etcd**
|
|
|
|
- [binocarlos/yoda](https://github.com/binocarlos/yoda) - etcd + ZeroMQ
|
|
- [calavera/active-proxy](https://github.com/calavera/active-proxy) - HTTP Proxy configured with etcd
|
|
- [derekchiang/etcdplus](https://github.com/derekchiang/etcdplus) - A set of distributed synchronization primitives built upon etcd
|
|
- [go-discover](https://github.com/flynn/go-discover) - service discovery in Go
|
|
- [gleicon/goreman](https://github.com/gleicon/goreman/tree/etcd) - Branch of the Go Foreman clone with etcd support
|
|
- [garethr/hiera-etcd](https://github.com/garethr/hiera-etcd) - Puppet hiera backend using etcd
|
|
- [mattn/etcd-vim](https://github.com/mattn/etcd-vim) - SET and GET keys from inside vim
|
|
- [mattn/etcdenv](https://github.com/mattn/etcdenv) - "env" shebang with etcd integration
|
|
- [kelseyhightower/confd](https://github.com/kelseyhightower/confd) - Manage local app config files using templates and data from etcd
|
|
- [configdb](https://git.autistici.org/ai/configdb/tree/master) - A REST relational abstraction on top of arbitrary database backends, aimed at storing configs and inventories.
|
|
- [scrz](https://github.com/scrz/scrz) - Container manager, stores configuration in etcd.
|
|
- [fleet](https://github.com/coreos/fleet) - Distributed init system
|
|
- [GoogleCloudPlatform/kubernetes](https://github.com/GoogleCloudPlatform/kubernetes) - Container cluster manager.
|
|
- [mailgun/vulcand](https://github.com/mailgun/vulcand) - HTTP proxy that uses etcd as a configuration backend.
|
|
- [duedil-ltd/discodns](https://github.com/duedil-ltd/discodns) - Simple DNS nameserver using etcd as a database for names and records.
|
|
- [skynetservices/skydns](https://github.com/skynetservices/skydns) - RFC compliant DNS server
|
|
- [xordataexchange/crypt](https://github.com/xordataexchange/crypt) - Securely store values in etcd using GPG encryption
|
|
- [spf13/viper](https://github.com/spf13/viper) - Go configuration library, reads values from ENV, pflags, files, and etcd with optional encryption
|