---
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-5">
    		<h3>User Documentation<br /></h3>
    		<p>User Guides, including installation instructions, by version:</p>
		<p>
		  <ul>
		    <li>
		      <a href="guide/115/about_geode.html">Apache Geode 1.15 User Guide</a>
		    </li>
		    <li>
		      <a href="guide/114/about_geode.html">Apache Geode 1.14 User Guide</a>
		    </li>
		    <li>
		      <a href="geode-native/dotnet/115/about-client-users-guide.html">Apache Geode Native .NET Client 1.15 Guide</a>
		    </li>
		    <li>
		      <a href="geode-native/cpp/115/about-client-users-guide.html">Apache Geode Native C++ Client 1.15 Guide</a>
		    </li>
		    <li>
		      <a href="geode-native/dotnet/114/about-client-users-guide.html">Apache Geode Native .NET Client 1.14 Guide</a>
		    </li>
		    <li>
		      <a href="geode-native/cpp/114/about-client-users-guide.html">Apache Geode Native C++ Client 1.14 Guide</a>
		    </li>
		    <li>
		      <a href="geode-native/dotnet/113/about-client-users-guide.html">Apache Geode Native .NET Client 1.13 Guide</a>
		    </li>
		    <li>
		      <a href="geode-native/cpp/113/about-client-users-guide.html">Apache Geode Native C++ Client 1.13 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/hierarchy.html" style="color: #1275ff;">Apache Geode Native Client C++ API Reference</a></p>
                <p><a href="http://geode.apache.org/releases/latest/dotnetdocs/hierarchy.html" style="color: #1275ff;">Apache Geode Native Client .NET API Reference</a></p>
	    </div>
	    <div class="col-md-3">
	    	<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>
