

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Apache Marvin-AI</title>
    
    <meta name="author" content="">

    <!-- Enable responsive viewport -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Le styles -->
    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
    <!-- Le fav and touch icons -->
    <link rel="shortcut icon" href="/assets/themes/apache/img/icon.png">
    <!-- Update these with your own images
      <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
      <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
      <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
    -->

  </head>

  <body>

    
    <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <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="/assets/themes/apache/img/logo_white.png" width="80">
          </a>
        </div>
        <nav class="navbar-collapse collapse" role="navigation">
          <ul class="nav navbar-nav navbar-right">
            <li id="community">
              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
               <ul class="dropdown-menu">
                <li><a href="/community">Get Involved</a></li>
                <li><a href="/community-members">Who we are</a></li>
               </ul>
            </li>
            <li><a href="/news">News</a></li>
            <li><a href="/marvin-platform-book/SUMMARY">Document</a></li>
            <li><a href="https://github.com/apache/incubator-marvin">GitHub</a></li>
            <li id="apache">
              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
               <ul class="dropdown-menu">
                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
                <li><a href="http://www.apache.org/licenses/">Apache License</a></li>
                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                </ul>
            </li>
          </ul>
        </nav>
      </div>
    </div>

    
    <div class="jumbotron">
      <div class="container">
        <h1>Apache Marvin-AI</h1>
        <p>Apache MarvinAI is a platform for machine learning operations (ML-Ops)!</p>

        
        <a href="/marvin-platform-book/ch2_toolbox_installation/overview" class="btn btn-primary btn-lg bigFingerButton" role="button">Get Marvin-AI</a></p>
        
      </div>
    </div>
    


    <div class="container">
      


<div class="row">
  <div class="col-md-12">
    <!--

-->

<p><img src="/assets/themes/apache/img/logo.png" alt="" /></p>

<table>
  <thead>
    <tr>
      <th>Branch</th>
      <th> </th>
      <th>Status</th>
      <th>CodeCov</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="https://github.com/apache/incubator-marvin">master</a></td>
      <td> </td>
      <td><a href="https://travis-ci.org/apache/incubator-marvin"><img src="https://travis-ci.org/apache/incubator-marvin.svg?branch=master" alt="Build Status" /></a></td>
      <td><a href="https://codecov.io/gh/apache/incubator-marvin"><img src="https://codecov.io/gh/apache/incubator-marvin/branch/master/graph/badge.svg" alt="Codecov" /></a></td>
    </tr>
    <tr>
      <td><a href="https://github.com/apache/incubator-marvin/tree/develop">develop</a></td>
      <td> </td>
      <td><a href="https://travis-ci.org/apache/incubator-marvin/branches"><img src="https://travis-ci.org/apache/incubator-marvin.svg?branch=develop" alt="Build Status" /></a></td>
      <td><a href="https://codecov.io/gh/apache/incubator-marvin/branch/develop"><img src="https://codecov.io/gh/apache/incubator-marvin/branch/develop/graph/badge.svg" alt="Build Status" /></a></td>
    </tr>
  </tbody>
</table>

<hr />

<p><strong>Marvin-AI</strong> is an open source Artificial Intelligence platform that focus on helping data science team members, in an easy way, to deliver complex solutions supported by a high-scale, low-latency, language agnostic and standardized architecture while simplifying the process of exploitation and modeling.</p>

<h2 id="bug-reports-and-feature-requests">Bug Reports and Feature Requests</h2>

<ul>
  <li><a href="https://issues.apache.org/jira/projects/MARVIN/issues/">Apache JIRA</a>!</li>
</ul>

<h2 id="community">Community</h2>

<ul>
  <li>
    <p>Subscribe to the <a href="mailto:user-subscribe@marvin.apache.org">user mailing list</a>!</p>
  </li>
  <li>
    <p>Subscribe to the <a href="mailto:dev-subscribe@marvin.apache.org">dev mailing list</a>!</p>
  </li>
</ul>

<h2 id="documentation">Documentation</h2>

<ul>
  <li>Please check our <a href="/marvin-platform-book/SUMMARY">Platform Book</a>!</li>
</ul>

<h2 id="code">Code</h2>

<ul>
  <li>
    <p><a href="https://github.com/apache/incubator-marvin">Apache Marvin-AI</a>!</p>
  </li>
  <li>
    <p><a href="https://github.com/apache/incubator-marvin-website">Apache Marvin-AI Website</a>!</p>
  </li>
</ul>

  </div>
</div>


      <hr>
      <footer>
        <footer class="site-footer">
    <div class="wrapper">
        <div class="footer-col-wrapper">
            
            Apache Marvin-AI is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
            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.
            <hr>
            
            <div style="text-align:center;">
                
                <div style="margin-top: 20px; margin-bottom: 20px;">
                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
                                                               alt="Apache Incubator"/></a>
                </div>
                
                <div>
                    Copyright &copy; 2016 <a href="http://www.apache.org">The Apache Software Foundation</a>.
                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
                    2.0</a>.
                    <br>
                    
                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
                    Software Foundation.
                    
                </div>
            </div>
        </div>
    </div>
</footer>

      </footer>
    </div>

    
    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>

    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>


  </body>
</html>

