===========================
Community Supported Clients
===========================

Clients
=======

Perl
----

See the `official Elasticsearch Perl
client <http://www.elasticsearch.org/guide/en/elasticsearch/client/perl-api/current/index.html>`__.

Python
------

See the `official Elasticsearch Python
client <http://www.elasticsearch.org/guide/en/elasticsearch/client/python-api/current/index.html>`__.

-  `elasticsearch-dsl-py <http://github.com/elasticsearch/elasticsearch-dsl-py>`__
   chainable query and filter construction built on top of offical
   client.

-  `pyelasticsearch <http://github.com/rhec/pyelasticsearch>`__: Python
   client.

-  `ESClient <https://github.com/eriky/ESClient>`__: A lightweight and
   easy to use Python client for Elasticsearch.

-  `rawes <https://github.com/humangeo/rawes>`__: Python low level
   client.

-  `elasticutils <https://github.com/mozilla/elasticutils/>`__: A
   friendly chainable Elasticsearch interface for Python.

-  `Surfiki
   Refine <http://intridea.github.io/surfiki-refine-elasticsearch/>`__:
   Python Map-Reduce engine targeting Elasticsearch indices.

-  `pyes <http://github.com/aparo/pyes>`__: Python client.

Ruby
----

See the `official Elasticsearch Ruby
client <http://www.elasticsearch.org/guide/en/elasticsearch/client/ruby-api/current/index.html>`__.

-  `Retire <http://github.com/karmi/retire>`__: Ruby API & DSL, with
   ActiveRecord/ActiveModel integration (retired since Sep 2013).

-  `stretcher <https://github.com/PoseBiz/stretcher>`__: Ruby client.

-  `elastic\_searchable <https://github.com/wireframe/elastic_searchable/>`__:
   Ruby client + Rails integration.

-  `Flex <https://github.com/ddnexus/flex>`__: Ruby Client.

-  `elastics <https://github.com/printercu/elastics-rb>`__: Tiny client
   with built-in zero-downtime migrations and ActiveRecord integration.

PHP
---

See the `official Elasticsearch PHP
client <http://www.elasticsearch.org/guide/en/elasticsearch/client/php-api/current/index.html>`__.

-  `Elastica <http://github.com/ruflin/Elastica>`__: PHP client.

-  `elasticsearch <http://github.com/nervetattoo/elasticsearch>`__ PHP
   client.

-  `Sherlock <http://github.com/polyfractal/Sherlock>`__: PHP client,
   one-to-one mapping with query DSL, fluid interface.

-  `elasticsearch <https://github.com/nervetattoo/elasticsearch>`__ PHP
   5.3 client

Java
----

-  `Jest <https://github.com/searchbox-io/Jest>`__: Java Rest client.

-  There is of course the `native ES Java
   client <http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/index.html>`__

JavaScript
----------

See the `official Elasticsearch JavaScript
client <http://www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/index.html>`__.

-  `Elastic.js <https://github.com/fullscale/elastic.js>`__: A
   JavaScript implementation of the Elasticsearch Query DSL and Core
   API.

-  `node-elasticsearch-client <https://github.com/phillro/node-elasticsearch-client>`__:
   A NodeJS client for Elasticsearch.

-  `node-elastical <https://github.com/ramv/node-elastical>`__: Node.js
   client for the Elasticsearch REST API

-  `elastics <https://github.com/printercu/elastics>`__: Simple tiny
   client that just works

.NET
----

See the `official Elasticsearch .NET
client <http://www.elasticsearch.org/guide/en/elasticsearch/client/net-api/current/index.html>`__.

-  `PlainElastic.Net <https://github.com/Yegoroff/PlainElastic.Net>`__:
   .NET client.

-  `ElasticSearch.NET <https://github.com/medcl/ElasticSearch.Net>`__:
   .NET client.

Haskell
-------

-  `bloodhound <https://github.com/bitemyapp/bloodhound>`__: Haskell
   client and DSL.

Scala
-----

-  `elastic4s <https://github.com/sksamuel/elastic4s>`__: Scala DSL.

-  `esclient <https://github.com/scalastuff/esclient>`__: Thin Scala
   client.

-  `scalastic <https://github.com/bsadeh/scalastic>`__: Scala client.

-  `wabisabi <https://github.com/gphat/wabisabi>`__: Asynchronous REST
   API Scala client.

Clojure
-------

-  `Elastisch <http://github.com/clojurewerkz/elastisch>`__: Clojure
   client.

Go
--

-  `elastigo <https://github.com/mattbaird/elastigo>`__: Go client.

-  `goes <https://github.com/belogik/goes>`__: Go lib.

-  `elastic <https://github.com/olivere/elastic>`__: Elasticsearch
   client for Google Go.

Erlang
------

-  `erlastic\_search <http://github.com/tsloughter/erlastic_search>`__:
   Erlang client using HTTP.

