{"id":13622046,"url":"https://github.com/zarvd/etcd-rs","last_synced_at":"2025-04-15T05:33:16.091Z","repository":{"id":38284819,"uuid":"163295244","full_name":"zarvd/etcd-rs","owner":"zarvd","description":"etcd client for rust","archived":true,"fork":false,"pushed_at":"2023-09-07T09:02:14.000Z","size":394,"stargazers_count":197,"open_issues_count":1,"forks_count":51,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-03T23:01:47.358Z","etag":null,"topics":["asynchronous","etcd","etcdv3","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zarvd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-12-27T13:01:23.000Z","updated_at":"2024-12-27T09:32:26.000Z","dependencies_parsed_at":"2024-04-10T17:05:37.057Z","dependency_job_id":"621ce921-5d66-4577-a9d0-d671069eb74f","html_url":"https://github.com/zarvd/etcd-rs","commit_stats":null,"previous_names":["zarvd/etcd-rs","lodrem/etcd-rs","luncj/etcd-rs"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarvd%2Fetcd-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarvd%2Fetcd-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarvd%2Fetcd-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zarvd%2Fetcd-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zarvd","download_url":"https://codeload.github.com/zarvd/etcd-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247749963,"owners_count":20989714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asynchronous","etcd","etcdv3","rust"],"created_at":"2024-08-01T21:01:13.269Z","updated_at":"2025-04-15T05:33:15.810Z","avatar_url":"https://github.com/zarvd.png","language":"Rust","funding_links":[],"categories":["Libraries"],"sub_categories":["Database"],"readme":"etcd client for Rust\n====\n\n[\u003cimg alt=\"github\" height=\"20\" src=\"https://img.shields.io/badge/github-lodrem/etcd--rs-8da0cb?style=for-the-badge\u0026labelColor=555555\u0026logo=github\"\u003e](https://github.com/lodrem/etcd-rs)\n[\u003cimg alt=\"crates.io\" height=\"20\" src=\"https://img.shields.io/crates/v/etcd-rs.svg?style=for-the-badge\u0026color=fc8d62\u0026logo=rust\"\u003e](https://crates.io/crates/etcd-rs)\n[\u003cimg alt=\"docs.rs\" height=\"20\" src=\"https://img.shields.io/badge/docs.rs-etcd--rs-66c2a5?style=for-the-badge\u0026labelColor=555555\u0026logoColor=white\"\u003e](https://docs.rs/etcd-rs)\n[\u003cimg alt=\"build status\" height=\"20\" src=\"https://img.shields.io/github/actions/workflow/status/lodrem/etcd-rs/ci.yml?branch=master\u0026style=for-the-badge\"\u003e](https://github.com/luncj/etcd-rs/actions?query%3Amaster)\n[\u003cimg alt=\"dependency status\" height=\"20\" src=\"https://deps.rs/repo/github/lodrem/etcd-rs/status.svg?style=for-the-badge\"\u003e](https://deps.rs/repo/github/lodrem/etcd-rs)\n\nAn [etcd](https://github.com/etcd-io/etcd) (API v3) client for Rust backed by [tokio](https://github.com/tokio-rs/tokio) and [tonic](https://github.com/hyperium/tonic).\n\nSupported APIs\n----\n\n- KV\n  - [x] Put\n  - [x] Range\n  - [x] Delete\n  - [x] Transaction\n  - [x] Compact\n- Lease\n  - [x] Grant\n  - [x] Revoke\n  - [x] KeepAlive\n  - [x] TimeToLive\n- Watch\n  - [x] WatchCreate\n  - [x] WatchCancel\n- Auth\n  - [x] Authenticate\n  - [ ] RoleAdd\n  - [ ] RoleGrantPermission\n  - [ ] UserAdd\n  - [ ] UserGrantRole\n  - [ ] AuthEnable\n  - [ ] AuthDisable\n- Cluster\n  - [x] MemberAdd\n  - [x] MemberRemove\n  - [x] MemberUpdate\n  - [x] MemberList\n- Maintenance\n  - [ ] Alarm\n  - [ ] Status\n  - [ ] Defragment\n  - [ ] Hash\n  - [ ] Snapshot\n  - [ ] MoveLeader\n\nUsage\n----\n\nAdd following dependencies in your project `cargo.toml`:\n\n```toml\n[dependencies]\netcd-rs = \"1.0\"\n```\n\n```rust\nuse etcd_rs::Client;\n\n#[tokio::main]\nasync fn main() {\n    let cli = Client::connect(ClientConfig {\n        endpoints: [\n            \"http://127.0.0.1:12379\",\n            \"http://127.0.0.1:22379\",\n            \"http://127.0.0.1:32379\",\n        ],\n        ..Default::default()\n    }).await;\n    \n    cli.put((\"foo\", \"bar\")).await.expect(\"put kv\");\n    \n    let kvs = cli.get(\"foo\").await.expect(\"get kv\").take_kvs();\n    assert_eq!(kvs.len(), 1);\n}\n```\n\nDevelopment\n----\n\n\nrequirements:\n- Makefile\n- docker\n- docker-compose\n\n### Start local etcd cluster\n\n```shell\nmake setup-etcd-cluster\n```\n\nstop cluster\n```shell\nmake teardown-etcd-cluster\n```\n\n### Run tests\n\n```shell\nmake test\n```\n\nfor specified case:\n```shell\nTEST_CASE=test_put_error make test-one\n```\n\nLicense\n----\n\nThis project is licensed under the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzarvd%2Fetcd-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzarvd%2Fetcd-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzarvd%2Fetcd-rs/lists"}