43次发布

0.14.0 2024年7月10日
0.12.4 2024年1月1日
0.12.3 2023年11月21日
0.11.1 2023年5月3日
0.1.1 2020年3月28日

#38 in 密码学

Download history 24793/week @ 2024-05-04 25468/week @ 2024-05-11 19324/week @ 2024-05-18 20372/week @ 2024-05-25 25734/week @ 2024-06-01 25667/week @ 2024-06-08 23621/week @ 2024-06-15 22456/week @ 2024-06-22 19815/week @ 2024-06-29 23404/week @ 2024-07-06 21359/week @ 2024-07-13 24562/week @ 2024-07-20 24420/week @ 2024-07-27 25847/week @ 2024-08-03 22970/week @ 2024-08-10 18539/week @ 2024-08-17

97,035 每月下载量
用于 70 个crate (25 直接)

MIT/Apache

230KB
5.5K SLoC

etcd-client

Minimum rustc version Crate API

License: Apache OR License: MIT

为Rust提供的etcd v3 API客户端。它提供由tokio和tonic支持的异步客户端。

特性

  • etcd API v3
  • 异步

支持的API

  • KV
  • 监控
  • 租约
  • 认证
  • 维护
  • 集群
  • 选举
  • 命名空间

用法

将以下内容添加到您的 Cargo.toml

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

开始使用 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 中找到。

特性标志

  • tls: 启用基于 rustls 的TLS连接。默认不启用。
  • tls-roots: 使用 rustls-native-certs crate 将系统信任根添加到基于 rustls 的TLS连接。默认不启用。
  • pub-response-field: 提供用于创建常规 etcd-client 响应的struct,包括内部protobuf表示。对于模拟很有用。默认不启用。
  • tls-openssl: 启用基于 openssl 的TLS连接。这将使您的二进制文件动态链接到 libssl
  • tls-openssl-vendored: 与 tls-openssl 类似,但是从源代码编译openssl并将其静态链接。

测试

我们使用etcd 3.5来测试这个库。

注意,我们使用固定的 etcd 服务器URI(localhost:2379)来连接到etcd服务器。

Rust版本要求

最低支持版本是1.70。当前 etcd-client 版本不保证在低于最低支持版本的Rust版本上构建。

许可证

双许可以与Rust项目兼容。

本软件遵循Apache License 2.0 http://www.apache.org/licenses/LICENSE_2.0 或MIT许可证 http://opensource.org/licenses/MIT,具体取决于您。除非您明确声明,否则您提交到 etcd-client 的任何贡献都将被许可为Apache-2.0和MIT,不附加任何额外条款或条件。

贡献

除非您明确声明,否则您提交到 etcd-client 的任何有意贡献都将按照Apache-2.0和MIT许可证许可,不附加任何额外条款或条件。

依赖

~5–18MB
~245K SLoC