"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5073],{15680:(e,r,t)=>{t.d(r,{xA:()=>p,yg:()=>m});var a=t(96540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,a)}return t}function n(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?l(Object(t),!0).forEach((function(r){i(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function u(e,r){if(null==e)return{};var t,a,i=function(e,r){if(null==e)return{};var t,a,i={},l=Object.keys(e);for(a=0;a<l.length;a++)t=l[a],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)t=l[a],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var o=a.createContext({}),d=function(e){var r=a.useContext(o),t=r;return e&&(t="function"==typeof e?e(r):n(n({},r),e)),t},p=function(e){var r=d(e.components);return a.createElement(o.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return a.createElement(a.Fragment,{},r)}},c=a.forwardRef((function(e,r){var t=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=d(t),c=i,m=s["".concat(o,".").concat(c)]||s[c]||y[c]||l;return t?a.createElement(m,n(n({ref:r},p),{},{components:t})):a.createElement(m,n({ref:r},p))}));function m(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var l=t.length,n=new Array(l);n[0]=c;var u={};for(var o in r)hasOwnProperty.call(r,o)&&(u[o]=r[o]);u.originalType=e,u[s]="string"==typeof e?e:i,n[1]=u;for(var d=2;d<l;d++)n[d]=t[d];return a.createElement.apply(null,n)}return a.createElement.apply(null,t)}c.displayName="MDXCreateElement"},23993:(e,r,t)=>{t.r(r),t.d(r,{contentTitle:()=>o,default:()=>c,frontMatter:()=>u,metadata:()=>d,toc:()=>p});var a=t(58168),i=t(98587),l=(t(96540),t(15680)),n=["components"],u={title:"Community and Third Party Software",layout:"simple_page",canonical:"https://druid.apache.org/libraries"},o="Community and Third Party Software",d={type:"mdx",permalink:"/libraries",source:"@site/src/pages/libraries.md",title:"Community and Third Party Software",description:"Query Libraries",frontMatter:{title:"Community and Third Party Software",layout:"simple_page",canonical:"https://druid.apache.org/libraries"}},p=[{value:"Query Libraries",id:"query-libraries",level:2},{value:"Python",id:"python",level:4},{value:"R",id:"r",level:4},{value:"JavaScript",id:"javascript",level:4},{value:"Clojure",id:"clojure",level:4},{value:"Elixir",id:"elixir",level:4},{value:"Ruby",id:"ruby",level:4},{value:"SQL",id:"sql",level:4},{value:"PHP",id:"php",level:4},{value:"Scala",id:"scala",level:4},{value:"Java",id:"java",level:4},{value:".NET",id:"net",level:4},{value:"Rust",id:"rust",level:4},{value:"Other Druid Distributions",id:"other-druid-distributions",level:2},{value:"UIs",id:"uis",level:2},{value:"Tools",id:"tools",level:2},{value:"Community Extensions",id:"community-extensions",level:2},{value:"Add Your Software",id:"add-your-software",level:2}],s={toc:p},y="wrapper";function c(e){var r=e.components,t=(0,i.A)(e,n);return(0,l.yg)(y,(0,a.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"community-and-third-party-software"},"Community and Third Party Software"),(0,l.yg)("h2",{id:"query-libraries"},"Query Libraries"),(0,l.yg)("p",null,"Some great folks have written their own libraries to interact with Apache Druid."),(0,l.yg)("h4",{id:"python"},"Python"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/druid-io/pydruid"},"druid-io/pydruid")," - A python client for Druid")),(0,l.yg)("h4",{id:"r"},"R"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/druid-io/RDruid"},"druid-io/RDruid")," - An R connector for Druid")),(0,l.yg)("h4",{id:"javascript"},"JavaScript"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/implydata/plywood"},"implydata/plywood")," - A higher level API for Druid. An extension of the work that was started in facet.js."),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/7eggs/node-druid-query"},"7eggs/node-druid-query")," - A Node.js client for Druid")),(0,l.yg)("h4",{id:"clojure"},"Clojure"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/y42/clj-druid"},"y42/clj-druid")," - A Clojure client for Druid")),(0,l.yg)("h4",{id:"elixir"},"Elixir"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/GameAnalytics/panoramix"},"GameAnalytics/panoramix")," - An Elixir client for Druid")),(0,l.yg)("h4",{id:"ruby"},"Ruby"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/ruby-druid/ruby-druid"},"ruby-druid/ruby-druid")," - A ruby client for Druid"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/redBorder/druid_config"},"redBorder/druid_config")," - A ruby client to configure and check the status of a Druid Cluster"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/andremleblanc/druiddb-ruby"},"andremleblanc/druiddb-ruby")," - A Ruby client for Druid using the Kafka Indexing Service")),(0,l.yg)("h4",{id:"sql"},"SQL"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"http://calcite.apache.org/"},"Apache Calcite")," - SQL parser, planner and query engine whose ",(0,l.yg)("a",{parentName:"li",href:"http://calcite.apache.org/docs/druid_adapter.html"},"Druid adapter")," can query data residing in Druid, and combine it with data in other locations; has local and remote JDBC drivers ",(0,l.yg)("a",{parentName:"li",href:"http://calcite.apache.org/avatica/"},"powered by Avatica")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/implydata/plyql"},"implydata/plyql")," - A command line and HTTP interface for issuing SQL queries to Druid")),(0,l.yg)("h4",{id:"php"},"PHP"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/pixelfederation/druid-php"},"pixelfederation/druid-php")," - A PHP client for Druid"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/Neeke/PHP-Druid"},"Neeke/PHP-Druid")," - A Druid driver for PHP with PECL extension"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/level23/druid-client"},"level23/druid-client")," - Druid-client library with a query-builder. This library also allows you to query metadata, reindex datasources and more. ")),(0,l.yg)("h4",{id:"scala"},"Scala"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/ing-bank/scruid"},"ing-bank/scruid")," - A Scala client for Druid")),(0,l.yg)("h4",{id:"java"},"Java"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/zapr-oss/druidry"},"zapr/druidry")," - A Java Client and query generator for Druid")),(0,l.yg)("h4",{id:"net"},".NET"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/MindscapeHQ/druid4net"},"raygun/druid4net")," - A .NET client for Druid written in C#. Supports the .NET full framework and .NET Core.")),(0,l.yg)("h4",{id:"rust"},"Rust"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/bugzmanov/druid-io-rs"},"bugzmanov/druid-io-rs")," - Fully asynchronous, future-enabled Apache Druid client library for rust programming language.")),(0,l.yg)("h2",{id:"other-druid-distributions"},"Other Druid Distributions"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/eBay/embedded-druid"},"eBay/embedded-druid")," - Leveraging Druid capabilities in stand alone application"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.cloudera.com/products/hdp.html"},"Hortonworks Data platform")," - Hortonworks Data Platform includes Druid and Apache Hive to enable real-time data warehousing capabilities.   "),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"http://imply.io/download"},"Imply Analytics Platform")," - The Imply Analytics platform includes Druid bundled with all its dependencies, an exploratory analytics UI, and a SQL layer."),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.rilldata.com/"},"Rill Data")," - Rill provides a truly elastic, fully managed cloud service for Apache Druid.")),(0,l.yg)("h2",{id:"uis"},"UIs"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/apache/superset"},"Apache Superset")," - Superset is a modern data exploration and data visualization platform."),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.deep.bi/solutions/apache-druid"},"Deep.Explorer")," - A UI built for slice & dice analytics, adhoc queries and powerful, easy data visualizations"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/societe-generale/druidplugin"},"Grafana")," - A plugin for ",(0,l.yg)("a",{parentName:"li",href:"http://grafana.org/"},"Grafana")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/Quantiply/grafana-plugins/tree/master/features/druid"},"grafana")," - A plugin for ",(0,l.yg)("a",{parentName:"li",href:"http://grafana.org/"},"Grafana")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/implydata/pivot"},"Pivot")," - An exploratory analytics UI for Druid"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/metabase/metabase"},"Metabase")," - Simple dashboards, charts and query tool for your Druid DB"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/metatron-app/metatron-discovery"},"Metatron")," - All-in-one analytics with Druid from easy data preparation to fast visualization")),(0,l.yg)("h2",{id:"tools"},"Tools"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"/docs/latest/operations/insert-segment-to-db"},"Insert Segments")," - A tool that can insert segments' metadata into Druid metadata storage."),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/liquidm/druid-dumbo"},"liquidm/druid-dumbo")," - Scripts to help generate batch configs for the ingestion of data into Druid"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/housejester/druid-test-harness"},"housejester/druid-test-harness")," - A set of scripts to simplify standing up some servers and seeing how things work"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/spaghettifunk/druid-prometheus-exporter"},"spaghettifunk/druid-prometheus-exporter")," - A HTTP service for collecting Druid metrics and exposing them as Prometheus metrics"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/rovio/rovio-ingest"},"rovio-ingest")," - An implementation of the DatasourceV2 interface of Apache Spark\u2122 for writing Spark Datasets to Apache Druid\u2122.")),(0,l.yg)("h2",{id:"community-extensions"},"Community Extensions"),(0,l.yg)("p",null,"These are extensions from the community, beyond those included in the Druid repository itself."),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://github.com/acesinc/druid-cors-filter-extension"},"acesinc/druid-cors-filter-extension")," - An extension to enable CORS headers in http requests.")),(0,l.yg)("h2",{id:"add-your-software"},"Add Your Software"),(0,l.yg)("p",null,"If you've written software that uses Druid and want it included on this page,\n",(0,l.yg)("a",{parentName:"p",href:"https://github.com/apache/druid-website-src/blob/master/libraries.md"},"edit it on GitHub")," to create a pull request!"))}c.isMDXComponent=!0}}]);