Crate etcd_rs[][src]

Expand description

An asynchronously etcd client for Rust.

etcd-rs supports etcd v3 API and async/await syntax.

Examples

A simple key-value read and write operation:

use etcd_rs::*;

#[tokio::main]
async fn main() -> Result<()> {
    let client = Client::connect(ClientConfig {
        endpoints: vec!["http://127.0.0.1:2379".to_owned()],
        auth: None,
        tls: None,
    }).await?;

    let key = "foo";
    let value = "bar";

    // Put a key-value pair
    let resp = client.kv().put(PutRequest::new(key, value)).await?;

    println!("Put Response: {:?}", resp);

    // Get the key-value pair
    let resp = client
        .kv()
        .range(RangeRequest::new(KeyRange::key(key)))
        .await?;
    println!("Range Response: {:?}", resp);

    // Delete the key-valeu pair
    let resp = client
        .kv()
        .delete(DeleteRequest::new(KeyRange::key(key)))
        .await?;
    println!("Delete Response: {:?}", resp);

   Ok(())
}

Structs

Auth client.

Request for authenticating.

Client is an abstraction for grouping etcd operations and managing underlying network communications.

Config for establishing etcd client.

Request for deleting key-value pairs.

Every change to every key is represented with Event messages.

KeyRange is an abstraction for describing etcd key of various types.

Key-Value pair.

Key-Value client.

Lease client.

Request for granting lease.

Request for refreshing lease.

Request for revoking lease.

Request for putting key-value.

Request for fetching key-value pairs.

Request for performing transaction operations.

Watch client.

Request for canceling a watch.

Request for creating watch.

Enums

The kind of event.

Transaction Comparation.

Transaction Operation.

Response transaction operation.

Type Definitions