---
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>User Documentation<br /></h3>
    		<p>User Guides, including installation instructions, by version:</p>
		<p>
		  <ul>
		    <li>
		      <a href="guide/18/about_geode.html">Apache Geode 1.8 User Guide</a>
		    </li>
		    <li>
		      <a href="nc-guide/18/about_geode.html">Apache Geode Native Client 1.8 User Guide</a>
		    </li>
		    <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>
		  </ul>
		</p>
	    </div>
	    <div class="col-md-4">
	    	<h3>API Docs</h3>
	    	<p><a href="http://geode.apache.org/releases/latest/javadoc/index.html" style="color: #1275ff;">Apache Geode API Reference</a></p>
                <p><a href="http://geode.apache.org/releases/latest/cppdocs/index.html" style="color: #1275ff;">Apache Geode Native Client C++ API Reference</a></p>
                <p><a href="http://geode.apache.org/releases/latest/dotnetdocs/index.html" style="color: #1275ff;">Apache Geode Native Client .NET API Reference</a></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>
