<!DOCTYPE html>
<html lang="en">

<head>
  <!-- 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. -->
    <meta charset="utf-8">
    <title>Apache Geode — Documentation</title>
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
    <meta name="keywords" content="Apache Geode, Geode, GemFire, In-memory, IMDB, IMDG, cache">
    <meta name="description" content="Apache Geode is a distributed, in-memory database with strong data consistency, built to support transactional applications with low latency and high concurrency needs." />
    <meta property="og:title" content="Apache Geode" />
    <meta property="og:description" content="Apache Geode is a distributed, in-memory database with strong data consistency, built to support transactional applications with low latency and high concurrency needs." />
    <!-- Loading Typekit -->
    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
    <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>

    <!-- Place this tag right after the last button or just before your close body tag. -->
    <script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
        <!-- Loading Bootstrap -->
    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
    <link href="/css/geode-site.css" rel="stylesheet" type='text/css'>
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
    <!--[if lt IE 9]>
      <script src="js/html5shiv.js"></script>
      <script src="js/respond.min.js"></script>
    <![endif]-->
</head>
<body>

    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav secondary" role="banner">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <a href="/" class="navbar-brand">
                <img id="home-logo" src="/img/apache_geode_logo_white_small.png" />
            </a>
        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
            <ul class="nav navbar-nav navbar-right">
                <li class=""><a href="/community/"><span class="fa fa-users"></span></a></li>
                <li class="active"><a href="/docs/"><span class="fa fa-book"></span></a></li>
                <li><a href="http://github.com/apache/geode" target="_blank"><span class="fa fa-github-square"></span></a></li>
                <li><a href="https://issues.apache.org/jira/browse/GEODE/" target="_blank"><span class="fa fa-bug"></span></a></li>
                <li><a href="http://stackoverflow.com/search?q=Apache%20Geode" target="_blank"><span class="fa fa-stack-overflow"></span></a></li>
                <li><a href="/community/#mailing-lists"><span class="fa fa-envelope"></span></a></li>
                <li><a href="https://twitter.com/apachegeode" target="_blank"><span class="fa fa-twitter"></span></a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/geode/" target="_blank"><span class="fa fa-pencil-square-o"></span></a></li>
                <li class=""><a href="/releases/"><span class="fa fa-arrow-circle-o-down"></span></a></li>
            </ul>
        </nav>
    </div>
    </header>


<!-- 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>


<footer class="bf-footer" role="contentinfo">
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="/">Home</a></li>
                    <li class="nav-header"><a href="/community/">Community</a></li>
                        <li><a href="/community/#events">Events</a></li>
                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
                        <li><a href="/community/#deployments">Deployments</a></li>
                        <!-- <li><a href="/community/#committers">Commiters</a></li> -->
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="http://github.com/apache/geode" target="_blank">Code</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Project+Proposals+and+Specifications" target="_blank">Specifications</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Geode+Internal+Architecture" target="_blank">Internal Architecture</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Writing+tests" target="_blank">Writing Tests</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Criteria+for+Code+Submissions" target="_blank">Code Submissions</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Resources</li>
                    <li><a href="http://github.com/apache/geode" target="_blank">GitHub Code</a></li>
                    <li><a href="/docs/">Docs</a></li>
                    <li><a href="https://issues.apache.org/jira/browse/GEODE" target="_blank">JIRA Bug Tracker</a></li>
                    <li><a href="http://stackoverflow.com/search?q=Apache%20Geode" target="_blank">StackOverflow</a></li>
                    <li><a href="/community/#live">Live Chat</a></li>
                    <li><a href="https://twitter.com/apachegeode" target="_blank">Twitter</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Index#Index-Geodein5minutesGeodein5minutes" target="_blank">Geode in 5 minutes</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/How+to+Contribute" target="_blank">How to Contribute</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Application+Development" target="_blank">Application Development</a></li>

                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Technology+FAQ" target="_blank">FAQ</a></li>

                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Apache</li>
                    <li><a href="http://www.apache.org/events/" target="_blank">Events</a></li>
                    <li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
                    <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="http://www.apache.org/security/">Security</a></li>
                    <li><a href="http://www.apache.org/" target="_blank">Apache Foundation</a></li>
                </ul>
            </div>
            <div class="col-md-4">
              <a class="twitter-timeline" href="https://twitter.com/search?q=%23ApacheGeode%20OR%20Apache%20Geode" data-widget-id="665030887004725248">Tweets about #ApacheGeode OR Apache Geode</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>
            </div>
        <!--
            <div class="col-md-4">
                <div class="input-group form-search">
                    <input type="text" class="form-control search-query">
                    <span class="input-group-btn">
                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
                    </span>
                </div>
            </div> -->
        </div>
        <div class="row">
          <center>
            <div id="copyright">
                <a href="http://www.apache.org" target="_blank"><img src="/img/asf_logo.png" height="125"></a><br/><br/>
                <p>Copyright © 2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                Apache, Apache Geode, and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                <p>Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> for Apache Usergrid.</p>
                <p>Modified for Apache Geode by <a href="https://twitter.com/william_markito">@william_markito</a>.</p>
            </div>
          </center>
        </div>
    </div>
</footer>

<script type="text/javascript" src="/js/head.js"></script>
<script type="text/javascript">
    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
</script>



</body>
</html>

