<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/supportingprojects.xml
 | Rendered using Apache Maven Fluido Skin 1.7.1-HBase
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache HBase &#x2013; Supporting Projects</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.1-HBase.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script type="text/javascript" src="./js/apache-maven-fluido-1.7.1-HBase.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0"></meta>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap-responsive.min.css"/>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/styles/github.min.css"/>
      <link rel="stylesheet" href="css/site.css"/>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/highlight.min.js"></script>
  </head>
  <body class="topBarEnabled">
    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
            <div class="container">
              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
              </a>
              <div class="nav-collapse">
            <ul class="nav">
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache HBase Project <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="index.html" title="Overview">Overview</a></li>
            <li><a href="https://www.apache.org/licenses/" title="License">License</a></li>
            <li><a href="downloads.html" title="Downloads">Downloads</a></li>
            <li><a href="https://issues.apache.org/jira/browse/HBASE?report=com.atlassian.jira.plugin.system.project:changelog-panel#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel" title="Release Notes">Release Notes</a></li>
            <li><a href="coc.html" title="Code Of Conduct">Code Of Conduct</a></li>
            <li><a href="http://blogs.apache.org/hbase/" title="Blog">Blog</a></li>
            <li><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
            <li><a href="team-list.html" title="Team">Team</a></li>
            <li><a href="https://reviews.apache.org/" title="ReviewBoard">ReviewBoard</a></li>
            <li><a href="sponsors.html" title="HBase Sponsors">HBase Sponsors</a></li>
            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
            <li><a href="poweredbyhbase.html" title="Powered by HBase">Powered by HBase</a></li>
            <li><a href="resources.html" title="Other resources">Other resources</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="project-summary.html" title="Project Summary">Project Summary</a></li>
            <li><a href="dependency-info.html" title="Dependency Information">Dependency Information</a></li>
            <li><a href="source-repository.html" title="Source Repository">Source Repository</a></li>
            <li><a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li>
            <li><a href="dependency-management.html" title="Dependency Management">Dependency Management</a></li>
            <li><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
            <li><a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a></li>
            <li><a href="plugin-management.html" title="Plugin Management">Plugin Management</a></li>
            <li><a href="plugins.html" title="Plugins">Plugins</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation and API <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="book.html" target="_blank" title="Reference Guide">Reference Guide</a></li>
            <li><a href="apache_hbase_reference_guide.pdf" target="_blank" title="Reference Guide (PDF)">Reference Guide (PDF)</a></li>
            <li><a href="book.html#quickstart" target="_blank" title="Getting Started">Getting Started</a></li>
            <li><a href="apidocs/index.html" target="_blank" title="User API">User API</a></li>
            <li><a href="testapidocs/index.html" target="_blank" title="User API (Test)">User API (Test)</a></li>
            <li><a href="devapidocs/index.html" target="_blank" title="Developer API">Developer API</a></li>
            <li><a href="testdevapidocs/index.html" target="_blank" title="Developer API (Test)">Developer API (Test)</a></li>
            <li><a href="http://abloz.com/hbase/book.html" target="_blank" title="中文参考指南(单页)">中文参考指南(单页)</a></li>
            <li><a href="book.html#faq" target="_blank" title="FAQ">FAQ</a></li>
            <li><a href="book.html#other.info" target="_blank" title="Videos/Presentations">Videos/Presentations</a></li>
            <li><a href="https://cwiki.apache.org/confluence/display/HADOOP2/Hbase" target="_blank" title="Wiki">Wiki</a></li>
            <li><a href="acid-semantics.html" target="_blank" title="ACID Semantics">ACID Semantics</a></li>
            <li><a href="book.html#arch.bulk.load" target="_blank" title="Bulk Loads">Bulk Loads</a></li>
            <li><a href="metrics.html" target="_blank" title="Metrics">Metrics</a></li>
            <li><a href="book.html#replication" target="_blank" title="Cluster replication">Cluster replication</a></li>
            <li class="dropdown-submenu">
<a href="" title="1.4 Documentation">1.4 Documentation</a>
              <ul class="dropdown-menu">
                  <li><a href="1.4/book.html" target="_blank" title="Ref Guide">Ref Guide</a></li>
                  <li><a href="1.4/book.pdf" target="_blank" title="Reference Guide (PDF)">Reference Guide (PDF)</a></li>
                  <li><a href="1.4/apidocs/index.html" target="_blank" title="User API">User API</a></li>
                  <li><a href="1.4/devapidocs/index.html" target="_blank" title="Developer API">Developer API</a></li>
              </ul>
            </li>
            <li class="dropdown-submenu">
