<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Apache Mesos | Downloads</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta property="og:locale" content="en_US"/>
    <meta property="og:type" content="website"/>
    <meta property="og:title" content="Apache Mesos"/>
    <meta property="og:site_name" content="Apache Mesos"/>
    <meta property="og:url" content="http://mesos.apache.org/"/>
    <meta property="og:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
    <meta property="og:description"
          content="Apache Mesos abstracts resources away from machines,
                   enabling fault-tolerant and elastic distributed systems
                   to easily be built and run effectively."/>

    <meta name="twitter:card" content="summary"/>
    <meta name="twitter:site" content="@ApacheMesos"/>
    <meta name="twitter:title" content="Apache Mesos"/>
    <meta name="twitter:image" content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
    <meta name="twitter:description"
          content="Apache Mesos abstracts resources away from machines,
                   enabling fault-tolerant and elastic distributed systems
                   to easily be built and run effectively."/>

    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
    <link href="../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />

    

    <!-- Google Analytics Magic -->
    <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-20226872-1']);
    _gaq.push(['_setDomainName', 'apache.org']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
    </script>
    
  </head>
  <body>
    <!-- magical breadcrumbs -->
    <div class="topnav">
      <div class="container">
        <ul class="breadcrumb">
          <li>
            <div class="dropdown">
              <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                <li><a href="http://www.apache.org">Apache Homepage</a></li>
                <li><a href="http://www.apache.org/licenses/">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>
                <li><a href="http://www.apache.org/security/">Security</a></li>
              </ul>
            </div>
          </li>

          <li><a href="http://mesos.apache.org">Apache Mesos</a></li>
          
          <li><a href="/downloads/">Downloads</a></li>
          
        </ul><!-- /.breadcrumb -->
      </div><!-- /.container -->
    </div><!-- /.topnav -->

    <!-- navbar excitement -->
<div class="navbar navbar-default navbar-static-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mesos-menu" 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="/assets/img/mesos_logo.png" alt="Apache Mesos logo"/></a>
    </div><!-- /.navbar-header -->

    <div class="navbar-collapse collapse" id="mesos-menu">
      <ul class="nav navbar-nav navbar-right">
        <li><a href="/gettingstarted/">Getting Started</a></li>
        <li><a href="/blog/">Blog</a></li>
        <li><a href="/documentation/latest/">Documentation</a></li>
        <li><a href="/downloads/">Downloads</a></li>
        <li><a href="/community/">Community</a></li>
      </ul>
    </div><!-- /#mesos-menu -->
  </div><!-- /.container -->
</div><!-- /.navbar -->

<div class="content">
  <div class="container">
    <div class="row-fluid">
  <div class="col-md-4">
    <h4>Previous Releases</h4>

    <ul>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/1.2.0/">
          1.2.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12338394">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/1.1.0/">
          1.1.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12337876">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/1.0.1/">
          1.0.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12335956">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/1.0.0/">
          1.0.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12324944">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.28.2/">
          0.28.2
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12335646">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.28.1/">
          0.28.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12335359">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.28.0/">
          0.28.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334661">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.27.3/">
          0.27.3
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12335458">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.27.2/">
          0.27.2
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334913">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.27.1/">
          0.27.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334748">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.27.0/">
          0.27.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334043">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.26.1/">
          0.26.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334931">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.26.0/">
          0.26.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333528">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.25.1/">
          0.25.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334932">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.25.0/">
          0.25.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329852">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.24.2/">
          0.24.2
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334933">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.24.1/">
          0.24.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333552">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.24.0/">
          0.24.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329851">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.23.1/">
          0.23.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333553">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.23.0/">
          0.23.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12328728">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.22.2/">
          0.22.2
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333645">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.22.1/">
          0.22.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329855">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.22.0/">
          0.22.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12328650">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.21.2/">
          0.21.2
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333646">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.21.1/">
          0.21.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329076">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.21.0/">
          0.21.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12327045">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.20.0/">
          0.20.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12326835">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.19.1/">
          0.19.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12327173">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.19.0/">
          0.19.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12326253">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.18.2/">
          0.18.2
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12326851">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.18.1/">
          0.18.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12326752">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.18.0/">
          0.18.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12326140">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.17.0/">
          0.17.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12325669">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.16.0/">
          0.16.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12325295">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.15.0/">
          0.15.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12324901">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.14.2/">
          0.14.2
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12325324">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.14.1/">
          0.14.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12324994">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.14.0/">
          0.14.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12311242">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.13.0/">
          0.13.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12311242">
          Release Notes
        </a>)
      </li>
      
      <li>
        <a href="http://archive.apache.org/dist/mesos/0.12.1/">
          0.12.1
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12324794">
          Release Notes
        </a>)
      </li>
      
    </ul>
  </div>

  <div class="col-md-8">
    <h1>Download Mesos</h1>
      <p>Download the most recent stable release:
	      <a href="http://www.apache.org/dyn/closer.cgi/mesos/1.2.0/mesos-1.2.0.tar.gz">
          1.2.0
        </a>
        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12338394">
          Release Notes
        </a>)
      </p>

      <h4>Getting the code via source control</h4>
      <p>The codebase can also be downloaded from the Apache git repository at:
        <code>https://git-wip-us.apache.org/repos/asf/mesos.git</code>.
        A read-only git repository is also mirrored on
        <a href="https://github.com/apache/mesos/tree/master">on Github</a>.
        (Note: we use <a href="http://reviews.apache.org">Review Board</a> for
        patches, not pull requests on Github)
      </p>

      <p>Once you have downloaded Mesos, follow the
        <a href="/gettingstarted/">getting started instructions</a>,
        and take a look at the rest of the
        <a href="/documentation/">Mesos documentation</a>.
      </p>
  </div>
</div>

  </div><!-- /.container -->
</div><!-- /.content -->

<hr>



    <!-- footer -->
    <div class="footer">
      <div class="container">
        <div class="col-md-4 social-blk">
          <span class="social">
            <a href="https://twitter.com/ApacheMesos"
              class="twitter-follow-button"
              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos"
              class="twitter-hashtag-button"
              data-size="large"
              data-related="ApacheMesos">Tweet #mesos</a>
            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
          </span>
        </div>

        <div class="col-md-8 trademark">
          <p>&copy; 2012-2017 <a href="http://apache.org">The Apache Software Foundation</a>.
            Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.
          <p>
        </div>
      </div><!-- /.container -->
    </div><!-- /.footer -->

    <!-- JS -->
    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
  </body>
</html>
