Browse Source

Merge pull request #441 from lavagetto/matrix

docs(clients-matrix.md): Introducing the library features matrix.
Brandon Philips 12 years ago
parent
commit
0b47d6888d
2 changed files with 48 additions and 2 deletions
  1. 46 0
      Documentation/clients-matrix.md
  2. 2 2
      Documentation/libraries-and-tools.md

+ 46 - 0
Documentation/clients-matrix.md

@@ -0,0 +1,46 @@
+# Client libraries support matrix for etcd
+
+As etcd features support is really uneven between client libraries, a compatibility matrix can be important.
+We will consider in detail only the features of clients supporting the v2 API. Clients still supporting the v1 API *only* are listed below.
+
+## v1-only clients
+
+Clients supporting only the API version 1
+
+- [justinsb/jetcd](https://github.com/justinsb/jetcd) Java
+- [transitorykris/etcd-py](https://github.com/transitorykris/etcd-py) Python
+- [russellhaering/txetcd](https://github.com/russellhaering/txetcd) Python
+- [iconara/etcd-rb](https://github.com/iconara/etcd-rb) Ruby
+- [jpfuentes2/etcd-ruby](https://github.com/jpfuentes2/etcd-ruby) Ruby
+- [aterreno/etcd-clojure](https://github.com/aterreno/etcd-clojure) Clojure
+- [marshall-lee/etcd.erl](https://github.com/marshall-lee/etcd.erl) Erlang
+
+
+## v2 clients
+
+The v2 API has a lot of features, we will categorize them in a few categories:
+
+- **HTTPS Auth**: Support for SSL-certificate based authentication
+- **Reconnect**: If the client is able to reconnect automatically to another server if one fails.
+- **Mod/Lock**: Support for the locking module
+- **Mod/Leader**: Support for the leader election module
+- **GET,PUT,POST,DEL Features**: Support for all the modifiers when calling the etcd server with said HTTP method.
+
+
+### Supported features matrix
+
+| Client| [go-etcd](https://github.com/coreos/go-etcd) | [jetcd](https://github.com/diwakergupta/jetcd) | [python-etcd](https://github.com/jplana/python-etcd) | [node-etcd](https://github.com/stianeikeland/node-etcd) | [nodejs-etcd](https://github.com/lavagetto/nodejs-etcd) | [etcd-ruby](https://github.com/ranjib/etcd-ruby) | [etcd-api](https://github.com/jdarcy/etcd-api) | [cetcd](https://github.com/dwwoelfel/cetcd) |  [clj-etcd](https://github.com/rthomas/clj-etcd) |
+| --- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| **HTTPS Auth**    | Y | Y | Y | Y | Y | - | - | - | - |
+| **Reconnect**     | Y | - | Y | - | - | - | Y | - | - |
+| **Mod/Lock**      | Y | - | Y | - | - | - | - | - | - |
+| **Mod/Leader**    | Y | - | - | - | - | - | - | - | - |
+| **GET Features**  | F | B | F | F | F | F | B | F | G |
+| **PUT Features**  | F | B | F | F | F | F | G | F | G |
+| **POST Features** | F | - | F | - | F | F | - | - | - |
+| **DEL Features**  | F | B | F | F | F | F | B | G | B |
+
+**Legend**
+
+**F**: Full support **G**: Good support **B**: Basic support
+**Y**: Feature supported  **-**: Feature not supported

+ 2 - 2
Documentation/libraries-and-tools.md

@@ -44,6 +44,8 @@
 
 
 - [marshall-lee/etcd.erl](https://github.com/marshall-lee/etcd.erl)
 - [marshall-lee/etcd.erl](https://github.com/marshall-lee/etcd.erl)
 
 
+A detailed recap of client functionalities can be found in the [clients compatibility matrix][clients-matrix.md].
+
 **Chef Integration**
 **Chef Integration**
 
 
 - [coderanger/etcd-chef](https://github.com/coderanger/etcd-chef)
 - [coderanger/etcd-chef](https://github.com/coderanger/etcd-chef)
@@ -69,5 +71,3 @@
 - [mattn/etcdenv](https://github.com/mattn/etcdenv) - "env" shebang with etcd integration
 - [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
 - [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.
 - [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.
-
-