<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="A new open source Apache Hadoop ecosystem project, Apache Kudu completes Hadoop's storage layer to enable fast analytics on fast data" />
    <meta name="author" content="Cloudera" />
    <title>Apache Kudu - Releases</title>
    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
          integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
          crossorigin="anonymous">

    <!-- Custom styles for this template -->
    <link href="/css/kudu.css" rel="stylesheet"/>
    <link href="/css/asciidoc.css" rel="stylesheet"/>
    <link rel="shortcut icon" href="/img/logo-favicon.ico" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" />

    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
  </head>
  <body>
    <div class="kudu-site container-fluid">
      <!-- Static navbar -->
        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="logo" href="/"><img
                src="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png"
                srcset="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png 1x, //d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_160px.png 2x"
                alt="Apache Kudu"/></a>
              
            </div>
            <div id="navbar" class="collapse navbar-collapse">
              <ul class="nav navbar-nav navbar-right">
                <li >
                  <a href="/">Home</a>
                </li>
                <li >
                  <a href="/overview.html">Overview</a>
                </li>
                <li >
                  <a href="/docs/">Documentation</a>
                </li>
                <li class="active">
                  <a href="/releases/">Releases</a>
                </li>
                <li >
                  <a href="/blog/">Blog</a>
                </li>
                <!-- NOTE: this dropdown menu does not appear on Mobile, so don't add anything here
                     that doesn't also appear elsewhere on the site. -->
                <li class="dropdown">
                  <a href="/community.html" role="button" aria-haspopup="true" aria-expanded="false">Community <span class="caret"></span></a>
                  <ul class="dropdown-menu">
                    <li class="dropdown-header">GET IN TOUCH</li>
                    <li><a class="icon email" href="/community.html">Mailing Lists</a></li>
                    <li><a class="icon slack" href="https://getkudu-slack.herokuapp.com/">Slack Channel</a></li>
                    <li role="separator" class="divider"></li>
                    <li><a href="/community.html#meetups-user-groups-and-conference-presentations">Events and Meetups</a></li>
                    <li><a href="/committers.html">Project Committers</a></li>
                    <li><a href="/ecosystem.html">Ecosystem</a></li>
                    <!--<li><a href="/roadmap.html">Roadmap</a></li>-->
                    <li><a href="/community.html#contributions">How to Contribute</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">DEVELOPER RESOURCES</li>
                    <li><a class="icon github" href="https://github.com/apache/incubator-kudu">GitHub</a></li>
                    <li><a class="icon gerrit" href="http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu">Gerrit Code Review</a></li>
                    <li><a class="icon jira" href="https://issues.apache.org/jira/browse/KUDU">JIRA Issue Tracker</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">SOCIAL MEDIA</li>
                    <li><a class="icon twitter" href="https://twitter.com/ApacheKudu">Twitter</a></li>
                    <li><a href="https://www.reddit.com/r/kudu/">Reddit</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">APACHE SOFTWARE FOUNDATION</li>
                    <li><a href="https://www.apache.org/security/" target="_blank">Security</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="https://www.apache.org/licenses/" target="_blank">License</a></li>
                  </ul>
                </li>
                <li >
                  <a href="/faq.html">FAQ</a>
                </li>
              </ul><!-- /.nav -->
            </div><!-- /#navbar -->
          </div><!-- /.container-fluid -->
        </nav>


<div class="row-fluid">
  <div class="col-lg-12 releases">

<h2 id="apache-kudu-releases">Apache Kudu releases</h2>

<h3 id="latest-release">Latest release</h3>

<ul>
  <li><strong><a href="1.16.0/">Kudu 1.16.0</a></strong> was released on Apr 11, 2022. <!-- LATREL: DO NOT REMOVE -->
    <ul>
      <li><a href="1.16.0/docs/">Kudu 1.16.0 Documentation</a></li>
      <li><a href="1.16.0/apidocs/">Kudu 1.16.0 Java API docs</a></li>
      <li><a href="1.16.0/cpp-client-api/">Kudu 1.16.0 C++ API docs</a></li>
    </ul>
  </li>
</ul>

<h3 id="previous-releases-ongoing-support">Previous releases (ongoing support)</h3>

<ul>
  <li><strong><a href="1.15.0/">Kudu 1.15.0</a></strong> was released on Jun 22, 2021. <!-- PREVREL: DO NOT REMOVE -->
    <ul>
      <li><a href="1.15.0/docs/">Kudu 1.15.0 Documentation</a></li>
      <li><a href="1.15.0/apidocs/">Kudu 1.15.0 Java API docs</a></li>
      <li><a href="1.15.0/cpp-client-api/">Kudu 1.15.0 C++ API docs</a></li>
    </ul>
  </li>
  <li><strong><a href="1.14.0/">Kudu 1.14.0</a></strong> was released on Jan 28, 2021. <!-- PREVREL: DO NOT REMOVE -->
    <ul>
      <li><a href="1.14.0/docs/">Kudu 1.14.0 Documentation</a></li>
      <li><a href="1.14.0/apidocs/">Kudu 1.14.0 Java API docs</a></li>
      <li><a href="1.14.0/cpp-client-api/">Kudu 1.14.0 C++ API docs</a></li>
    </ul>
  </li>