<a href="" title="2.3 Documentation">2.3 Documentation</a>
              <ul class="dropdown-menu">
                  <li><a href="2.3/book.html" target="_blank" title="Ref Guide">Ref Guide</a></li>
                  <li><a href="2.3/apache_hbase_reference_guide.pdf" target="_blank" title="Reference Guide (PDF)">Reference Guide (PDF)</a></li>
                  <li><a href="2.3/apidocs/index.html" target="_blank" title="User API">User API</a></li>
                  <li><a href="2.3/testapidocs/index.html" target="_blank" title="User API (Test)">User API (Test)</a></li>
                  <li><a href="2.3/devapidocs/index.html" target="_blank" title="Developer API">Developer API</a></li>
                  <li><a href="2.3/testdevapidocs/index.html" target="_blank" title="Developer API (Test)">Developer API (Test)</a></li>
              </ul>
            </li>
        </ul>
      </li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="http://www.apache.org/foundation/" target="_blank" title="Apache Software Foundation">Apache Software Foundation</a></li>
            <li><a href="http://www.apache.org/foundation/how-it-works.html" target="_blank" title="How Apache Works">How Apache Works</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank" title="Sponsoring Apache">Sponsoring Apache</a></li>
        </ul>
      </li>
            </ul>
    <div id="search-form" class="navbar-search pull-right">
      <script type="text/javascript">
      var cx = '000385458301414556862:sq1bb0xugjg';

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

      </script>
      <gcse:search></gcse:search>
  </div>
            </div>
        </div>
      </div>
    </div>
    <div class="container">
      <div id="banner">
        <div class="pull-left"><a href="./" id="bannerLeft"><img src=""  alt=""/></a></div>
        <div class="pull-right"><a href="http://hbase.apache.org/" id="bannerRight"><img src="images/hbase_logo_with_orca_large.png"  alt="Apache HBase"/></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        </ul>
      </div>
        <div id="bodyColumn" >

  
<div class="section">
<h2><a name="Supporting_Projects"></a>Supporting Projects</h2>
  
<p>This page is a list of projects that are related to HBase. To
    have your project added, file a documentation JIRA or email
    <a class="externalLink" href="mailto:dev@hbase.apache.org">hbase-dev</a> with the relevant
    information. If you notice out-of-date information, use the same avenues to
    report it.
  </p>
  
<p><b>These items are user-submitted and the HBase team assumes no responsibility for their accuracy.</b></p>
  
<div class="section">
<h3><a name="Projects_that_add_new_features_to_HBase"></a>Projects that add new features to HBase</h3>
  
<dl>
   
<dt><a class="externalLink" href="https://github.com/XiaoMi/themis/">Themis</a></dt>
   
<dd>Themis provides cross-row/cross-table transaction on HBase based on
    Google's Percolator.</dd>
   
<dt><a class="externalLink" href="https://github.com/caskdata/tephra">Tephra</a></dt>
   
<dd>Cask Tephra provides globally consistent transactions on top of Apache
    HBase.</dd>
   
<dt><a class="externalLink" href="https://github.com/VCNC/haeinsa">Haeinsa</a></dt>
   
<dd>Haeinsa is linearly scalable multi-row, multi-table transaction library
    for HBase.</dd>
   
<dt><a class="externalLink" href="https://github.com/juwi/HBase-TAggregator">HBase TAggregator</a></dt>
   
<dd>An HBase coprocessor for timeseries-based aggregations.</dd>
   
<dt><a class="externalLink" href="http://trafodion.incubator.apache.org/">Apache Trafodion</a></dt>
   
<dd>Apache Trafodion is a webscale SQL-on-Hadoop solution enabling
    transactional or operational workloads on Hadoop.</dd>
   
<dt><a class="externalLink" href="http://phoenix.apache.org/">Apache Phoenix</a></dt>
   
<dd>Apache Phoenix is a relational database layer over HBase delivered as a
    client-embedded JDBC driver targeting low latency queries over HBase data.</dd>
   
<dt><a class="externalLink" href="https://github.com/cloudera/hue/tree/master/apps/hbase">Hue HBase Browser</a></dt>
   
<dd>An Easy &amp; Powerful WebUI for HBase, distributed with <a class="externalLink" href="https://www.gethue.com">Hue</a>.</dd>
   
