.. _client-feature-matrix:


Client Feature Matrix
#####################


Features
========

+----------------------------------------+-------------------------+-------------------+
| Feature                                | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+========================================+=========================+===================+
| Automatic retry                        | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| Retry backoff                          | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| Automatic failover                     | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| Load balancer                          | Round-Robin             | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``WithRequireLeader(context.Context)`` | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``TLS``                                | Yes                     | Yes               |
+----------------------------------------+-------------------------+-------------------+
| ``SetEndpoints``                       | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``Sync`` endpoints                     | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``AutoSyncInterval``                   | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``KeepAlive`` ping                     | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``MaxCallSendMsgSize``                 | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``MaxCallRecvMsgSize``                 | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+
| ``RejectOldCluster``                   | Yes                     | ·                 |
+----------------------------------------+-------------------------+-------------------+


`KV <https://godoc.org/github.com/coreos/etcd/clientv3#KV>`_
============================================================

+---------------+-------------------------+-------------------+
| Feature       | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+===============+=========================+===================+
| ``Put``       | Yes                     | ·                 |
+---------------+-------------------------+-------------------+
| ``Get``       | Yes                     | ·                 |
+---------------+-------------------------+-------------------+
| ``Delete``    | Yes                     | ·                 |
+---------------+-------------------------+-------------------+
| ``Compact``   | Yes                     | ·                 |
+---------------+-------------------------+-------------------+
| ``Do(Op)``    | Yes                     | ·                 |
+---------------+-------------------------+-------------------+
| ``Txn``       | Yes                     | ·                 |
+---------------+-------------------------+-------------------+


`Lease <https://godoc.org/github.com/coreos/etcd/clientv3#Lease>`_
==================================================================

+-------------------+-------------------------+-------------------+
| Feature           | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+===================+=========================+===================+
| ``Grant``         | Yes                     | ·                 |
+-------------------+-------------------------+-------------------+
| ``Revoke``        | Yes                     | ·                 |
+-------------------+-------------------------+-------------------+
| ``TimeToLive``    | Yes                     | ·                 |
+-------------------+-------------------------+-------------------+
| ``Leases``        | Yes                     | ·                 |
+-------------------+-------------------------+-------------------+
| ``KeepAlive``     | Yes                     | ·                 |
+-------------------+-------------------------+-------------------+
| ``KeepAliveOnce`` | Yes                     | ·                 |
+-------------------+-------------------------+-------------------+


`Watcher <https://godoc.org/github.com/coreos/etcd/clientv3#Watcher>`_
======================================================================

+---------------------+-------------------------+-------------------+
| Feature             | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+=====================+=========================+===================+
| ``Watch``           | Yes                     | Yes               |
+---------------------+-------------------------+-------------------+
| ``RequestProgress`` | Yes                     | ·                 |
+---------------------+-------------------------+-------------------+


`Cluster <https://godoc.org/github.com/coreos/etcd/clientv3#Cluster>`_
======================================================================

+------------------+-------------------------+-------------------+
| Feature          | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+==================+=========================+===================+
| ``MemberList``   | Yes                     | Yes               |
+------------------+-------------------------+-------------------+
| ``MemberAdd``    | Yes                     | Yes               |
+------------------+-------------------------+-------------------+
| ``MemberRemove`` | Yes                     | Yes               |
+------------------+-------------------------+-------------------+
| ``MemberUpdate`` | Yes                     | Yes               |
+------------------+-------------------------+-------------------+


`Maintenance <https://godoc.org/github.com/coreos/etcd/clientv3#Maintenance>`_
==============================================================================

+-----------------+-------------------------+-------------------+
| Feature         | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+=================+=========================+===================+
| ``AlarmList``   | Yes                     | Yes               |
+-----------------+-------------------------+-------------------+
| ``AlarmDisarm`` | Yes                     | ·                 |
+-----------------+-------------------------+-------------------+
| ``Defragment``  | Yes                     | ·                 |
+-----------------+-------------------------+-------------------+
| ``Status``      | Yes                     | ·                 |
+-----------------+-------------------------+-------------------+
| ``HashKV``      | Yes                     | ·                 |
+-----------------+-------------------------+-------------------+
| ``Snapshot``    | Yes                     | ·                 |
+-----------------+-------------------------+-------------------+
| ``MoveLeader``  | Yes                     | ·                 |
+-----------------+-------------------------+-------------------+