-  `erlasticsearch <https://github.com/dieswaytoofast/erlasticsearch>`__:
   Erlang client using Thrift.

-  `Tirexs <https://github.com/datahogs/tirexs>`__: An
   `Elixir <https://github.com/elixir-lang/elixir>`__ based API/DSL,
   inspired by `Tire <http://github.com/karmi/tire>`__. Ready to use in
   pure Erlang environment.

EventMachine
------------

-  `em-elasticsearch <http://github.com/vangberg/em-elasticsearch>`__:
   elasticsearch library for eventmachine.

Command Line
------------

-  `es2unix <https://github.com/elasticsearch/es2unix>`__: Elasticsearch
   API consumable by the Linux command line.

-  `elasticshell <https://github.com/javanna/elasticshell>`__: command
   line shell for elasticsearch.

OCaml
-----

-  `ocaml-elasticsearch <https://github.com/tovbinm/ocaml-elasticsearch>`__:
   OCaml client for Elasticsearch

Smalltalk
---------

-  `Elasticsearch <http://ss3.gemstone.com/ss/Elasticsearch.html>`__ -
   Smalltalk client for Elasticsearch

Cold Fusion
-----------

-  `ColdFusion-Elasticsearch-Client <https://github.com/jasonfill/ColdFusion-ElasticSearch-Client>`__
   Cold Fusion client for Elasticsearch

NodeJS
------

-  `Node-Elasticsearch-Client <https://github.com/phillro/node-elasticsearch-client>`__
   A node.js client for elasticsearch

Front Ends
==========

-  `elasticsearch-head <https://github.com/mobz/elasticsearch-head>`__:
   A web front end for an Elasticsearch cluster.

-  `browser <https://github.com/OlegKunitsyn/elasticsearch-browser>`__:
   Web front-end over elasticsearch data.

-  `Inquisitor <https://github.com/polyfractal/elasticsearch-inquisitor>`__:
   Front-end to help debug/diagnose queries and analyzers

-  `Hammer <http://elastichammer.exploringelasticsearch.com/>`__: Web
   front-end for elasticsearch

-  `Calaca <https://github.com/romansanchez/Calaca>`__: Simple search
   client for Elasticsearch

-  `ESClient <https://github.com/rdpatil4/ESClient>`__: Simple search,
   update, delete client for Elasticsearch

Integrations
============

-  `Grails <http://grails.org/plugin/elasticsearch>`__: Elasticsearch
   Grails plugin.

-  `carrot2 <https://github.com/carrot2/elasticsearch-carrot2>`__:
   Results clustering with carrot2

-  `escargot <https://github.com/angelf/escargot>`__: Elasticsearch
   connector for Rails (WIP).

-  `Catalyst <https://metacpan.org/module/Catalyst::Model::Search::Elasticsearch>`__:
   Elasticsearch and Catalyst integration.

-  `django-elasticsearch <http://github.com/aparo/django-elasticsearch>`__:
   Django Elasticsearch Backend.

-  `elasticflume <http://github.com/Aconex/elasticflume>`__:
   `Flume <http://github.com/cloudera/flume>`__ sink implementation.

-  `Terrastore
   Search <http://code.google.com/p/terrastore/wiki/Search_Integration>`__:
   `Terrastore <http://code.google.com/p/terrastore/>`__ integration
   module with elasticsearch.

-  `Wonderdog <https://github.com/infochimps-labs/wonderdog>`__: Hadoop
   bulk loader into elasticsearch.

-  `Play!Framework <http://geeks.aretotally.in/play-framework-module-elastic-search-distributed-searching-with-json-http-rest-or-java>`__:
   Integrate with Play! Framework Application.

-  `ElasticaBundle <https://github.com/Exercise/FOQElasticaBundle>`__:
   Symfony2 Bundle wrapping Elastica.

-  `Drupal <https://drupal.org/project/elasticsearch_connector>`__:
   Drupal Elasticsearch integration (1.0.0 and later).

-  `Drupal <http://drupal.org/project/search_api_elasticsearch>`__:
   Drupal Elasticsearch integration via Search API (1.0.0 and earlier).

-  `couch\_es <https://github.com/refuge/couch_es>`__: elasticsearch
   helper for couchdb based products (apache couchdb, bigcouch & refuge)

-  `Jetty <https://github.com/sonian/elasticsearch-jetty>`__: Jetty HTTP
   Transport

-  `Spring
   Elasticsearch <https://github.com/dadoonet/spring-elasticsearch>`__:
   Spring Factory for Elasticsearch

-  `Spring Data
   Elasticsearch <https://github.com/spring-projects/spring-data-elasticsearch>`__:
   Spring Data implementation for Elasticsearch

-  `Apache Camel
   Integration <https://camel.apache.org/elasticsearch.html>`__: An
   Apache camel component to integrate elasticsearch

-  `elasticsearch-test <https://github.com/tlrx/elasticsearch-test>`__:
   Elasticsearch Java annotations for unit testing with
   `JUnit <http://www.junit.org/>`__

