---
title: Releases
---
<!-- 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. -->
<section class="bf-tagline">
    <div class="container">
    	<div class="row">
          <br />
    	    	<h2>Apache Geode Releases</h2>
    		<p>Releases of Geode are made available to the general public at no charge, under the <a target="_blank" href="http://apache.org/licenses/">Apache License</a>, in both binary and source distributions.  Binary downloads are provided for the convenience of our users and are not official Apache Geode releases.</p>
		</div>
	</div>
</section>

<section class="bf-releases">
    <div class="container">
      <div class="row">
    		<div class="col-md-9">
      <!-- RELEASES -->
      <div class="container">

        <!-- START OF 1.11.0-->
        <h3>1.11.0</h3>
        <!-- RELEASE NOTES -->
        <strong><a target="_blank" href="https://cwiki.apache.org/confluence/display/GEODE/Release+Notes">Release Notes</a></strong>
        <p/>

        <!-- BINARY -->
        <span> <strong>Binaries </strong>
          [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.11.0/apache-geode-1.11.0.tgz">TGZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-1.11.0.tgz.sha256">SHA-256</a>,
          <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-1.11.0.tgz.asc">PGP</a> ]
        </span><br/>
        <!-- SOURCE -->
        <span> <strong>Source</strong>
          [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.11.0/apache-geode-1.11.0-src.tgz">TGZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-1.11.0-src.tgz.sha256">SHA-256</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-1.11.0-src.tgz.asc">PGP</a>
           ]
         </span><br/>
        <!-- NATIVE CLIENT SOURCE -->
        <span> <strong>Geode Native Source</strong>
          [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.11.0/apache-geode-native-1.11.0-src.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-native-1.11.0-src.tar.gz.sha512">SHA-512</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-native-1.11.0-src.tar.gz.asc">PGP</a>
           ]
         </span><br/>
        <!-- Examples -->
        <span> <strong>Examples</strong>
           [ <a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.11.0/apache-geode-examples-1.11.0.zip">ZIP</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-examples-1.11.0.zip.sha256">SHA-256</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-examples-1.11.0.zip.asc">PGP</a>
            ] -
           [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.11.0/apache-geode-examples-1.11.0.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-examples-1.11.0.tar.gz.sha256">SHA-256</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.11.0/apache-geode-examples-1.11.0.tar.gz.asc">PGP</a>
           ]
         </span><br/>

        <!-- DEPENDENCY MANAGERS -->
        <div class="container">
          <strong>Gradle</strong>
<pre class="prettyprint">
dependencies {
  compile 'org.apache.geode:geode-core:1.11.0'
}
</pre>
          <strong>Maven</strong>
<pre class="prettyprint">
&lt;dependencies&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.apache.geode&lt;/groupId&gt;
    &lt;artifactId&gt;geode-core&lt;/artifactId&gt;
    &lt;version&gt;1.11.0&lt;/version&gt;
  &lt;/dependency&gt;
&lt;/dependencies&gt;
</pre>
        </div>
        <!-- END OF 1.11.0 -->

        <!-- START OF 1.10.0-->
        <h3>1.10.0</h3>
        <!-- RELEASE NOTES -->
        <strong><a target="_blank" href="https://cwiki.apache.org/confluence/display/GEODE/Release+Notes">Release Notes</a></strong>
        <p/>

        <!-- BINARY -->
        <span> <strong>Binaries </strong>
          [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.10.0/apache-geode-1.10.0.tgz">TGZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-1.10.0.tgz.sha256">SHA-256</a>,
          <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-1.10.0.tgz.asc">PGP</a> ]
        </span><br/>
        <!-- SOURCE -->
        <span> <strong>Source</strong>
          [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.10.0/apache-geode-1.10.0-src.tgz">TGZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-1.10.0-src.tgz.sha256">SHA-256</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-1.10.0-src.tgz.asc">PGP</a>
           ]
         </span><br/>
        <!-- NATIVE CLIENT SOURCE -->
        <span> <strong>Geode Native Source</strong>
          [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.10.0/apache-geode-native-1.10.0-src.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-native-1.10.0-src.tar.gz.sha512">SHA-512</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-native-1.10.0-src.tar.gz.asc">PGP</a>
           ]
         </span><br/>
        <!-- Examples -->
        <span> <strong>Examples</strong>
           [ <a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.10.0/apache-geode-examples-1.10.0.zip">ZIP</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-examples-1.10.0.zip.sha256">SHA-256</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-examples-1.10.0.zip.asc">PGP</a>
            ] -
           [<a target="_blank" href="http://apache.org/dyn/closer.cgi/geode/1.10.0/apache-geode-examples-1.10.0.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-examples-1.10.0.tar.gz.sha256">SHA-256</a>,
           <a target="_blank" href="https://www.apache.org/dist/geode/1.10.0/apache-geode-examples-1.10.0.tar.gz.asc">PGP</a>
           ]
         </span><br/>

        <!-- DEPENDENCY MANAGERS -->
        <div class="container">
          <strong>Gradle</strong>
<pre class="prettyprint">
dependencies {
  compile 'org.apache.geode:geode-core:1.10.0'
}
</pre>
          <strong>Maven</strong>
<pre class="prettyprint">
&lt;dependencies&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.apache.geode&lt;/groupId&gt;
    &lt;artifactId&gt;geode-core&lt;/artifactId&gt;
    &lt;version&gt;1.10.0&lt;/version&gt;
  &lt;/dependency&gt;
&lt;/dependencies&gt;
</pre>
        </div>
        <!-- END OF 1.10.0 -->

        <!-- START OF 1.9.2-->
        <h3>1.9.2</h3>
        <!-- RELEASE NOTES -->
        <strong><a target="_blank" href="https://cwiki.apache.org/confluence/display/GEODE/Release+Notes">Release Notes</a></strong>
        <p/>

        <!-- BINARY -->
        <span> <strong>Binaries </strong>
          [<a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-1.9.2.tgz">TGZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-1.9.2.tgz.sha256">SHA-256</a>,
          <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-1.9.2.tgz.asc">PGP</a> ]
        </span><br/>
        <!-- SOURCE -->
        <span> <strong>Source</strong>
          [<a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-1.9.2-src.tgz">TGZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-1.9.2-src.tgz.sha256">SHA-256</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-1.9.2-src.tgz.asc">PGP</a>
           ]
         </span><br/>
        <!-- NATIVE CLIENT SOURCE -->
        <span> <strong>Geode Native Source</strong>
          [<a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-native-1.9.2-src.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-native-1.9.2-src.tar.gz.sha512">SHA-512</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-native-1.9.2-src.tar.gz.asc">PGP</a>
           ]
         </span><br/>
        <!-- Examples -->
        <span> <strong>Examples</strong>
           [ <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-examples-1.9.2.zip">ZIP</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-examples-1.9.2.zip.sha256">SHA-256</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-examples-1.9.2.zip.asc">PGP</a>
            ] -
           [<a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-examples-1.9.2.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-examples-1.9.2.tar.gz.sha256">SHA-256</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.9.2/apache-geode-examples-1.9.2.tar.gz.asc">PGP</a>
           ]
         </span><br/>

        <!-- DEPENDENCY MANAGERS -->
        <div class="container">
          <strong>Gradle</strong>
<pre class="prettyprint">
dependencies {
  compile 'org.apache.geode:geode-core:1.9.2'
}
</pre>
          <strong>Maven</strong>
<pre class="prettyprint">
&lt;dependencies&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.apache.geode&lt;/groupId&gt;
    &lt;artifactId&gt;geode-core&lt;/artifactId&gt;
    &lt;version&gt;1.9.2&lt;/version&gt;
  &lt;/dependency&gt;
&lt;/dependencies&gt;
</pre>
        </div>
        <!-- END OF 1.9.2 -->

        <!-- START OF 1.8.0-->
        <h3>1.8.0</h3>
        <!-- RELEASE NOTES -->
        <strong><a target="_blank" href="https://cwiki.apache.org/confluence/display/GEODE/Release+Notes">Release Notes</a></strong>
        <p/>

        <!-- BINARY -->
        <span> <strong>Binaries </strong>
          [<a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-1.8.0.tgz">TGZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-1.8.0.tgz.sha256">SHA-256</a>,
          <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-1.8.0.tgz.asc">PGP</a> ]
        </span><br/>
        <!-- SOURCE -->
        <span> <strong>Source</strong>
          [<a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-1.8.0-src.tgz">TGZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-1.8.0-src.tgz.sha256">SHA-256</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-1.8.0-src.tgz.asc">PGP</a>
           ]
         </span><br/>
        <!-- NATIVE CLIENT SOURCE -->
        <span> <strong>Geode Native Source</strong>
          [<a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-native-1.8.0-Source.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-native-1.8.0-Source.tar.gz.sha512">SHA-512</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-native-1.8.0-Source.tar.gz.asc">PGP</a>
           ]
         </span><br/>
        <!-- Examples -->
        <span> <strong>Examples</strong>
           [ <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-examples-1.8.0.zip">ZIP</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-examples-1.8.0.zip.sha256">SHA-256</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-examples-1.8.0.zip.asc">PGP</a>
            ] -
           [<a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-examples-1.8.0.tar.gz">TAR.GZ</a>, <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-examples-1.8.0.tar.gz.sha256">SHA-256</a>,
           <a target="_blank" href="https://archive.apache.org/dist/geode/1.8.0/apache-geode-examples-1.8.0.tar.gz.asc">PGP</a>
           ]
         </span><br/>

        <!-- DEPENDENCY MANAGERS -->
        <div class="container">
          <strong>Gradle</strong>
<pre class="prettyprint">
dependencies {
  compile 'org.apache.geode:geode-core:1.8.0'
}
</pre>
          <strong>Maven</strong>
<pre class="prettyprint">
&lt;dependencies&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.apache.geode&lt;/groupId&gt;
    &lt;artifactId&gt;geode-core&lt;/artifactId&gt;
    &lt;version&gt;1.8.0&lt;/version&gt;
  &lt;/dependency&gt;
&lt;/dependencies&gt;
</pre>
        </div>
        <!-- END OF 1.8.0 -->

      </div>
      <p>If you need access to older releases they can be found in the <a target="_blank" href="https://archive.apache.org/dist/geode/">release archives</a>.</p>
      <!-- END OF RELEASE -->
      <hr/>
        <p>
					Project releases are approved by vote of the Apache Geode Project Management Committee (PMC). Support for a release is provided by project volunteers on the project <a href="http://geode.apache.org/community/#mailing-lists">mailing lists</a>. Bugs found in a release may be discussed on the list and reported through the <a href="https://issues.apache.org/jira/browse/GEODE">issue tracker</a>. The user mailing list and issue tracker are the only support options hosted by the Apache Geode project.
				</p>
				<p>
					<strong>Note</strong>: When downloading from a mirror, please be sure to verify that checksums and signatures are correct. To do so, use the checksum and signature files from the main Apache site at <a href="https://www.apache.org/dist/geode/">https://www.apache.org/dist/geode/</a>. Find here the KEYS file, which contains all OpenPGP keys we use to sign releases here: <a href="https://www.apache.org/dist/geode/KEYS">KEYS</a>
				</p>
				<p>
					The PGP signatures can be verified using PGP or GPG. First download the <a href="https://www.apache.org/dist/geode/KEYS">KEYS</a> as well as the <em>asc signature</em> file for the particular distribution. Then verify the signatures using:
				</p>
				<p>
       				% pgpk -a KEYS
					</br></br>
        			% pgpv ${filename}.tar.gz.asc
        			</br></br>
    				or
    				</br></br>
        			% pgp -ka KEYS
        			</br></br>
        			% pgp ${filename}.tar.gz.asc
        			</br></br>
    				or
    				</br></br>
        			% gpg --import KEYS
        			</br></br>
        			% gpg --verify ${filename}.tar.gz.asc
        			</br></br>
        		</p>
    			<p>
				Alternatively, you can verify the MD5 signature on the files. A Unix program called md5 or md5sum is included in many Unix distributions. 
                                It is also available as part of <a href="http://www.gnu.org/software/textutils/textutils.html">GNU Textutils</a>. 
                                Windows users can get binary md5 programs from <a href="http://www.fourmilab.ch/md5/">Fourmilab.ch</a>, <a href="http://www.pc-tools.net/win32/md5sums/">PC-Tools.Net</a>, or <a href="http://www.slavasoft.com/fsum/">SlavaSoft.com</a>.
				<p>
					If you want to build directly from source, see the BUILDING.md file in the top-level source directory.
				</p>
			</div>
		</div>
	</div>
</section>
