An etcd v3 API client for Rust. It provides asynchronous client backed by tokio and tonic.
- etcd API v3
- asynchronous
- KV
- Watch
- Lease
- Auth
- Maintenance
- Cluster
- Lock
- Election
Add this to your Cargo.toml:
[dependencies]
etcd-client = "0.11"
tokio = { version = "1.0", features = ["full"] }To get started using 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 can be found in examples.
tls: Enables therustls-based TLS connection. Not enabled by default.tls-roots: Adds system trust roots torustls-based TLS connection using therustls-native-certscrate. Not enabled by default.pub-response-field: Exposes structs used to create regularetcd-clientresponses including internal protobuf representations. Useful for mocking. Not enabled by default.tls-openssl: Enables theopenssl-based TLS connections. This would make your binary dynamically link tolibssl.tls-openssl-vendored: Liketls-openssl, however compile openssl from source code and statically link to it.
We test this library with etcd 3.5.
Notes that we use a fixed etcd server URI (localhost:2379) to connect to etcd server.
The minimum supported version is 1.60. The current etcd-client version is not guaranteed to build on Rust versions earlier than the minimum supported version.
This project is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT).
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in etcd-client by you, shall be licensed as MIT, without any additional
terms or conditions.