<!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">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Apache Amaterasu (incubating)</title>

    <!-- Bootstrap Core CSS -->
    <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">

    <!-- Custom Fonts -->
    <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
    <link href='http://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css" type="text/css">

    <!-- Plugin CSS -->
    <link rel="stylesheet" href="css/animate.min.css" type="text/css">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="css/main.css" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
    <!-- Global Site Tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-84742341-2"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments)};
      gtag('js', new Date());

      gtag('config', 'UA-84742341-2');
    </script>

</head>


<body id="page-top">
  <nav id="mainNav" class="navbar navbar-default navbar-fixed-top">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <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 page-scroll" href="http://amaterasu.incubator.apache.org/#page-top">Apache Amaterasu</a>
            <!-- <img src="img/amaterasu_logo.jpg" /> -->
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#about">About</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#features">Features</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/downloads.html">Downloads</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#samples">Samples</a>
                </li>
                  <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#docs">Docs (coming soon)</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#contact">Contact</a>
                </li>
            </ul>
        </div>
        <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
</nav>

  <section id="downloads">
    <div class="container">
        <div class="row">
            <div class="row text-center">
                <h2 class="section-heading">Apache Amaterasu Releases</h2>
                <hr class="primary">
                <p>Be sure to verify your downloads by these <a href="https://www.apache.org/info/verification">procedures</a> using the folowing <a href="https://dist.apache.org/repos/dist/release/incubator/amaterasu/KEYS">KEYS</a>.<p>
            </div>
                <div class="row text-left mt ml-5">
                    <div>
                        
                        Version 0.2.0-incubating
                        
                    </div>
                    <div>
                        
                        <a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4.tar">Binary distribution</a> [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4.tar.sha512">SHA512</a>] [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4.tar.asc">ASC</a>]
                    </div>
                    <div>
                        
                        <a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4-source.tar.gz">Official source release</a> [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4-source.tar.gz.sha512">SHA512</a>] [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4-source.tar.gz.asc">ASC</a>]
                    </div>
                </div>
        </div>
</section>

  <section id="disclaimer">
  <hr>
  <div class="container">
    <img src="img/incubator_feather_egg_logo.png" height="60">
    <br>
    <br>
    <p style="font-size: 12px; line-height: 1.5em;">
    Apache Amaterasu is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
    </p>
    <p style="font-size: 12px; line-height: 1.5em; margin-top: 2em; margin-bottom: 2em;">
            Copyright © 2017 <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a>
    <br>
    Apache, Apache Amaterasu (incubating), the Apache feather and the Gobblin logo are trademarks of The Apache Software Foundation
    </p>
  </div>
</section>

  <!-- jQuery -->
<script src="js/jquery.js"></script>

<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>

<!-- Plugin JavaScript -->
<script src="js/jquery.easing.min.js"></script>
<script src="js/jquery.fittext.js"></script>
<script src="js/wow.min.js"></script>

<!-- Custom Theme JavaScript -->
<script src="js/creative.js"></script>

</body>

</html>
