26 个版本 (2 个稳定版本)

1.0.1 2023年4月10日
1.0.0 2022年11月23日
1.0.0-alpha.32022年10月23日
1.0.0-alpha.12022年4月14日
0.0.0 2018年12月26日

认证 中排名 263

Download history 123/week @ 2024-04-07 120/week @ 2024-04-14 80/week @ 2024-04-21 45/week @ 2024-04-28 36/week @ 2024-05-05 39/week @ 2024-05-12 59/week @ 2024-05-19 47/week @ 2024-05-26 52/week @ 2024-06-02 47/week @ 2024-06-09 41/week @ 2024-06-16 52/week @ 2024-06-23 26/week @ 2024-06-30 27/week @ 2024-07-07 12/week @ 2024-07-14 12/week @ 2024-07-21

每月下载量 81 次
用于 sentinel-core

MIT 许可证

72KB
2K SLoC

etcd 的 Rust 客户端

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]
etcd-rs = "1.0"
use etcd_rs::Client;

#[tokio::main]
async fn main() {
    let cli = Client::connect(ClientConfig {
        endpoints: [
            "http://127.0.0.1:12379",
            "http://127.0.0.1:22379",
            "http://127.0.0.1:32379",
        ],
        ..Default::default()
    }).await;
    
    cli.put(("foo", "bar")).await.expect("put kv");
    
    let kvs = cli.get("foo").await.expect("get kv").take_kvs();
    assert_eq!(kvs.len(), 1);
}

开发

要求

  • Makefile
  • docker
  • docker-compose

启动本地 etcd 集群

make setup-etcd-cluster

停止集群

make teardown-etcd-cluster

运行测试

make test

针对特定用例

TEST_CASE=test_put_error make test-one

许可证

本项目采用 MIT 许可证 许可。

依赖关系

~5–15MB
~199K SLoC