2个稳定版本

1.2.0 2024年7月9日
1.1.0 2024年7月1日

#1846 in 网络编程

MIT 协议

67KB
2K SLoC

又一个Rust的etcd客户端

github crates.io docs.rs build status dependency status

一个基于etcd (API v3)的Rust客户端,由tokiotonic支持。

支持的API

  • KV
    • Put
    • Range
    • Delete
    • Transaction
    • Compact
  • Lease
    • Grant
    • Revoke
    • KeepAlive
    • TimeToLive
  • Watch
    • WatchCreate
    • WatchCancel
  • Auth
    • Authenticate
    • RoleAdd
    • RoleGrantPermission
    • UserAdd
    • UserGrantRole
    • AuthEnable
    • AuthDisable
  • Cluster
    • MemberAdd
    • MemberRemove
    • MemberUpdate
    • MemberList
  • Maintenance
    • Alarm
    • Status
    • Defragment
    • Hash
    • Snapshot
    • MoveLeader

Usage

在项目的cargo.toml中添加以下依赖

[dependencies]
ya-etcd-rs = "1.1"
use ya_etcd_rs::{Client, ClientConfig, KeyValueOp, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let cli = Client::new(ClientConfig::new([
        "http://127.0.0.1:12379".into(),
        "http://127.0.0.1:22379".into(),
        "http://127.0.0.1:32379".into(),
    ]))
    .await?;

    cli.put(("foo", "bar")).await.expect("put kv");

    let kvs = cli.get("foo").await.expect("get kv").kvs;
    assert_eq!(kvs.len(), 1);
    Ok(())
}

开发

要求

  • Makefile
  • docker
  • docker compose

启动本地etcd集群

make setup-etcd-cluster

停止集群

make teardown-etcd-cluster

针对特定案例

TEST_CASE=test_put_error make test-one

许可

本项目遵循MIT协议

依赖

~5–15MB
~186K SLoC