<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="Apex is an enterprise grade native YARN big data-in-motion platform that unifies stream processing as well as batch processing.">
    <meta name="author" content="Apache Software Foundation">
    <link rel="icon" href="favicon.ico">

    <title>Apache Apex</title>

    <!-- Main Stylesheet -->
    <link href="css/main.css" rel="stylesheet">

    <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','https://www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-85540278-1', 'auto');
      ga('send', 'pageview');
    </script>
    
  </head>

  <body>
    <nav class="navbar navbar-default navbar-static-top" id="main-nav">
      <div class="container">

      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
          <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="navbar-brand" href="/">
          <img src="images/apex-logo.svg" class="logo" alt="Apache Apex Logo">
          Apache Apex<span class="trademark">&trade;</span>
        </a>
      </div>

      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-right navbar-nav">
          <li class="nav-item">
            <a class="nav-link " href="/">Home</a>
          </li>
          <li class="nav-item">
            <a class="nav-link " href="/docs.html">Documentation</a>
          </li>
          <li class="nav-item">
            <a class="nav-link " href="/powered-by-apex.html">Powered By Apex</a>
          </li>
          <li class="nav-item">
            <a class="nav-link " href="/roadmap.html">Roadmap</a>
          </li>

            <li class="nav-item nav-mouseover">
              <ul class="dropdown-menu">
                <li class=""><a href="/community.html#mailing-lists">Mailing Lists</a></li>
                <li class=""><a href="/community.html#issue-tracking">Issue Tracking</a></li>
                <li class=""><a href="http://stackoverflow.com/questions/tagged/apache-apex">Stack Overflow</a></li>
                <li class=""><a href="/community.html#events">Events</a></li>
                <li class=""><a href="/community.html#contributing">Contributing</a></li>
                <li class=""><a href="http://www.apache.org/foundation/how-it-works.html">Apache Foundation</a></li>
              </ul>
              <a href="/community.html" class="nav-link">Community</a>
            </li>
          

            <li class="nav-item nav-mouseover">
              <ul class="dropdown-menu">
                <li class=""><a href="https://github.com/apache/apex-core">Apex Core</a></li>
                <li class=""><a href="https://github.com/apache/apex-malhar">Apex Malhar</a></li>
                <li class=""><a href="https://github.com/apache/apex-site">Apex Site</a></li>
              </ul>
              <a href="https://github.com/apache/apex-core" class="nav-link">Github</a>
            </li>
          
          <li class="nav-item">
            <a class="nav-link btn btn-success btn-download" href="/downloads.html">Download</a>
          </li>
        </ul>
        
      </div>
    </nav>

