2个稳定版本
1.2.0 | 2024年7月9日 |
---|---|
1.1.0 | 2024年7月1日 |
#1846 in 网络编程
67KB
2K SLoC
又一个Rust的etcd客户端
一个基于etcd (API v3)的Rust客户端,由tokio和tonic支持。
支持的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