</ul>

<h3 id="archived-releases">Archived releases</h3>
<ul>
  <li><a href="1.13.0/">Kudu 1.13.0</a> was released on Sep 17, 2020.  <!--ARCHREL: DO NOT REMOVE --></li>
  <li><a href="1.12.0/">Kudu 1.12.0</a> was released on May 11, 2020.</li>
  <li><a href="1.11.1/">Kudu 1.11.1</a>was released on November 20, 2019.</li>
  <li><a href="1.10.1/">Kudu 1.10.1</a> was released on November 20, 2019.</li>
  <li><a href="1.11.0/">Kudu 1.11.0</a> was released on November 1, 2019.</li>
  <li><a href="1.10.0/">Kudu 1.10.0</a> was released on July 9, 2019.</li>
  <li><a href="1.9.0/">Kudu 1.9.0</a> was released on March 12, 2019.</li>
  <li><a href="1.8.0/">Kudu 1.8.0</a> was released on October 24, 2018.</li>
  <li><a href="1.7.1/">Kudu 1.7.1</a> was released on June 7, 2018.</li>
  <li><a href="1.7.0/">Kudu 1.7.0</a> was released on March 23, 2018.</li>
  <li><a href="1.6.0/">Kudu 1.6.0</a> was released on December 07, 2017.</li>
  <li><a href="1.5.0/">Kudu 1.5.0</a> was released on September 8, 2017.</li>
  <li><a href="1.4.0/">Kudu 1.4.0</a> was released on June 13, 2017.</li>
  <li><a href="1.3.1/">Kudu 1.3.1</a> was released on April 19, 2017. It was a bug fix release.</li>
  <li><a href="1.3.0/">Kudu 1.3.0</a> was released on March 20, 2017.</li>
  <li><a href="1.2.0/">Kudu 1.2.0</a> was released on January 18, 2017.</li>
  <li><a href="1.1.0/">Kudu 1.1.0</a> was released on November 21, 2016.</li>
  <li><a href="1.0.1/">Kudu 1.0.1</a> was released on October 11, 2016.</li>
  <li><a href="1.0.0/">Kudu 1.0.0</a> was released on September 19, 2016.
  It was the first release not considered “beta”.</li>
  <li><a href="0.10.0/">Kudu 0.10.0 (beta)</a> was released on August 23, 2016.
  It was the first version to be released after Kudu’s graduation from the
  Apache Incubator.</li>
  <li><a href="0.9.1/">Kudu 0.9.1-incubating (beta)</a> was released on June 30, 2016.</li>
  <li><a href="0.9.0/">Kudu 0.9.0-incubating (beta)</a> was released on June 9, 2016.</li>
  <li><a href="0.8.0/">Kudu 0.8.0-incubating (beta)</a> was released on April 10, 2016.</li>
  <li><a href="0.7.1/">Kudu 0.7.1-incubating (beta)</a> was released on March 9, 2016. It was a bug fix release.</li>
  <li><a href="0.7.0/">Kudu 0.7.0-incubating (beta)</a> was released on Feb 26, 2016.
It was also the first version to be released as part of incubation in the Apache Software Foundation.</li>
</ul>

<h3 id="beta-releases-non-apache">Beta releases (non-Apache)</h3>

<ul>
  <li><a href="0.6.0/">Kudu 0.6.0 (beta)</a> was released on Nov 24, 2015.</li>
  <li><a href="0.5.0/">Kudu 0.5.0 (beta)</a> was released on Sep 28, 2015. It was the first public version of Kudu.</li>
</ul>


  </div>
</div>

      <footer class="footer">
        <div class="row">
          <div class="col-md-9">
            <p class="small">
            Copyright &copy; 2020 The Apache Software Foundation. 
            </p>
            <p class="small">
            Apache Kudu, Kudu, Apache, the Apache feather logo, and the Apache Kudu
            project logo are either registered trademarks or trademarks of The
            Apache Software Foundation in the United States and other countries.
            </p>
          </div>
          <div class="col-md-3">
            <a class="pull-right" href="https://www.apache.org/events/current-event.html">
                <img src="https://www.apache.org/events/current-event-234x60.png"/>
            </a>
          </div>
        </div>
      </footer>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
      // Try to detect touch-screen devices. Note: Many laptops have touch screens.
      $(document).ready(function() {
        if ("ontouchstart" in document.documentElement) {
          $(document.documentElement).addClass("touch");
        } else {
          $(document.documentElement).addClass("no-touch");
        }
      });
    </script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
            integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
            crossorigin="anonymous"></script>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-68448017-1', 'auto');
      ga('send', 'pageview');
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.1.0/anchor.js"></script>
    <script>
      anchors.options = {
        placement: 'right',
        visible: 'touch',
      };
      anchors.add();
    </script>
  </body>
</html>

