---
title: Elasticsearch clients
description: Elasticsearch is easy to use from most popular programming languages, thanks to the wide range of official libraries and developer tools available. Elasticsearch...
url: https://www.elastic.co/docs/reference/elasticsearch-clients
products:
  - Elastic Cloud Serverless
---

# Elasticsearch clients
Elasticsearch is easy to use from most popular programming languages, thanks to the wide range of official libraries and developer tools available.

## Language client overview


| Language             | Quick install (latest version)                                                                                 | Docs                                                                           | Source                                                |
|----------------------|----------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|-------------------------------------------------------|
| Python               | `pip install elasticsearch`                                                                                    | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/python)     | [repo](https://github.com/elastic/elasticsearch-py)   |
| Java                 | ([project configuration](https://www.elastic.co/docs/reference/elasticsearch/clients/java/setup/installation)) | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/java)       | [repo](https://github.com/elastic/elasticsearch-java) |
| JavaScript / Node.js | `npm install @elastic/elasticsearch`                                                                           | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/javascript) | [repo](https://github.com/elastic/elasticsearch-js)   |
| C# / .NET            | `dotnet add package Elastic.Clients.Elasticsearch`                                                             | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/dotnet)     | [repo](https://github.com/elastic/elasticsearch-net)  |
| PHP                  | `composer require elasticsearch/elasticsearch`                                                                 | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/php)        | [repo](https://github.com/elastic/elasticsearch-php)  |
| Go                   | `require github.com/elastic/go-elasticsearch/v9 9.0`                                                           | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/go)         | [repo](https://github.com/elastic/go-elasticsearch)   |
| Ruby                 | `gem install elasticsearch`                                                                                    | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/ruby)       | [repo](https://github.com/elastic/elasticsearch-ruby) |
| Rust (experimental)  | `cargo add elasticsearch`                                                                                      | [docs](https://www.elastic.co/docs/reference/elasticsearch/clients/rust)       | [repo](https://github.com/elastic/elasticsearch-rs)   |


## Releases and compatibility

Elasticsearch client libraries are released for every Elasticsearch server major or minor release.
Patches are released independently to allow for faster bugfixes.
This release policy does not affect compatibility; for example, version 8.13.x of the client will be compatible with versions of the server 8.13.y where y >= x.
The Elasticsearch clients are forward compatible, meaning that the client supports communicating with greater or equal minor versions of Elasticsearch without breaking.
It does not mean that the client automatically supports new features of newer Elasticsearch versions; that is only possible after the release of a new client version.
For example, an 8.12 client will not automatically support the new features of Elasticsearch 8.13; the 8.13 client version is required for that.
Elasticsearch language clients are only backwards compatible with default distributions and without guarantees made.
<note>
  When upgrading Elasticsearch it is strongly recommended to upgrade the server first, _before_ the client.
  The forward compatibility policy allows client applications to continue to work with the new server before the client itself is upgraded.
</note>


## Local server development

For development and testing on a local Elasticsearch server, [start-local](https://github.com/elastic/start-local) is recommended:
```bash
curl -fsSL https://elastic.co/start-local | sh
```

Alternatively, learn how to [connect to your Elasticsearch endpoint](https://www.elastic.co/docs/solutions/elasticsearch-solution-project/search-connection-details) for other types of deployment.