Announcing etcd v3.7.0 | etcd
View page source<br>Edit this page<br>Create child page<br>Create documentation issue<br>Create project issue<br>On this page
Announcing etcd v3.7.0<br>By SIG-Etcd Leads |<br>Wednesday, July 08, 2026<br>Table of Contents<br>Introduction<br>Major features<br>FeaturesRangeStream<br>Performance improvementsKeys-only range optimization<br>Faster, more reliable etcd leases<br>Faster find() operations
Other featuresProtobuf overhaul<br>Unix socket support<br>Bootstrap from v3store<br>etcdutl timeouts<br>Setting the authentication token directly<br>Retrieve AuthStatus without authenticating<br>New watch metrics<br>etcdctl command cleanup
UpgradingExperimental flags removed<br>Legacy V2 API packages and code cleanup<br>Non-blocking client creation<br>Multiarch container images only<br>API changes
bbolt v1.5.1<br>raft v3.7.0<br>Dependency Updates<br>ContributorsLeads<br>Other contributors<br>New contributors
Introduction<br>Today, SIG etcd is releasing etcd v3.7.0, the latest minor release of the popular distributed key-value store and core Kubernetes component. v3.7 ships the long-requested RangeStream feature, delivers several other performance improvements, removes the last remnants of the legacy v2store, and completes a major protobuf overhaul.<br>You can download etcd v3.7.0 here:<br>Source code<br>Binaries<br>Official container images<br>This release also includes new versions of the two core etcd dependencies, bbolt v1.5.0 and raft v3.7.0.<br>For instructions on installing etcd, see the install documentation. For the full list of changes, see the etcd v3.7 changelog.<br>A heartfelt thank you to all the contributors who made this release possible!<br>Major features<br>The most significant changes in v3.7.0 include:<br>RangeStream — stream large result sets in chunks instead of buffering the whole response.<br>Keys-only range requests, faster and more reliable leases, and several other performance improvements .<br>etcd now boots entirely from v3store, eliminating a long-standing dependency on the legacy v2 store<br>A completed protobuf overhaul , replacing outdated protobuf libraries with fully supported ones.<br>etcd v3.7 ships with bbolt v1.5.1 and raft v3.7.0.<br>Features<br>RangeStream<br>In etcd v3.6 and earlier, it is challenging to work with requests that return large result sets. The database would buffer the full result set before sending, leading to unpredictable latency and memory usage, both on the server and the client. The RangeStream RPC lets calling applications accept result sets in chunks, reducing latency and making buffering memory usage more predictable.<br>Instructions on how to use RangeStream in gRPC calls and in etcdctl can be found in the etcd documentation. Users should try it out for their own applications.<br>In coordinated releases, the RangeStream feature will become available to users running the upcoming v1.37 of Kubernetes by enabling the EtcdRangeStream feature gate. This early and planned adoption is possible thanks to the merger of etcd and Kubernetes development in 2023.<br>Performance improvements<br>v3.7 delivers multiple specific performance improvements, both for the Kubernetes control plane and for other use cases. Kubernetes users should see a significant decrease in overall CPU usage by the etcd members, compared with v3.6.<br>Keys-only range optimization<br>etcd v3.7.0 includes a keys-only Range optimization (#21791: keys-only Range optimization). When processing a keys_only Range request or etcdctl get --keys-only, etcd reads solely from its in-memory index. It returns the matched keys without loading all serialized values from bbolt as it did previously. The only exception where loading from bbolt is still required is when keys_only Range requests must be sorted by value (i.e., when SortTarget is set to VALUE).<br>This reduces unnecessary backend reads and memory use for workloads that only need key names, making large keys-only range requests more efficient.<br>Faster, more reliable etcd leases<br>v3.7 improves lease expiration and renewal:<br>LeaseRevoke requests are now prioritized to ensure timely lease expiration during overload (#20492: stability enhancement during overload conditions).<br>The new FastLeaseKeepAlive feature enables faster lease renewal by skipping the wait for the applied index (#20589: etcdserver: improve linearizable renew lease).<br>Faster find() operations<br>etcd 3.7 improves the performance of concurrent watches on keys by making find() operations faster (#19768: adt: split interval tree by right endpoint on matched left endpoints).<br>Other features<br>Protobuf overhaul<br>v3.7 migrates and replaces multiple outdated protobuf libraries with fully supported dependencies. This includes replacing github.com/golang/protobuf and github.com/gogo/protobuf with the fully-supported google.golang.org/protobuf (#14533: Protobuf: cleanup both golang/protobuf and gogo/protobuf), and migrating grpc-logging to grpc-middleware v2 (#20420: Migrate grpc-logging to grpc-middleware v2).<br>As well as improving security and maintainability, this refactor has been shown to reduce CPU usage by etcd...