Skip to content

Commit 66b781d

Browse files
authored
Merge pull request #184 from elastic/compatibility-matrix
Correct compatibility matrix
2 parents 9857c8f + 869b07c commit 66b781d

File tree

2 files changed

+9
-57
lines changed

2 files changed

+9
-57
lines changed

README.md

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,42 +11,20 @@ Official Rust Client for [Elasticsearch](https://github.com/elastic/elasticsearc
1111

1212
Full documentation is available at https://docs.rs/elasticsearch
1313

14-
The project is still very much a _work in progress_ and in an _alpha_ state;
14+
The project is still very much a _work in progress_ and in an _alpha_ state;
1515
input and contributions welcome!
1616

17-
## Versions and Compatibility
17+
## Compatibility
1818

19-
| Rust client | Elasticsearch | Status |
20-
|-------------|---------------|--------|
21-
| 7.x | 7.x | alpha |
22-
23-
A major version of the client is compatible with the same major version of Elasticsearch.
24-
Since Elasticsearch is developed following [Semantic Versioning](https://semver.org/) principles,
25-
Any minor/patch version of the client can be used against any minor/patch version of Elasticsearch
26-
**within the same major version lineage**. For example,
27-
28-
- A `7.5.0` client can be used against `7.0.0` Elasticsearch
29-
- A `7.5.0` client can be used against `7.6.0` Elasticsearch
30-
31-
In the former case, a 7.5.0 client may contain additional API functions that are not available
32-
in 7.0.0 Elasticsearch. In this case, these APIs cannot be used, but for any APIs available in
33-
Elasticsearch, the respective API functions on the client will be compatible.
34-
35-
In the latter case, a 7.5.0 client won't contain API functions for APIs that are introduced in
36-
Elasticsearch 7.6.0+, but for all other APIs available in Elasticsearch, the respective API
37-
functions on the client will be compatible.
38-
39-
**No compatibility assurances are given between different major versions of the client and
40-
Elasticsearch**. Major differences likely exist between major versions of Elasticsearch, particularly
41-
around request and response object formats, but also around API urls and behaviour.
19+
The Elasticsearch Rust client is forward compatible; meaning that the client supports communicating with greater minor versions of Elasticsearch. Elasticsearch language clients are also backwards compatible with lesser supported minor Elasticsearch versions.
4220

4321
## Features
4422

4523
The following are a list of Cargo features that can be enabled or disabled:
4624

4725
- **native-tls** *(enabled by default)*: Enables TLS functionality provided by `native-tls`.
4826
- **rustls-tls**: Enables TLS functionality provided by `rustls`.
49-
- **beta-apis**: Enables beta APIs. Beta APIs are on track to become stable and permanent features. Use them with
27+
- **beta-apis**: Enables beta APIs. Beta APIs are on track to become stable and permanent features. Use them with
5028
caution because it is possible that breaking changes are made to these APIs in a minor version.
5129
- **experimental-apis**: Enables experimental APIs. Experimental APIs are just that - an experiment. An experimental
5230
API might have breaking changes in any future version, or it might even be removed entirely. This feature also
@@ -80,7 +58,7 @@ serde_json = "~1"
8058

8159
#### Async support with tokio
8260

83-
The client uses [`reqwest`](https://crates.io/crates/reqwest) to make HTTP calls, which internally uses
61+
The client uses [`reqwest`](https://crates.io/crates/reqwest) to make HTTP calls, which internally uses
8462
the [`tokio`](https://crates.io/crates/tokio) runtime for async support. As such, you may require to take a dependency on `tokio`
8563
in order to use the client. For example, in Cargo.toml, you may need the following dependency,
8664

@@ -112,7 +90,7 @@ async fn my_test() -> Result<(), Box<dyn std::error::Error>> {
11290

11391
### Create a client
11492

115-
Build a transport to make API requests to Elasticsearch using the `TransportBuilder`,
93+
Build a transport to make API requests to Elasticsearch using the `TransportBuilder`,
11694
which allows setting of proxies, authentication schemes, certificate validation, and
11795
other transport related settings.
11896

@@ -129,7 +107,7 @@ Alternatively, you can create a client to make API calls against Elasticsearch r
129107

130108
```rust,no_run
131109
use elasticsearch::{
132-
Elasticsearch, Error,
110+
Elasticsearch, Error,
133111
http::transport::Transport
134112
};
135113

docs/overview.asciidoc

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[[overview]]
22
== Overview
33

4-
This is the official Rust client for {es}. Full documentation is hosted on
4+
This is the official Rust client for {es}. Full documentation is hosted on
55
https://docs.rs/elasticsearch[docs.rs] -- this page provides _only_ an overview.
66

77
Further resources:
@@ -24,33 +24,7 @@ Further resources:
2424
[discrete]
2525
=== {es} Version Compatibility
2626

27-
|===
28-
| Rust client | Elasticsearch
29-
| 7.x | 7.x
30-
|===
31-
32-
A major version of the client is compatible with the same major version of {es}.
33-
Since {es} is developed following https://semver.org/[Semantic Versioning]
34-
principles, any minor/patch version of the client can be used against any
35-
minor/patch version of {es} **within the same major version lineage**. For
36-
example,
37-
38-
- A `7.5.0` client can be used against `7.0.0` Elasticsearch
39-
- A `7.5.0` client can be used against `7.6.0` Elasticsearch
40-
41-
In the former case, a 7.5.0 client may contain additional API functions that are
42-
not available in 7.0.0 {es}. In this case, these APIs cannot be used, but for
43-
any APIs available in {es}, the respective API functions on the client will be
44-
compatible.
45-
46-
In the latter case, a 7.5.0 client won't contain API functions for APIs that are
47-
introduced in {es} 7.6.0+, but for all other APIs available in {es}, the
48-
respective API functions on the client will be compatible.
49-
50-
**No compatibility assurances are given between different major versions of the
51-
client and {es}.** Major differences likely exist between major versions of
52-
{es}, particularly around request and response object formats, but also around
53-
API urls and behaviour.
27+
The Elasticsearch Rust client is forward compatible; meaning that the client supports communicating with greater minor versions of Elasticsearch. Elasticsearch language clients are also backwards compatible with lesser supported minor Elasticsearch versions.
5428

5529

5630
[discrete]

0 commit comments

Comments
 (0)