-  `Wp-Elasticsearch <http://searchbox-io.github.com/wp-elasticsearch/>`__:
   Elasticsearch WordPress Plugin

-  `eslogd <https://github.com/OlegKunitsyn/eslogd>`__: Linux daemon
   that replicates events to a central Elasticsearch server in real-time

-  `elasticsearch-clojure-repl <https://github.com/drewr/elasticsearch-clojure-repl>`__:
   Plugin that embeds nREPL for run-time introspective adventure! Also
   serves as an nREPL transport.

-  `Haystack <http://haystacksearch.org/>`__: Modular search for Django

-  `play2-elasticsearch <https://github.com/cleverage/play2-elasticsearch>`__:
   Elasticsearch module for Play Framework 2.x

-  `realtime-search <https://github.com/goodow/realtime-search>`__:
   Elasticsearch module for Vert.x

-  `dangle <https://github.com/fullscale/dangle>`__: A set of AngularJS
   directives that provide common visualizations for elasticsearch based
   on D3.

-  `ember-data-elasticsearch-kit <https://github.com/roundscope/ember-data-elasticsearch-kit>`__:
   An ember-data kit for both pushing and querying objects to
   Elasticsearch cluster

-  `elasticsearch-osem <https://github.com/kzwang/elasticsearch-osem>`__:
   A Java Object Search Engine Mapping (OSEM) for Elasticsearch

-  `Twitter Storehaus <https://github.com/twitter/storehaus>`__: Thin
   asynchronous scala client for storehaus.

-  `Tiki Wiki CMS Groupware <https://doc.tiki.org/Elasticsearch>`__ Tiki
   has native support for Elasticsearch. This provides faster & better
   search (facets, etc), along with some Natural Language Processing
   features (ex.: More like this)

-  `Kafka Standalone
   Consumer <https://github.com/reachkrishnaraj/kafka-elasticsearch-standalone-consumer>`__
   Easily Scaleable & Extendable, Kafka Standalone Consumer that will
   read the messages from Kafka, processes and index them in
   ElasticSearch

Misc
====

-  `Puppet <https://github.com/elasticsearch/puppet-elasticsearch>`__:
   Elasticsearch puppet module.

-  `Chef <http://github.com/elasticsearch/cookbook-elasticsearch>`__:
   Chef cookbook for Elasticsearch

-  `SaltStack <https://github.com/medcl/salt-elasticsearch>`__:
   SaltStack Module for Elasticsearch

-  `daikon <http://www.github.com/neogenix/daikon>`__: Daikon
   Elasticsearch CLI

-  `Scrutineer <https://github.com/Aconex/scrutineer>`__: A high
   performance consistency checker to compare what you’ve indexed with
   your source of truth content (e.g. DB)

Health and Performance Monitoring
=================================

-  `bigdesk <https://github.com/lukas-vlcek/bigdesk>`__: Live charts and
   statistics for elasticsearch cluster.

-  `Kopf <https://github.com/lmenezes/elasticsearch-kopf/>`__: Live
   cluster health and shard allocation monitoring with administration
   toolset.

-  `paramedic <https://github.com/karmi/elasticsearch-paramedic>`__:
   Live charts with cluster stats and indices/shards information.

-  `ElasticsearchHQ <http://www.elastichq.org/>`__: Free cluster health
   monitoring tool

-  `SPM for Elasticsearch <http://sematext.com/spm/index.html>`__:
   Performance monitoring with live charts showing cluster and node
   stats, integrated alerts, email reports, etc.

-  `check-es <https://github.com/radu-gheorghe/check-es>`__:
   Nagios/Shinken plugins for checking on elasticsearch

-  `check\_elasticsearch <https://github.com/anchor/nagios-plugin-elasticsearch>`__:
   An Elasticsearch availability and performance monitoring plugin for
   Nagios.

-  `opsview-elasticsearch <https://github.com/rbramley/Opsview-elasticsearch>`__:
   Opsview plugin written in Perl for monitoring Elasticsearch

-  `SegmentSpy <https://github.com/polyfractal/elasticsearch-segmentspy>`__:
   Plugin to watch Lucene segment merges across your cluster

-  `es2graphite <https://github.com/mattweber/es2graphite>`__: Send
   cluster and indices stats and status to Graphite for monitoring and
   graphing.

-  `Scout <https://scoutapp.com>`__: Provides plugins for monitoring
   Elasticsearch
   `nodes <https://scoutapp.com/plugin_urls/1331-elasticsearch-node-status>`__,
   `clusters <https://scoutapp.com/plugin_urls/1321-elasticsearch-cluster-status>`__,
   and
   `indices <https://scoutapp.com/plugin_urls/1341-elasticsearch-index-status>`__.

GitHub
======

GitHub is a place where a lot of development is done around
**elasticsearch**, here is a simple search for
`repositories <https://github.com/search?q=elasticsearch&type=Repositories>`__.
