Crate etcd_client

Source
Expand description

An etcd v3 API client for Rust. It provides asynchronous client backed by tokio and tonic.

§Supported APIs

  • KV
  • Watch
  • Lease
  • Auth
  • Maintenance
  • Cluster
  • Lock
  • Election

§Usage

Add this to your Cargo.toml:

[dependencies]
etcd-client = "0.14"
tokio = { version = "1.0", features = ["full"] }

To get started using etcd-client:

use etcd_client::{Client, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let mut client = Client::connect(["localhost:2379"], None).await?;
    // put kv
    client.put("foo", "bar", None).await?;
    // get kv
    let resp = client.get("foo", None).await?;
    if let Some(kv) = resp.kvs().first() {
        println!("Get kv: {{{}: {}}}", kv.key_str()?, kv.value_str()?);
    }

    Ok(())
}

§Examples

Examples can be found in etcd-client/examples.

§Feature Flags

  • tls: Enables the rustls-based TLS connection. Not enabled by default.
  • tls-roots: Adds system trust roots to rustls-based TLS connection using the rustls-native-certs crate. Not enabled by default.
  • pub-response-field: Exposes structs used to create regular etcd-client responses including internal protobuf representations. Useful for mocking. Not enabled by default.

Structs§

AlarmMember
Alarm member of respond.
AlarmOptions
Options for alarm operation.
AlarmResponse
Response for alarm operation.
AuthClient
Client for Auth operations.
AuthDisableResponse
Response for AuthDisable operation.
AuthEnableResponse
Response for AuthEnable operation.
AuthenticateResponse
Response for Authenticate operation.
CampaignResponse
Response for Campaign operation.
Certificatetls
Represents a X509 certificate.
Client
Asynchronous etcd client using v3 API.
ClusterClient
Client for Cluster operations.
CompactionOptions
Options for Compact operation.
CompactionResponse
Response for Compact operation.
Compare
Transaction comparison.
ConnectOptions
Options for Connect operation.
DefragmentResponse
Response for defragment operation.
DeleteOptions
Options for Delete operation.
DeleteResponse
Response for Delete operation.
ElectionClient
Client for Elect operations.
Event
Watching event.
GetOptions
Options for Get operation.
GetResponse
Response for Get operation.
HashKvResponse
Response for hash_kv operation.
HashResponse
Response for hash operation.
Identitytls
Represents a private key and X509 certificate.
KeyValue
Key-value pair.
KvClient
Client for KV operations.
KvClientPrefix
LeaderKey
Leader key of election
LeaderResponse
Response for Leader operation.
LeaseClient
Client for lease operations.
LeaseClientPrefix
LeaseGrantOptions
Options for Grant operation.
LeaseGrantResponse
Response for Grant operation.
LeaseKeepAliveResponse
Response for KeepAlive operation.
LeaseKeepAliveStream
The lease keep alive response stream.
LeaseKeeper
The lease keep alive handle.
LeaseLeasesResponse
Response for Leases operation.
LeaseRevokeResponse
Response for Revoke operation.
LeaseStatus
Lease status.
LeaseTimeToLiveOptions
Options for TimeToLive operation.
LeaseTimeToLiveResponse
Response for TimeToLive operation.
LockClient
Client for Lock operations.
LockOptions
Options for Lock operation.
LockResponse
Response for Lock operation.
MaintenanceClient
Client for maintenance operations.
Member
Cluster member.
MemberAddOptions
Options for MemberAdd operation.
MemberAddResponse
Response for MemberAdd operation.
MemberListResponse
Response for MemberList operation.
MemberPromoteResponse
Response for MemberPromote operation.
MemberRemoveResponse
Response for MemberRemove operation.
MemberUpdateResponse
Response for MemberUpdate operation.
MoveLeaderResponse
Response for MoveLeader operation.
ObserveStream
Response for Observe operation.
Permission
Role access permission.
ProclaimOptions
Options for proclaim operation.
ProclaimResponse
Response for Proclaim operation.
PutOptions
Options for Put operation.
PutResponse
Response for Put operation.
ResignOptions
Options for resign operation.
ResignResponse
Response for Resign operation.
ResponseHeader
General etcd response header.
RoleAddResponse
Response for role add operation.
RoleDeleteResponse
Response for delete role operation.
RoleGetResponse
Response for get role operation.
RoleGrantPermissionResponse
Response for grant role permission operation.
RoleListResponse
Response for list role operation.
RoleRevokePermissionOptions
Options for grant role permission operation.
RoleRevokePermissionResponse
Response for revoke role permission operation.
SnapshotResponse
Response for snapshot operation.
SnapshotStreaming
Response for snapshot operation.
StatusResponse
Response for status operation.
TlsOptionstls
Configures TLS settings for endpoints.
Txn
Transaction of multiple operations.
TxnOp
Transaction operation.
TxnResponse
Response for Txn operation.
UnlockResponse
Response for Unlock operation.
UserAddOptions
Options for UserAdd operation.
UserAddResponse
Response for use add operation.
UserChangePasswordResponse
Response for change user’s password operation.
UserDeleteResponse
Response for delete user operation.
UserGetResponse
Response for get user operation.
UserGrantRoleResponse
Response for grant role for an user operation.
UserListResponse
Response for list user operation.
UserRevokeRoleResponse
Response for revoke role for an user operation.
WatchClient
Client for watch operations.
WatchOptions
Options for Watch operation.
WatchResponse
Response for Watch operation.
WatchStream
The watch response stream.
Watcher
The watching handle.

Enums§

AlarmAction
Alarm action.
AlarmType
Alarm type.
CompareOp
Logical comparison operation.
Error
The error type for etcd client.
EventType
The kind of event.
PermissionType
SortOrder
The ordering for sorted requests.
SortTarget
The key-value field to sort.
TxnOpResponse
Transaction operation response.
WatchFilterType
Watch filter type.