elastic-hyper alternatives and similar packages
Based on the "ElasticSearch" category.
Alternatively, view elastic-hyper alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of elastic-hyper or a related project?
README
elastic_reqwest

Provides a no-fuss, 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. It also splits the request process into a few logical methods that could be easily split across asynchronous boundaries.
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 |
---|---|
current |
Alternatives
If you'd prefer to call Elasticsearch using a strongly-typed Query DSL builder, see rs-es
.
For a higher-level client that supports strongly-typed response parsing, document mapping see elastic
. It uses elastic_reqwest
as its HTTP layer.
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_str
crate 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_reqwest = "*"
reqwest = "*"
# Optional for request bodies
json_str = "*"
Ping the availability of your cluster:
extern crate elastic_reqwest as cli;
extern crate reqwest;
use cli::{ElasticClient, ParseResponse, parse};
use cli::req::PingRequest;
use cli::res::PingResponse;
let (client, params) = cli::default().unwrap();
let http_res = client.elastic_req(¶ms, PingRequest::new()).unwrap();
let parse_res = parse::<PingResponse>().from_response(http_res).unwrap();
Customise the location of the Elasticsearch cluster:
let (mut client, mut params) = elastic::default();
params.base_url = String::from("http://eshost:9200");
A query DSL query:
#[macro_use]
extern crate json_str;
extern crate elastic_reqwest as cli;
extern crate reqwest;
use cli::{ElasticClient, ParseResponse, parse};
use cli::req::SearchRequest;
use cli::res::SearchResponse;
let (client, params) = cli::default().unwrap();
let search = {
let body = json_str!({
query: {
filtered: {
query: {
match_all: {}
},
filter: {
geo_distance: {
distance: "20km",
location: {
lat: 37.776,
lon: -122.41
}
}
}
}
}
});
SearchRequest::for_index_ty("myindex", "mytype", body)
};
let http_res = client.elastic_req(¶ms, search).unwrap();
let search_res = parse::<SearchResponse>().from_response(http_res).unwrap();