etcd
Version, currently 1.3.030 versions
- 1.3.0latestAug 19, 2025
- 1.2.5not indexedSep 4, 2025
- 1.2.4not indexedSep 4, 2025
- 1.2.3not indexedSep 4, 2025
- 1.2.2not indexedSep 4, 2025
- 1.2.1not indexedSep 4, 2025
- 1.2.0not indexedSep 4, 2025
- 1.1.2not indexedSep 4, 2025
- 1.1.1not indexedSep 4, 2025
- 1.1.0not indexedSep 4, 2025
- 1.0.7not indexedSep 4, 2025
- 1.0.6not indexedSep 4, 2025
- 1.0.5not indexedSep 4, 2025
- 1.0.4not indexedSep 4, 2025
- 1.0.3not indexedSep 4, 2025
- 1.0.2not indexedSep 4, 2025
- 1.0.1not indexedSep 4, 2025
- 1.0.0not indexedSep 4, 2025
- 0.5.0not indexedSep 4, 2025
- 0.4.0not indexedSep 4, 2025
- 0.3.4not indexedSep 4, 2025
- 0.3.3not indexedSep 4, 2025
- 0.3.2not indexedSep 4, 2025
- 0.3.1not indexedSep 4, 2025
- 0.3.0not indexedSep 4, 2025
- 0.2.4not indexedSep 4, 2025
- 0.2.3not indexedSep 4, 2025
- 0.2.2not indexedSep 4, 2025
- 0.2.1not indexedSep 4, 2025
- 0.2.0not indexedSep 4, 2025
github.com/place-labs/crystal-etcd
etcd client for crystal lang
8 stars
3 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
etcd:
github: place-labs/crystal-etcd
version: ~> 1.3.0Then run:
shards installshard.yml
- Crystal
>= 1.10- License
- MIT
- Authors
- Caspian Baska, Duke Nguyen, Luan Shengde, James Hill
Dependencies
Runtime Dependencies
- tokenizer*github: spider-gazelle/tokenizer
- simple_retry*github: spider-gazelle/simple_retry
Development Dependencies
- ameba~> 1.6.4github: crystal-ameba/amebadev
README
crystal-etcd
etcd client for crystal lang implemented as a thin wrapper over etcd's gRPC-HTTP gateway.
The minimum supported etcd version is 3.4.
Installation
- Add the dependency to your
shard.yml:
dependencies:
etcd:
github: place-labs/crystal-etcd
- Run
shards install
Usage
require "etcd"
# Initialising a client from ETCD_HOST and ETCD_PORT
client = Etcd.from_env
# Add a key/value to etcd
client.kv.put("/service/hello", "world")
# Grab a key/value from etcd
client.range("/service/hello").kvs.try(&.first?) #=> #<Etcd::Model::KV @key="/service/hello" @value="world" @create_revision=nil @mod_revision=nil @version=nil @lease=nil>
TODO
- Specs (auth, cluster, maintenance, kv.compaction, kv.txn)
- Multi-node.
- Use enum instead of String
Auth
- [x] authenticate
- [x] disable
- [x] enable
- [x] role/add
- [x] role/delete
- [x] role/get
- [x] role/grant
- [x] role/list
- [x] role/revoke
- [x] user/add
- [x] user/changepw
- [x] user/delete
- [x] user/get
- [x] user/grant
- [x] user/list
- [x] user/revoke
Cluster
- [x] member/add
- [x] member/list
- [x] member/promote
- [x] member/remove
- [x] member/update
Kv
- [x] put
- [x] range
- [x] deleterange
- [x] compaction
- [x] txn
Lease
- [x] grant
- [x] keepalive
- [x] leases
- [x] revoke
- [x] timetolive
Maintenance
- [x] alarm
- [x] defragment
- [x] hash
- [x] snapshot
- [x] status
- [x] transfer-leadership
Watch
- [x] watch
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
See Also
Contributors
- Caspian Baska - creator and maintainer
- Duke Nguyen - maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.3.0- Tagged
- Aug 19, 2025
- Commit
2167259288b4- Crystal
>= 1.10- Indexed
- yes
Dependents
Repository
github.com/place-labs/crystal-etcd
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 30