Elastic Transport

Run tests

This gem provides a low-level Ruby client for connecting to an Elastic cluster. It powers both the Elasticsearch client and the Elastic Enterprise Search client.

In the simplest form, connect to Elasticsearch running on http://localhost:9200 without any configuration:

require 'elastic/transport'

client = Elastic::Transport::Client.new
response = client.perform_request('GET', '_cluster/health')
# => #<Elastic::Transport::Transport::Response:0x007fc5d506ce38 @status=200, @body={ ... } >

Refer to the official documentation on Elastic Transport.

Refer to Advanced Configuration to read about more configuration options.


This gem is compatible with maintained Ruby versions. See Ruby Maintenance Branches. We don't provide support to versions which have reached their end of life.

Development and Community

For local development, clone the repository and run bundle install. See rake -T for a list of available Rake tasks for running tests, generating documentation, starting a testing cluster, etc.

Bug fixes and features must be covered by unit tests.

A rake task is included to launch an Elasticsearch cluster with Docker. You need to install docker on your system and then run:

$ rake docker:start[VERSION]


$ rake docker:start[8.0.0-alpha1]

You can find the available version in Docker @ Elastic.

To run tests, launch a testing cluster and use the Rake tasks:

time rake test:unit
time rake test:integration

Use COVERAGE=true before running a test task to check coverage with Simplecov.

Github's pull requests and issues are used to communicate, send bug reports and code contributions.


This software is licensed under the Apache 2 license.