elastic_reqwest 
Provides a synchronous reqwest implementation of the Elasticsearch REST API. The reqwest client is simple to use; there's basically no setup needed besides creating a reqwest::Client object to use for requests. The reqwest client is general-purpose, and suitable for any scenario where on-demand requests are sufficient.
This library is the HTTP backend for the higher-level elastic client.
Build Status
| Platform | Channel | Status |
|---|---|---|
| Linux / OSX | Stable / Nightly | |
| Windows | Nightly |
Documentation
| Version | Docs |
|---|---|
master |
|
current |
Alternatives
If you'd prefer to call Elasticsearch using a strongly-typed Query DSL builder, see rs-es.
Example
The elastic_reqwest client is a thin layer over reqwest; it just maps functions to routes. It's up to the caller to serialise and deserialise HTTP content.
- For query serialisation, the
json_strcrate provides thejson_str!macro for creating ad-hoc API queries. - For type serialisation / deserialisation, see
elastic_types.
Currently targeting the master Elasticsearch branch, aiming for 5.x.
This will be stabilised through features in the future.
Add elastic_reqwest and json_str to your Cargo.toml:
[dependencies]
elastic_requests = "*"
elastic_reqwest = "*"
reqwest = "*"
# Optional for request bodies
json_str = "*"
Ping the availability of your cluster:
extern crate elastic_requests as req;
extern crate elastic_reqwest as cli;
extern crate reqwest;
use ElasticClient;
use PingRequest;
let = default.unwrap;
client.elastic_req.unwrap;
Customise the location of the Elasticsearch cluster:
let = default;
params.base_url = Stringfrom;
A query DSL query:
extern crate json_str;
extern crate elastic_requests as req;
extern crate elastic_reqwest as cli;
extern crate reqwest;
use ElasticClient;
use SearchRequest;
let = default.unwrap;
let search = for_index_ty;
client.elastic_req.unwrap;