<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License. 
-->
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <!--
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
            This file is generated from XML source: DO NOT EDIT!
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   -->
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<link rel="stylesheet" href="/style/compressed.css" type="text/css" media="screen, projection"/>
	<link rel="stylesheet" href="/style/style.css" type="text/css" media="screen, projection"/>
	<link rel="stylesheet" href="/style/attic.css" type="text/css" media="screen, projection"/>
	<!--[if IE]><link rel="stylesheet" href="/style/ie.css" type="text/css" media="screen, projection"/><![endif]-->
     <meta name="author" content="The Apache Software Foundation" /><meta name="email" content="general.AT.attic.apache.DOT.org" />
    <title>Apache Whirr - Apache Attic</title>
  
 </head>
 <body id="sub">
	<div class="container">
	<hr class="space col"/>
	<div class="block">
		<div class="column span-24">
      <div id="header">
                          <!-- Add 'default' header section here. -->
                                <h1>Apache Whirr</h1>
                         </div>
      </div>
	</div>
	<hr/>
	<div class="block content">
		<div class="column span-15 colborder">
                            
<div class="section-content">
<p><a href="http://whirr.apache.org">Apache Whirr</a> moved into the Attic in March 2015. 
     Apache Whirr was a set of libraries for running cloud services and deploying clusters. 
  </p>

  <table style="margin-left: auto; margin-right:auto; width:90%">
    <tr>
      <th>Read-only Resource</th>
      <th>Link(s)</th>
    </tr>
    <tr>
      <td>Website</td>
      <td><a href="http://whirr.apache.org/">whirr.apache.org/</a></td>
    </tr>
    <tr>
      <td>Mailing List Archives</td>
      <td>
        <a href="http://mail-archives.apache.org/mod_mbox/whirr-dev/">dev</a>
        | <a href="http://mail-archives.apache.org/mod_mbox/whirr-user/">user</a>
        | <a href="http://mail-archives.apache.org/mod_mbox/whirr-commits/">commits</a>
      </td>
    </tr>
    <tr>
      <td>Issue Tracker (JIRA)</td>
      <td><a href="https://issues.apache.org/jira/browse/WHIRR/">WHIRR</a></td>
    </tr>
    <tr>
      <td>Wiki</td>
      <td><a href="https://cwiki.apache.org/confluence/display/whirr/">cwiki.apache.org: whirr</a></td>
    </tr>
    <tr>
      <td>Source Code (Subversion)</td>
      <td><a href="http://svn.apache.org/repos/asf/whirr/">svn.apache.org/repos/asf/whirr/</a></td>
    </tr>
    <tr>
      <td>Source Code (Git)</td>
      <td><a href="https://gitbox.apache.org/repos/asf#whirr">https://gitbox.apache.org/repos/asf#whirr</a></td>
    </tr>
    <tr>
      <td>Board Reports</td>
      <td><a href="https://whimsy.apache.org/board/minutes/whirr.html">Minutes</a></td>
    </tr>
    <tr>
      <td>Downloads</td>
      <td><a href="http://archive.apache.org/dist/whirr/">archive.apache.org/dist/whirr/</a> 
      | <a href="http://archive.apache.org/dist/whirr/KEYS">KEYS</a>
      </td>
    </tr>
  </table>

<p>Note that instructions on how to obtain and build the source are found on the wiki and not the website: <a href="https://cwiki.apache.org/confluence/display/WHIRR/How+To+Contribute">https://cwiki.apache.org/confluence/display/WHIRR/How+To+Contribute</a>. </p>
<p>As with any project in the Attic - if you should choose to fork Whirr outside of Apache, 
     please let us know so we can link to your project. </p>
</div>
         </div>
    <div class="column span-8 last">
      <div class="block">
        <div class="nav column span-11">
          <div>
               <div class="menuheader">The Apache Attic</div>
  <ul>
          <li><a href="/">Home</a></li> 
          <li><a href="https://projects.apache.org/committee.html?attic">The team</a></li> 
          <li><a href="/process.html">Process</a></li> 
          <li><a href="/tracking.html">Process tracking</a></li> 
          <li><a href="https://whimsy.apache.org/board/minutes/Attic.html">Board Minutes</a></li> 
          <li><a href="http://www.apache.org/licenses/">License</a></li> 
          <li><a href="http://www.apache.org/security/">Security</a></li> 
      </ul>
      <div class="menuheader">Related Apache Links</div>
  <ul>
          <li><a href="http://www.apache.org/">Foundation</a></li> 
          <li><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li> 
          <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> 
          <li><a href="http://incubator.apache.org/">Incubator</a></li> 
          <li><a href="http://apachecon.com/">ApacheCon</a></li> 
      </ul>
          </div>
        </div>
        <div class="nav column prepend-1 span-12 last">
               <h6>Projects in the Attic</h6>
  <ul>
          <li><a href="/projects/abdera.html">Abdera</a></li> 
          <li><a href="/projects/ace.html">ACE</a></li> 
          <li><a href="/projects/apex.html">Apex</a></li> 
          <li><a href="/projects/aurora.html">Aurora</a></li> 
          <li><a href="/projects/avalon.html">Avalon</a></li> 
          <li><a href="/projects/axkit.html">AxKit</a></li> 
          <li><a href="/projects/axis-sandesha-c.html">Axis Sandesha2/C</a></li> 
          <li><a href="/projects/axis-savan-c.html">Axis Savan/C</a></li> 
          <li><a href="/projects/axis-savan-java.html">Axis Savan/Java</a></li> 
          <li><a href="/projects/beehive.html">Beehive</a></li> 
          <li><a href="/projects/chemistry.html">Chemistry</a></li> 
          <li><a href="/projects/chukwa.html">Chukwa</a></li> 
          <li><a href="/projects/clerezza.html">Clerezza</a></li> 
          <li><a href="/projects/click.html">Click</a></li> 
          <li><a href="/projects/climate.html">Open Climate Workbench</a></li> 
          <li><a href="/projects/crimson.html">Crimson</a></li> 
          <li><a href="/projects/continuum.html">Continuum</a></li> 
          <li><a href="/projects/crunch.html">Crunch</a></li> 
          <li><a href="/projects/deltacloud.html">Deltacloud</a></li> 
          <li><a href="/projects/devicemap.html">DeviceMap</a></li> 
          <li><a href="/projects/directmemory.html">DirectMemory</a></li> 
          <li><a href="/projects/drat.html">DRAT</a></li> 
          <li><a href="/projects/eagle.html">Eagle</a></li> 
          <li><a href="/projects/esme.html">ESME</a></li> 
          <li><a href="/projects/etch.html">Etch</a></li> 
          <li><a href="/projects/excalibur.html">Excalibur</a></li> 
          <li><a href="/projects/falcon.html">Falcon</a></li> 
          <li><a href="/projects/forrest.html">Forrest</a></li> 
          <li><a href="/projects/hama.html">Hama</a></li> 
          <li><a href="/projects/harmony.html">Harmony</a></li> 
          <li><a href="/projects/hivemind.html">HiveMind</a></li> 
          <li><a href="/projects/ibatis.html">iBATIS</a></li> 
          <li><a href="/projects/jakarta.html">Jakarta</a></li> 
          <li><a href="/projects/jakarta-cactus.html">Jakarta Cactus</a></li> 
          <li><a href="/projects/jakarta-ecs.html">Jakarta ECS</a></li> 
          <li><a href="/projects/jakarta-oro.html">Jakarta ORO</a></li> 
          <li><a href="/projects/jakarta-regexp.html">Jakarta Regexp</a></li> 
          <li><a href="/projects/jakarta-slide.html">Jakarta Slide</a></li> 
          <li><a href="/projects/jakarta-taglibs.html">Jakarta Taglibs</a></li> 
          <li><a href="/projects/joshua.html">Joshua</a></li> 
          <li><a href="/projects/labs.html">Labs</a></li> 
          <li><a href="/projects/lens.html">Lens</a></li> 
          <li><a href="/projects/lenya.html">Lenya</a></li> 
          <li><a href="/projects/lucy.html">Lucy</a></li> 
          <li><a href="/projects/marmotta.html">Marmotta</a></li> 
          <li><a href="/projects/metamodel.html">MetaModel</a></li> 
          <li><a href="/projects/metron.html">Metron</a></li> 
          <li><a href="/projects/mrunit.html">MRUnit</a></li> 
          <li><a href="/projects/ode.html">ODE</a></li> 
          <li><a href="/projects/ojb.html">ObJectRelationalBridge (OJB)</a></li> 
          <li><a href="/projects/oltu.html">Oltu (previously Amber)</a></li> 
          <li><a href="/projects/onami.html">Onami</a></li> 
          <li><a href="/projects/polygene.html">Polygene</a></li> 
          <li><a href="/projects/predictionio.html">PredictionIO</a></li> 
          <li><a href="/projects/quetzalcoatl.html">Quetzalcoatl</a></li> 
          <li><a href="/projects/rave.html">Rave</a></li> 
          <li><a href="/projects/river.html">River</a></li> 
          <li><a href="/projects/sentry.html">Sentry</a></li> 
          <li><a href="/projects/shale.html">Shale</a></li> 
          <li><a href="/projects/shindig.html">Shindig</a></li> 
          <li><a href="/projects/sqoop.html">Sqoop</a></li> 
          <li><a href="/projects/stdcxx.html">Standard C++ Library (STDCXX)</a></li> 
          <li><a href="/projects/stanbol.html">Stanbol</a></li> 
          <li><a href="/projects/stratos.html">Stratos</a></li> 
          <li><a href="/projects/tajo.html">Tajo</a></li> 
          <li><a href="/projects/tiles.html">Tiles</a></li> 
          <li><a href="/projects/trafodion.html">Trafodion</a></li> 
          <li><a href="/projects/tuscany.html">Tuscany</a></li> 
          <li><a href="/projects/twill.html">Twill</a></li> 
          <li><a href="/projects/usergrid.html">Usergrid</a></li> 
          <li><a href="/projects/vxquery.html">VXQuery</a></li> 
          <li><a href="/projects/whirr.html">Whirr</a></li> 
          <li><a href="/projects/wink.html">Wink</a></li> 
          <li><a href="/projects/wookie.html">Wookie</a></li> 
          <li><a href="/projects/muse.html">WS Muse</a></li> 
          <li><a href="/projects/xang.html">Xang</a></li> 
          <li><a href="/projects/xindice.html">Xindice</a></li> 
          <li><a href="/projects/xmlbeans.html">XMLBeans</a>
        ; revived June 2018
      </li> 
          <li><a href="/projects/xml.html">XML</a></li> 
      </ul>
        </div>
      </div>
    </div>
    <div class="column span-24 footer">
      <hr/>
        <p>Copyright &#169; 2009-2021 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
      </div>
    </div>
  </div>
</body>
</html>

