etcd-rs 1.0.1

etcd client for rust
Documentation
use etcd_rs::{Client, ClientConfig, Endpoint, KeyValueOp, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let cli = Client::connect(ClientConfig::new([
        Endpoint::from("http://127.0.0.1:12379")
            .tls(
                "etcd-1",
                "./hack/certs/ca.pem",
                "./hack/certs/etcd-1.pem",
                "./hack/certs/etcd-1-key.pem",
            )
            .await?,
        Endpoint::from("http://127.0.0.1:22379")
            .tls(
                "etcd-2",
                "./hack/certs/ca.pem",
                "./hack/certs/etcd-2.pem",
                "./hack/certs/etcd-2-key.pem",
            )
            .await?,
        Endpoint::from("http://127.0.0.1:32379")
            .tls(
                "etcd-3",
                "./hack/certs/ca.pem",
                "./hack/certs/etcd-3.pem",
                "./hack/certs/etcd-3-key.pem",
            )
            .await?,
    ]))
    .await?;

    cli.put(("foo", "bar")).await.expect("put kv");
    let resp = cli.get("foo").await.expect("get kv");

    assert_eq!(resp.kvs.len(), 1);
    assert_eq!(resp.kvs[0].key_str(), "foo");
    assert_eq!(resp.kvs[0].value_str(), "bar");

    Ok(())
}