A Rust client for the ElasticSearch REST API, targeting ElasticSearch 2.0 and higher.
rs-es is a Rust client library for the ElasticSearch REST API, designed to provide full-featured access to ElasticSearch operations from Rust applications. It solves the problem of integrating ElasticSearch's powerful search and analytics capabilities into Rust projects with an idiomatic and type-safe interface.
Rust developers who need to interact with ElasticSearch clusters, particularly those working on search-heavy applications, data indexing pipelines, or analytics backends.
Developers choose rs-es for its comprehensive ElasticSearch API coverage, type-safe query building, and adherence to Rust conventions, offering a robust alternative to the official ElasticSearch client for older ElasticSearch versions.
A Rust client for the ElasticSearch REST API
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements core ElasticSearch operations like indexing, searching, deleting, and bulk operations, providing extensive access to the REST API as per the README.
Offers a builder pattern for constructing ElasticSearch queries in a type-safe manner, reducing runtime errors and aligning with Rust's static typing.
Supports scan and scroll with iterator-based patterns for efficiently processing large result sets, minimizing server load as described in the usage guide.
Adapts ElasticSearch concepts to Rust conventions, such as using 'doc_type' instead of reserved keywords, making it more natural for Rust developers.
Primarily targets ElasticSearch 2.0, with only experimental support for ES 5 via a feature flag, making it unsuitable for newer versions where the official client is recommended.
The README lists numerous unimplemented APIs and TODOs, including handling non-JSON calls and documentation, limiting advanced functionality.
Each client has a single HTTP connection, requiring multiple clients for concurrent operations, which can be inefficient for scalable applications.
Aggregation support is experimental and described as feeling cumbersome in the README, with verbose result handling and potential breaking changes.