<dt><a class="externalLink" href="https://github.com/NGDATA/hbase-indexer/tree/master/hbase-sep">HBase SEP</a></dt>
   
<dd>the HBase Side Effect Processor, a system for asynchronously and reliably listening to HBase
    mutation events, based on HBase replication.</dd>
   
<dt><a class="externalLink" href="https://github.com/ngdata/hbase-indexer">Lily HBase Indexer</a></dt>
   
<dd>indexes HBase content to Solr by listening to the replication stream
    (uses the HBase SEP).</dd>
   
<dt><a class="externalLink" href="https://github.com/sonalgoyal/crux/">Crux</a></dt>
   
<dd> - HBase Reporting and Analysis with support for simple and composite keys,
    get and range scans, column based filtering, charting.</dd>
   
<dt><a class="externalLink" href="https://github.com/yahoo/omid/">Omid</a></dt>
   
<dd> - Lock-free transactional support on top of HBase providing Snapshot
    Isolation.</dd>
   
<dt><a class="externalLink" href="http://dev.tailsweep.com/projects/parhely">Parhely</a></dt>
   
<dd>ORM for HBase</dd>
   
<dt><a class="externalLink" href="http://code.google.com/p/hbase-writer/">HBase-Writer</a></dt>
   
<dd> Heritrix2 Processor for writing crawls to HBase.</dd>
   
<dt><a class="externalLink" href="http://www.pigi-project.org/">Pigi Project</a></dt>
   
<dd>The Pigi Project is an ORM-like framework. It includes a configurable
    index system and a simple object to HBase mapping framework (or indexing for
    HBase if you like).  Designed for use by web applications.</dd>
   
<dt><a class="externalLink" href="http://code.google.com/p/hbase-thrift/">hbase-thrift</a></dt>
   
<dd>hbase-thrift generates and installs Perl and Python Thrift bindings for
    HBase.</dd>
   
<dt><a class="externalLink" href="http://belowdeck.kissintelligentsystems.com/ohm">OHM</a></dt>
   
<dd>OHM is a weakly relational ORM for HBase which provides Object Mapping and
    Column indexing. It has its own compiler capable of generating interface
    code for multiple languages. Currently C# (via the Thrift API), with support
    for Java currently in development. The compiler is easily extensible to add
    support for other languages.</dd>
   
<dt><a class="externalLink" href="http://datastore.googlecode.com">datastore</a></dt>
   
<dd>Aims to be an implementation of the
    <a class="externalLink" href="http://code.google.com/appengine/docs/python/datastore/">Google app-engine datastore</a>
    in Java using HBase instead of bigtable.</dd>
   
<dt><a class="externalLink" href="http://datanucleus.org">DataNucleus</a></dt>
   
<dd>DataNucleus is a Java JDO/JPA/REST implementation. It supports HBase and
    many other datastores.</dd>
   
<dt><a class="externalLink" href="http://github.com/impetus-opensource/Kundera">Kundera</a></dt>
   
<dd>Kundera is a JPA 2.0 based object-datastore mapping library for HBase,
    Cassandra and MongoDB.</dd>
   
<dt><a class="externalLink" href="http://github.com/zohmg/zohmg/tree/master">Zohmg</a></dt>
   
<dd>Zohmg is a time-series data store that uses HBase as its backing store.</dd>
   
<dt><a class="externalLink" href="http://grails.org/plugin/gorm-hbase">Grails Support</a></dt>
   
<dd>Grails HBase plug-in.</dd>
   
<dt><a class="externalLink" href="http://www.bigrecord.org">BigRecord</a></dt>
   
<dd>is an active_record-based object mapping layer for Ruby on Rails.</dd>
   
<dt><a class="externalLink" href="http://github.com/greglu/hbase-stargate">hbase-stargate</a></dt>
   
<dd>Ruby client for HBase Stargate.</dd>
   
<dt><a class="externalLink" href="http://github.com/ghelmling/meetup.beeno">Meetup.Beeno</a></dt>
   
<dd>Meetup.Beeno is a simple HBase Java &quot;beans&quot; mapping framework based on
    annotations. It includes a rudimentary high level query API that generates
    the appropriate server-side filters.</dd>
   
<dt><a class="externalLink" href="http://www.springsource.org/spring-data/hadoop">Spring Hadoop</a></dt>
   
<dd> - The Spring Hadoop project provides support for writing Apache Hadoop
    applications that benefit from the features of Spring, Spring Batch and
    Spring Integration.</dd>
   
