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.
2.5 KiB
2.5 KiB
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 Java
- transitorykris/etcd-py Python
- russellhaering/txetcd Python
- iconara/etcd-rb Ruby
- jpfuentes2/etcd-ruby Ruby
- aterreno/etcd-clojure Clojure
- 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 | jetcd | python-etcd | node-etcd | nodejs-etcd | etcd-ruby | etcd-api | cetcd | 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