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

As support for etcd features is very uneven between different clients, a feature matrix can help application developers to understand what a client library can offer them, and also help client libraries developers to understand what they should work on. I assessed the features of all client libraries by looking at their master branch on github, to the best of my knowledge.
47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
# 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
|