Rust Etcd Versions Save

An etcd client library for Rust.

v0.9.0

5 years ago

Breaking changes:

  • Rust 1.31 or later is now required.
  • Hyper has been updated to the 0.12 series.
  • tokio-core has been replaced with tokio, which changes APIs that used tokio-core's Core type previously.
  • Some method signatures have changed to use impl Trait instead of boxing.

New features:

  • etcd's authentication and authorization API is now supported.

Improvements:

  • Many additional common traits are now implemented for most of the types in the crate.
  • The version of etcd tested against has been updated to 2.3.8.

v0.8.0

6 years ago

Breaking changes:

  • Node's createdIndex and modifiedIndex are now optional again, as they are not present on the root node.

v0.7.0

6 years ago

Breaking changes:

0.7.0 is a major update with many breaking changes. The biggest ones are listed below.

  • The crate now uses asynchronous I/O with the futures and tokio crates.
  • API functions have been moved into separate modules.
  • The error enum has several structural changes.
  • Some API endpoint functions that previously had many positional arguments now take an options struct.
  • The "action" field on KeyValueInfo (previously KeySpaceInfo) is now an enum instead of a string.
  • A few struct fields which were previously optional are now always present.
  • The main client type now has three constructors, one for HTTP, one for HTTPS, and one that allows the user to pass in a previously-constructed hyper::Client for full customization of the HTTP layer. The custom constructor is also necessary for X.509 client certificate authentication.

New features:

  • All I/O is now asynchronous.
  • "Watch" operations on the key-value API can now specify timeouts.
  • Cluster metadata provided in HTTP response headers are now accessible.

Improvements:

  • Major updates to documentation.

v0.6.0

7 years ago

Breaking changes:

  • ClientOptions now takes a native_tls::TlsConnector instead of paths to PEM-formatted certificate/key files.

Maintenance updates:

  • Updated hyper to the 0.10 series.
  • Updates serde to the 1.0 series.

v0.5.5

7 years ago

Maintenance updates:

  • Updates to the 0.8 series of the Serde crates.

v0.5.3

7 years ago

Bug fixes:

  • Fixed an infinite loop in the implementation of Display for the etcd error type.

v0.5.4

7 years ago

Maintenance updates:

  • Includes the latest version of syntex (0.33.0) for compatibility with the latest version of the Rust compiler's libsyntax crate.

v0.5.2

8 years ago

Bug fixes:

  • Syntex is no longer built when building with --no-default-features.

v0.5.1

8 years ago

Improvements:

  • Updated crate dependencies. Notably, hyper and syntex had non-SemVer compatible updates.

v0.5.0

8 years ago

Breaking changes:

  • Client::default is now implemented via std::default::Default, which requires importing the trait.
  • Client::new now takes a slice of URLs instead of one URL.
  • Client::self_stats, Client::store_stats, and Client::version now return a vector of results—one for each etcd member the client was initialized with. Additionally, Client::version has been renamed to Client::versions to make this more clear.
  • The Etcd variant of etcd::error::Error has been renamed Api and its contained type, EtcdError, has been renamed ApiError.
  • Two new variants have been added to etcd::error::Error: InvalidUrl and NoEndpoints. See the API docs for their purposes.
  • KeySpaceResult's error type is now a vector of errors, to account for the client supporting multiple etcd members now.
  • The node field of the KeySpaceInfo struct is now wrapped in an Option.
  • The client, error, and keys modules are no longer public. All their user-facing public types are available from the crate root.
  • The fields of the CountStats, FollowerStats, LatencyStats, and VersionInfo structs are no longer wrapped in Options.

New features:

  • Client now accepts multiple URLs for etcd members. Except for API calls that specifically target a member, each API call will try each member in sequence, returning the first successful result. If all members are exhausted without a successful response, the client will return a vector of errors—one for each member it tried.
  • A new constructor, Client::with_options, takes the new ClientOptions struct as an argument and provides support for three new features:
    1. Using a custom certificate authority for HTTPS connections.
    2. Authenticating with the etcd server(s) using client certificates for HTTPS connections.
    3. Authenticating with the etcd server(s) using a username and password for the auth API introduced in etcd 2.2.
  • etcd::error::Error and etcd::error::ApiError now implement std::error::Error.

Improvements:

  • Examples of usage have been added to the crate root documentation.
  • Various improvements to API documentation.