Carrying forward the OpenSearch client libraries as a community

Wed, Aug 11, 2021 · Eli Fisher

Note: This post was updated in Dec 2021 to reflect the current status of the new clients.

Software projects often provide language specific client libraries to make it easy to integrate applications. OpenSearch is built to be wire compatible with open source Elasticsearch 7.10.2 so that anyone can leverage the existing clients, connectors, and tools with minimal modifications to their deployments.

Starting with version 7.14, multiple of the clients maintained by Elastic contain new logic that rejects connections to OpenSearch clusters or to clusters running open source distributions of Elasticsearch 7. This includes the Apache-licensed distribution provided by Elastic, as well as community distributions like Open Distro for Elasticsearch.

For the time being, people who use open source Elasticsearch, Open Distro, or OpenSearch should avoid upgrading to version 7.14 of these client libraries as this may break applications. Please see this documentation for recommended versions of client libraries that have been tested to work with open source Elasticsearch, Open Distro, and OpenSearch.

Over the next few weeks, the OpenSearch project will add new open source clients for connecting applications to any OpenSearch or Elasticsearch version 7 cluster. These clients will be derived from the last compatible version of the corresponding Elastic-maintained client before product checks were added. The list of clients includes:

  1. elasticsearch-pyopensearch-py
  2. elasticsearch-javaopensearch-java
  3. elasticsearch-net
  4. go-elasticsearchopensearch-go
  5. elasticsearch-jsopensearch-js
  6. elasticsearch-rubyopensearch-ruby
  7. eland
  8. elasticsearch-phpopensearch-php
  9. elasticsearch-rsopensearch-rs
  10. elasticsearch-perl
  11. elasticsearch-specification
  12. elasticsearch-hadoop

If there is a client library that you do not see, but would like to contribute to or maintain, please post a request in the forums.

As stated in OpenSearch’s 6th principle of development “Great open source software is built together, with a diverse community of contributors,” and so we are seeking co-maintainers for each of these client libraries.

Maintainers are active and visible members of the community, and have maintain-level permissions on a repository. They use those privileges to serve the community and evolve the software in the repository they maintain. As an OpenSearch project maintainer, you agree to advance the mission of the project and their repo, and to uphold the project’s Code of Conduct. It’s up to you.

Should you take on this responsibility, you won’t be alone—AWS will contribute engineers to support each library as well. In addition, AWS will ensure there is continuity should any maintainers step down in the future. If you’re interested in maintaining a client library, you’ll find an open issue in each repo where volunteers are being solicited.

I’d like to give a big thanks to the people who have already stepped up to help progress and maintain the forks of the clients: