---
title: Documentation
---
<!-- 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. -->

<!-- <div id="map-canvas" style="width: 100%;"></div> -->

<section class="bf-tagline">
    <div class="container">
    	<div class="row">
        <br/>
    	    	<h2>Apache Geode Documentation</h2>
	</div>
    </div>
</section>


<section class="bf-docs">
    <div class="container">
	<div class="row">
	    <div class="col-md-4">
	    		<h3 style="color: #1275ff;">User Documentation<br /></h3>
	    		<p>Installation instructions, User Guide, and other product docs</p>
          <p>
            <ul>
              <li>
                <a href="guide/17/about_geode.html">Apache Geode 1.7 User Guide</a>
              </li>
              <li>
                <a href="guide/16/about_geode.html">Apache Geode 1.6 User Guide</a>
              </li>
              <li>
                <a href="guide/15/about_geode.html">Apache Geode 1.5 User Guide</a>
              </li>
              <li>
                <a href="guide/14/about_geode.html">Apache Geode 1.4 User Guide</a>
              </li>
              <li>
                <a href="guide/13/about_geode.html">Apache Geode 1.3 User Guide</a>
              </li>
              <li>
                <a href="guide/12/about_geode.html">Apache Geode 1.2 User Guide</a>
              </li>
              <li>
                <a href="guide/11/about_geode.html">Apache Geode 1.1 User Guide</a>
              </li>
              <li>
                <a href="guide/10/about_geode.html">Apache Geode 1.0 User Guide</a>
              </li>
            </ul>
          </p>
	    </div>
	    <div class="col-md-4">
	    		<h3><a href="http://geode.apache.org/releases/latest/javadoc/index.html" style="color: #1275ff;">Javadocs</a></h3>
	    		<p>API Reference in conventional Javadoc format<p>
	    </div>
	    <div class="col-md-4">
	    		<h3><a href="https://cwiki.apache.org/confluence/display/GEODE/Index" style="color: #1275ff;">Wiki</a></h3>
	    		<p>Community contributions on various topics<p>
	    </div>
	</div>
    </div>
</section>