<dt><a class="externalLink" href="https://jira.springsource.org/browse/SPR-5950">Spring Framework HBase Template</a></dt>
   
<dd>Spring Framework HBase Template provides HBase data access templates
    similar to what is provided in Spring for JDBC, Hibernate, iBatis, etc.
    If you find this useful, please vote for its inclusion in the Spring Framework.</dd>
   
<dt><a class="externalLink" href="http://github.com/davidsantiago/clojure-hbase">Clojure-HBase</a></dt>
   
<dd>A library for convenient access to HBase from Clojure.</dd>
   
<dt><a class="externalLink" href="http://www.lilyproject.org/lily/about/playground/hbaseindexes.html">HBase indexing library</a></dt>
   
<dd>A library for building and querying HBase-table-based indexes.</dd>
   
<dt><a class="externalLink" href="http://github.com/akkumar/hbasene">HBasene</a></dt>
   
<dd>Lucene+HBase - Using HBase as the backing store for the TF-IDF
    representations needed by Lucene. Also, contains a library for constructing
    lucene indices from HBase schema.</dd>
   
<dt><a class="externalLink" href="http://github.com/larsgeorge/jmxtoolkit">JMXToolkit</a></dt>
   
<dd>A HBase tailored JMX toolkit enabling monitoring with Cacti and checking
    with Nagios or similar.</dd>
   
<dt><a class="externalLink" href="http://github.com/ykulbak/ihbase">IHBASE</a></dt>
   
<dd>IHBASE provides faster scans by indexing regions, each region has its own
    index. The indexed columns are user-defined and indexes can be intersected or
    joined in a single query.</dd>
   
<dt><a class="externalLink" href="http://github.com/apurtell/hbase-ec2">HBASE EC2 scripts</a></dt>
   
<dd>This collection of bash scripts allows you to run HBase clusters on
    Amazon's Elastic Compute Cloud (EC2) service with best practices baked in.</dd>
   
<dt><a class="externalLink" href="http://github.com/apurtell/hbase-stargate">Stargate</a></dt>
   
<dd>Stargate provides an enhanced RESTful interface.</dd>
   
<dt><a class="externalLink" href="http://github.com/hbase-trx/hbase-transactional-tableindexed">HBase-trx</a></dt>
   
<dd>HBase-trx provides Transactional (JTA) and indexed extensions of HBase.</dd>
   
<dt><a class="externalLink" href="http://github.com/simplegeo/python-hbase-thrift">HBase Thrift Python client Debian package</a></dt>
   
<dd>Debian packages for the HBase Thrift Python client (see readme for
    sources.list setup)</dd>
   
<dt><a class="externalLink" href="http://github.com/amitrathore/capjure">capjure</a></dt>
   
<dd>capjure is a persistence helper for HBase. It is written in the Clojure
    language, and supports persisting of native hash-maps.</dd>
   
<dt><a class="externalLink" href="http://github.com/sematext/HBaseHUT">HBaseHUT</a></dt>
   
<dd>(High Update Throughput for HBase) It focuses on write performance during
    records update (by avoiding doing Get on every Put to update record).</dd>
   
<dt><a class="externalLink" href="http://github.com/sematext/HBaseWD">HBaseWD</a></dt>
   
<dd>HBase Writes Distributor spreads records over the cluster even when their
    keys are sequential, while still allowing fast range scans over them</dd>
   
<dt><a class="externalLink" href="http://code.google.com/p/hbase-jdo/">HBase UI Tool &amp; Util</a></dt>
   
<dd>HBase UI Tool &amp; Util is an HBase UI client and simple util module.
    It can handle hbase more easily like jdo(not persistence api)</dd>
   
<dt><a class="externalLink" href="https://github.com/flipkart-incubator/hbase-orm">HBase ORM</a></dt>
   
<dd>A light-weight HBase ORM library that enables object-oriented access of HBase records with minimal coding and good testability</dd>
  </dl>
  </div>
<div class="section">
<h3><a name="Example_HBase_Applications"></a>Example HBase Applications</h3>
  
<ul>
    
<li><a class="externalLink" href="http://github.com/andreisavu/feedaggregator">HBase powered feed aggregator</a>
    by Savu Andrei -- 200909</li>
  </ul>
</div></div>


        </div>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
            <p>Copyright &copy;2007&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-07-20</li>
</p>
        </div>
        <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
</p>
      </div>
    </footer>
  </body>
</html>
