<!DOCTYPE html>
<html lang="en">
  <head>	
    <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Apache Druid">
<meta name="keywords" content="druid,kafka,database,analytics,streaming,real-time,real time,apache,open source">
<meta name="author" content="Apache Software Foundation">

<title>Druid | Community and Third Party Software</title>

<link rel="alternate" type="application/atom+xml" href="/feed">
<link rel="shortcut icon" href="/img/favicon.png">

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">

<link href='//fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700,300italic|Open+Sans:300italic,400italic,600italic,400,300,600,700' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="/css/bootstrap-pure.css?v=1.1">
<link rel="stylesheet" href="/css/base.css?v=1.1">
<link rel="stylesheet" href="/css/header.css?v=1.1">
<link rel="stylesheet" href="/css/footer.css?v=1.1">
<link rel="stylesheet" href="/css/syntax.css?v=1.1">
<link rel="stylesheet" href="/css/docs.css?v=1.1">

<script>
  (function() {
    var cx = '000162378814775985090:molvbm0vggm';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>


  </head>
  <body>	
    <!-- Start page_header include -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<div class="top-navigator">
  <div class="container">
    <div class="left-cont">
      <a class="logo" href="/"><span class="druid-logo"></span></a>
    </div>
    <div class="right-cont">
      <ul class="links">
        <li class=""><a href="/technology">Technology</a></li>
        <li class=""><a href="/use-cases">Use Cases</a></li>
        <li class=""><a href="/druid-powered">Powered By</a></li>
        <li class=""><a href="/docs/latest/design/">Docs</a></li>
        <li class=""><a href="/community/">Community</a></li>
        <li class="header-dropdown">
          <a>Apache</a>
          <div class="header-dropdown-menu">
            <a href="https://www.apache.org/" target="_blank">Foundation</a>
            <a href="https://www.apache.org/events/current-event" target="_blank">Events</a>
            <a href="https://www.apache.org/licenses/" target="_blank">License</a>
            <a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a>
            <a href="https://www.apache.org/security/" target="_blank">Security</a>
            <a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a>
          </div>
        </li>
        <li class=" button-link"><a href="/downloads.html">Download</a></li>
      </ul>
    </div>
  </div>
  <div class="action-button menu-icon">
    <span class="fa fa-bars"></span> MENU
  </div>
  <div class="action-button menu-icon-close">
    <span class="fa fa-times"></span> MENU
  </div>
</div>

<script type="text/javascript">
  var $menu = $('.right-cont');
  var $menuIcon = $('.menu-icon');
  var $menuIconClose = $('.menu-icon-close');

  function showMenu() {
    $menu.fadeIn(100);
    $menuIcon.fadeOut(100);
    $menuIconClose.fadeIn(100);
  }

  $menuIcon.click(showMenu);

  function hideMenu() {
    $menu.fadeOut(100);
    $menuIconClose.fadeOut(100);
    $menuIcon.fadeIn(100);
  }

  $menuIconClose.click(hideMenu);

  $(window).resize(function() {
    if ($(window).width() >= 840) {
      $menu.fadeIn(100);
      $menuIcon.fadeOut(100);
      $menuIconClose.fadeOut(100);
    }
    else {
      $menu.fadeOut(100);
      $menuIcon.fadeIn(100);
      $menuIconClose.fadeOut(100);
    }
  });
</script>

<!-- Stop page_header include -->


    <div class="druid-header">
  <div class="container">
    <h1>Community and Third Party Software</h1>
    <h4></h4>
  </div>
</div>

<div class="container">
  <div class="row">
    <div class="col-md-10 col-md-offset-1">
      <h2 id="query-libraries">Query Libraries</h2>

<p>Some great folks have written their own libraries to interact with Apache Druid (incubating).</p>

<h4 id="python">Python</h4>

<ul>
<li><a href="https://github.com/druid-io/pydruid">druid-io/pydruid</a> - A python client for Druid</li>
</ul>

<h4 id="r">R</h4>

<ul>
<li><a href="https://github.com/druid-io/RDruid">druid-io/RDruid</a> - An R connector for Druid</li>
</ul>

<h4 id="javascript">JavaScript</h4>

<ul>
<li><a href="https://github.com/implydata/plywood">implydata/plywood</a> - A higher level API for Druid. An extension of the work that was started in facet.js.</li>
<li><a href="https://github.com/7eggs/node-druid-query">7eggs/node-druid-query</a> - A Node.js client for Druid</li>
</ul>

<h4 id="clojure">Clojure</h4>

<ul>
<li><a href="https://github.com/y42/clj-druid">y42/clj-druid</a> - A Clojure client for Druid</li>
</ul>

<h4 id="elixir">Elixir</h4>

<ul>
<li><a href="https://github.com/GameAnalytics/panoramix">GameAnalytics/panoramix</a> - An Elixir client for Druid</li>
</ul>

<h4 id="ruby">Ruby</h4>

<ul>
<li><a href="https://github.com/ruby-druid/ruby-druid">ruby-druid/ruby-druid</a> - A ruby client for Druid</li>
<li><a href="https://github.com/redBorder/druid_config">redBorder/druid_config</a> - A ruby client to configure and check the status of a Druid Cluster</li>
<li><a href="https://github.com/andremleblanc/druiddb-ruby">andremleblanc/druiddb-ruby</a> - A Ruby client for Druid using the Kafka Indexing Service</li>
</ul>

<h4 id="sql">SQL</h4>

<ul>
<li><a href="http://calcite.apache.org/">Apache Calcite</a> - SQL parser, planner and query engine whose <a href="http://calcite.apache.org/docs/druid_adapter.html">Druid adapter</a> can query data residing in Druid, and combine it with data in other locations; has local and remote JDBC drivers <a href="http://calcite.apache.org/avatica/">powered by Avatica</a></li>
<li><a href="https://github.com/implydata/plyql">implydata/plyql</a> - A command line and HTTP interface for issuing SQL queries to Druid</li>
</ul>

<h4 id="php">PHP</h4>

<ul>
<li><a href="https://github.com/pixelfederation/druid-php">pixelfederation/druid-php</a> - A PHP client for Druid</li>
<li><a href="https://github.com/Neeke/PHP-Druid">Neeke/PHP-Druid</a> - A Druid driver for PHP with PECL extension</li>
</ul>

<h4 id="scala">Scala</h4>

<ul>
<li><a href="https://github.com/ing-bank/scruid">ing-bank/scruid</a> - A Scala client for Druid</li>
</ul>

<h4 id="java">Java</h4>

<ul>
<li><a href="https://github.com/zapr-oss/druidry">zapr/druidry</a> - A Java Client and query generator for Druid</li>
</ul>

<h4 id="net">.NET</h4>

<ul>
<li><a href="https://github.com/MindscapeHQ/druid4net">raygun/druid4net</a> - A .NET client for Druid written in C#. Supports the .NET full framework and .NET Core.</li>
</ul>

<h2 id="other-druid-distributions">Other Druid Distributions</h2>

<ul>
<li><a href="http://imply.io/download">Imply Analytics Platform</a> - The Imply Analytics platform includes Druid bundled with all its dependencies, an exploratory analytics UI, and a SQL layer.</li>
<li><a href="https://github.com/eBay/embedded-druid">eBay/embedded-druid</a> - Leveraging Druid capabilities in stand alone application</li>
</ul>

<h2 id="uis">UIs</h2>

<ul>
<li><a href="https://github.com/airbnb/superset">airbnb/superset</a> - A web application to slice, dice and visualize data out of Druid. Formerly Caravel and Panoramix</li>
<li><a href="https://github.com/Quantiply/grafana-plugins/tree/master/features/druid">grafana</a> - A plugin for <a href="http://grafana.org/">Grafana</a></li>
<li><a href="https://github.com/implydata/pivot">Pivot</a> - An exploratory analytics UI for Druid</li>
<li><a href="https://github.com/metabase/metabase">Metabase</a> - Simple dashboards, charts and query tool for your Druid DB</li>
<li><a href="https://github.com/metatron-app/metatron-discovery">Metatron</a> - All-in-one analytics with Druid from easy data preparation to fast visualization</li>
</ul>

<h2 id="tools">Tools</h2>

<ul>
<li><a href="/docs/latest/operations/insert-segment-to-db.html">Insert Segments</a> - A tool that can insert segments&#39; metadata into Druid metadata storage.</li>
<li><a href="https://github.com/liquidm/druid-dumbo">liquidm/druid-dumbo</a> - Scripts to help generate batch configs for the ingestion of data into Druid</li>
<li><a href="https://github.com/housejester/druid-test-harness">housejester/druid-test-harness</a> - A set of scripts to simplify standing up some servers and seeing how things work</li>
</ul>

<h2 id="community-extensions">Community Extensions</h2>

<p>These are extensions from the community, beyond those included in the Druid repository itself.</p>

<ul>
<li><a href="https://github.com/acesinc/druid-cors-filter-extension">acesinc/druid-cors-filter-extension</a> - An extension to enable CORS headers in http requests.</li>
</ul>

<h2 id="add-your-software">Add Your Software</h2>

<p>If you&#39;ve written software that uses Druid and want it included on this page,
<a href="https://github.com/apache/incubator-druid-website-src/blob/master/libraries.md">edit it on GitHub</a> to create a pull request!</p>

    </div>
  </div>
</div>

    
    <!-- Start page_footer include -->
<footer class="druid-footer">
<div class="container">
  <div class="text-center">
    <p>
    <a href="/technology">Technology</a>&ensp;·&ensp;
    <a href="/use-cases">Use Cases</a>&ensp;·&ensp;
    <a href="/druid-powered">Powered by Druid</a>&ensp;·&ensp;
    <a href="/docs/latest">Docs</a>&ensp;·&ensp;
    <a href="/community/">Community</a>&ensp;·&ensp;
    <a href="/downloads.html">Download</a>&ensp;·&ensp;
    <a href="/faq">FAQ</a>
    </p>
  </div>
  <div class="text-center">
    <a title="Join the user group" href="https://groups.google.com/forum/#!forum/druid-user" target="_blank"><span class="fa fa-comments"></span></a>&ensp;·&ensp;
    <a title="Follow Druid" href="https://twitter.com/druidio" target="_blank"><span class="fab fa-twitter"></span></a>&ensp;·&ensp;
    <a title="Download via Apache" href="https://www.apache.org/dyn/closer.cgi?path=/incubator/druid/0.16.0-incubating/apache-druid-0.16.0-incubating-bin.tar.gz" target="_blank"><span class="fas fa-feather"></span></a>&ensp;·&ensp;
    <a title="GitHub" href="https://github.com/apache/incubator-druid" target="_blank"><span class="fab fa-github"></span></a>
  </div>
  <div class="text-center license">
    Copyright © 2019 <a href="https://www.apache.org/" target="_blank">Apache Software Foundation</a>.<br>
    Except where otherwise noted, licensed under <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>.<br>
    Apache Druid, Druid, and the Druid logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
  </div>
</div>
</footer>

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-131010415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'UA-131010415-1');
</script>
<script>
  function trackDownload(type, url) {
    ga('send', 'event', 'download', type, url);
  }
</script>
<script src="//code.jquery.com/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="/assets/js/druid.js"></script>
<!-- stop page_footer include -->

    
  </body>
</html>