<div class="container">
  
  <h1>Downloads</h1>

  <!-- APEX CORE SOURCE RELEASES TABLE -->
  <h2>Apex Source Releases</h2>
  <table class="table table-bordered table-striped">
    <thead>
      <tr>
        <th scope="col">Version</th>
        <th scope="col">Date</th>
        <th scope="col">Source (zip)</th>
        <th scope="col">Source (tarball)</th>
        <th scope="col">Docs</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
          3.7.0
          <span class="latest-tag">(latest)</span>
        </td>
        <td>
          2018-04-27
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-core-3.7.0/apache-apex-core-3.7.0-source-release.zip">apex-3.7.0-source-release.zip</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.7.0/apache-apex-core-3.7.0-source-release.zip.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.7.0/apache-apex-core-3.7.0-source-release.zip.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-core-3.7.0/apache-apex-core-3.7.0-source-release.tar.gz">apex-3.7.0-source-release.tar.gz</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.7.0/apache-apex-core-3.7.0-source-release.tar.gz.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.7.0/apache-apex-core-3.7.0-source-release.tar.gz.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="/docs/apex-3.7">user documentation</a><br>
          <a href="https://ci.apache.org/projects/apex-core/apex-core-javadoc-release-3.7/index.html">javadoc</a><br>
        </td>
      </tr>
      <tr>
        <td>
          3.6.0
          <span class="latest-tag">(latest)</span>
        </td>
        <td>
          2017-05-04
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-core-3.6.0/apache-apex-core-3.6.0-source-release.zip">apex-3.6.0-source-release.zip</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.6.0/apache-apex-core-3.6.0-source-release.zip.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.6.0/apache-apex-core-3.6.0-source-release.zip.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-core-3.6.0/apache-apex-core-3.6.0-source-release.tar.gz">apex-3.6.0-source-release.tar.gz</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.6.0/apache-apex-core-3.6.0-source-release.tar.gz.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-core-3.6.0/apache-apex-core-3.6.0-source-release.tar.gz.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="/docs/apex-3.6">user documentation</a><br>
          <a href="https://ci.apache.org/projects/apex-core/apex-core-javadoc-release-3.6/index.html">javadoc</a><br>
        </td>
      </tr>
    </tbody>
  </table>

  <!-- APEX MALHAR SOURCE RELEASES TABLE -->
  <h2>Malhar Source Releases</h2>
  <table class="table table-bordered table-striped">
    <thead>
      <tr>
        <th scope="col">Version</th>
        <th scope="col">Date</th>
        <th scope="col">Source (zip)</th>
        <th scope="col">Source (tarball)</th>
        <th scope="col">Docs</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
          3.8.0
          <span class="latest-tag">(latest)</span>
        </td>
        <td>
          2017-11-11
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-malhar-3.8.0/apache-apex-malhar-3.8.0-source-release.zip">malhar-3.8.0-source-release.zip</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.8.0/apache-apex-malhar-3.8.0-source-release.zip.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.8.0/apache-apex-malhar-3.8.0-source-release.zip.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-malhar-3.8.0/apache-apex-malhar-3.8.0-source-release.tar.gz">malhar-3.8.0-source-release.tar.gz</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.8.0/apache-apex-malhar-3.8.0-source-release.tar.gz.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.8.0/apache-apex-malhar-3.8.0-source-release.tar.gz.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="/docs/malhar-3.8">user documentation</a><br>
          <a href="https://ci.apache.org/projects/apex-malhar/apex-malhar-javadoc-release-3.8/index.html">javadoc</a><br>
        </td>
      </tr>
      <tr>
        <td>
          3.7.0
          <span class="latest-tag">(latest)</span>
        </td>
        <td>
          2017-03-31
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-malhar-3.7.0/apache-apex-malhar-3.7.0-source-release.zip">malhar-3.7.0-source-release.zip</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.7.0/apache-apex-malhar-3.7.0-source-release.zip.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.7.0/apache-apex-malhar-3.7.0-source-release.zip.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="http://www.apache.org/dyn/closer.lua/apex/apache-apex-malhar-3.7.0/apache-apex-malhar-3.7.0-source-release.tar.gz">malhar-3.7.0-source-release.tar.gz</a><br>
          <small>
            (
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.7.0/apache-apex-malhar-3.7.0-source-release.tar.gz.asc">pgp</a>,
              <a href="https://www.apache.org/dist/apex/apache-apex-malhar-3.7.0/apache-apex-malhar-3.7.0-source-release.tar.gz.sha512">sha</a>
            )
          </small>
        </td>
        <td>
          <a href="/docs/malhar-3.7">user documentation</a><br>
          <a href="https://ci.apache.org/projects/apex-malhar/apex-malhar-javadoc-release-3.7/index.html">javadoc</a><br>
        </td>
      </tr>
    </tbody>
  </table>


  <h2 id="third-party-downloads">Third-Party Downloads</h2>
<p>This is a list of 3rd party binary packages based on Apache Apex. The Apache Apex project does not endorse or maintain any 3rd party binary packages.</p>
<ul>
<li><p>Apache Apex Bigtop <a href="https://hub.docker.com/r/apacheapex/sandbox/">Docker image</a> (a ready to use sandbox environment in which bigtop-hadoop and bigtop-apex are pre-installed)</p>
</li>
<li><p><a href="https://github.com/atrato/apex-cli-package/releases/">Apache Apex binary build</a> for users with existing clusters</p>
</li>
<li><p><a href="http://bigtop.apache.org/">Bigtop</a> CI based distribution <a href="https://cwiki.apache.org/confluence/display/APEX/ApexBigtop#ApexBigtop-BigtopCIbaseddistributionbinaries">binaries</a></p>
</li>
</ul>
<p>If you would like to provide your own edition of Apache Apex here, please send email to <a href="mailto:dev@apex.apache.org">dev@apex.apache.org</a>.</p>

</div>

  <hr>
  <div class="container">
    <footer id="main-footer">
      <p>
        Copyright &copy; <span id="copyright-year">2015</span> <a href="http://apache.org">The Apache Software Foundation</a>,
        Licensed under the Apache License, Version 2.0<br>
        Apache and the Apache feather logo are trademarks of The Apache Software Foundation. | <a href="/privacy.html">Privacy Policy</a><br>
        <a class="footer-link-img" href="http://apache.org"><img src="/images/asf_logo.svg" alt="The Apache Software Foundation"></a>
      </p>
    </footer>
  </div> <!-- /container -->

  <!-- Placed at the end of the document so the pages load faster -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="/js/bootstrap.min.js"></script>
  <script src="js/docs.js"></script>

  <script>
    $('#copyright-year').text((new Date()).getFullYear());

    $('.btn-download').click(function(e){
      ga('send', {
        hitType: 'event',
        eventCategory: 'Download Button',
        eventAction: 'Button Click',
        eventLabel: 'Page Header'
      });
    });

  </script>

</body>
</html>