`Auth <https://godoc.org/github.com/coreos/etcd/clientv3#Auth>`_
================================================================

+----------------------------+-------------------------+-------------------+
| Feature                    | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+============================+=========================+===================+
| ``AuthEnable``             | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``AuthDisable``            | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``UserAdd``                | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``UserDelete``             | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``UserChangePassword``     | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``UserGrantRole``          | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``UserGet``                | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``UserList``               | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``UserRevokeRole``         | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``RoleAdd``                | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``RoleGrantPermission``    | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``RoleGet``                | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``RoleList``               | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``RoleRevokePermission``   | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+
| ``RoleDelete``             | Yes                     | ·                 |
+----------------------------+-------------------------+-------------------+


`clientv3util <https://godoc.org/github.com/coreos/etcd/clientv3/clientv3util>`_
================================================================================

+---------------------------+-------------------------+-------------------+
| Feature                   | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+===========================+=========================+===================+
| ``KeyExists``             | Yes                     | No                |
+---------------------------+-------------------------+-------------------+
| ``KeyMissing``            | Yes                     | No                |
+---------------------------+-------------------------+-------------------+


`concurrency <https://godoc.org/github.com/coreos/etcd/clientv3/concurrency>`_
==============================================================================

+----------------------------------------+-------------------------+-------------------+
| Feature                                | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+========================================+=========================+===================+
| ``Session``                            | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``NewMutex(Session, prefix)``          | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``NewElection(Session, prefix)``       | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``NewLocker(Session, prefix)``         | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Isolation SerializableSnapshot`` | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Isolation Serializable``         | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Isolation RepeatableReads``      | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Isolation ReadCommitted``        | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Get``                            | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Put``                            | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Rev``                            | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+
| ``STM Del``                            | Yes                     | No                |
+----------------------------------------+-------------------------+-------------------+


`leasing <https://godoc.org/github.com/coreos/etcd/clientv3/leasing>`_
======================================================================

+---------------------------+-------------------------+-------------------+
| Feature                   | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+===========================+=========================+===================+
| ``NewKV(Client, prefix)`` | Yes                     | No                |
+---------------------------+-------------------------+-------------------+


`mirror <https://godoc.org/github.com/coreos/etcd/clientv3/mirror>`_
======================================================================

+------------------+-------------------------+-------------------+
| Feature          | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+==================+=========================+===================+
| ``SyncBase``     | Yes                     | No                |
+------------------+-------------------------+-------------------+
| ``SyncUpdates``  | Yes                     | No                |
+------------------+-------------------------+-------------------+


`namespace <https://godoc.org/github.com/coreos/etcd/clientv3/namespace>`_
==========================================================================

+-------------+-------------------------+-------------------+
| Feature     | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+=============+=========================+===================+
| ``KV``      | Yes                     | No                |
+-------------+-------------------------+-------------------+
| ``Lease``   | Yes                     | No                |
+-------------+-------------------------+-------------------+
| ``Watcher`` | Yes                     | No                |
+-------------+-------------------------+-------------------+


`naming <https://godoc.org/github.com/coreos/etcd/clientv3/naming>`_
====================================================================

+--------------------+-------------------------+-------------------+
| Feature            | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+====================+=========================+===================+
| ``GRPCResolver``   | Yes                     | No                |
+--------------------+-------------------------+-------------------+


`ordering <https://godoc.org/github.com/coreos/etcd/clientv3/ordering>`_
========================================================================

+----------+-------------------------+-------------------+
| Feature  | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+==========+=========================+===================+
| ``KV``   | Yes                     | No                |
+----------+-------------------------+-------------------+


`snapshot <https://godoc.org/github.com/coreos/etcd/clientv3/snapshot>`_
========================================================================

+-------------+-------------------------+-------------------+
| Feature     | ``clientv3-grpc1.14``   | ``jetcd v0.0.2``  |
+=============+=========================+===================+
| ``Save``    | Yes                     | No                |
+-------------+-------------------------+-------------------+
| ``Status``  | Yes                     | No                |
+-------------+-------------------------+-------------------+
| ``Restore`` | Yes                     | No                |
+-------------+-------------------------+-------------------+