<!--
 ▄▄▄       ██▓███   ▄▄▄       ▄████▄   ██░ ██ ▓█████     ██▓  ▄████  ███▄    █  ██▓▄▄▄█████▓▓█████
▒████▄    ▓██░  ██▒▒████▄    ▒██▀ ▀█  ▓██░ ██▒▓█   ▀    ▓██▒ ██▒ ▀█▒ ██ ▀█   █ ▓██▒▓  ██▒ ▓▒▓█   ▀
▒██  ▀█▄  ▓██░ ██▓▒▒██  ▀█▄  ▒▓█    ▄ ▒██▀▀██░▒███      ▒██▒▒██░▄▄▄░▓██  ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█  ▄    ░██░░▓█  ██▓▓██▒  ▐▌██▒░██░░ ▓██▓ ░ ▒▓█  ▄
 ▓█   ▓██▒▒██▒ ░  ░ ▓█   ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒   ░██░░▒▓███▀▒▒██░   ▓██░░██░  ▒██▒ ░ ░▒████▒
 ▒▒   ▓▒█░▒▓▒░ ░  ░ ▒▒   ▓▒█░░ ░▒ ▒  ░ ▒ ░░▒░▒░░ ▒░ ░   ░▓   ░▒   ▒ ░ ▒░   ▒ ▒ ░▓    ▒ ░░   ░░ ▒░ ░
  ▒   ▒▒ ░░▒ ░       ▒   ▒▒ ░  ░  ▒    ▒ ░▒░ ░ ░ ░  ░    ▒ ░  ░   ░ ░ ░░   ░ ▒░ ▒ ░    ░     ░ ░  ░
  ░   ▒   ░░         ░   ▒   ░         ░  ░░ ░   ░       ▒ ░░ ░   ░    ░   ░ ░  ▒ ░  ░         ░
      ░  ░               ░  ░░ ░       ░  ░  ░   ░  ░    ░        ░          ░  ░              ░  ░
-->

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

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="canonical" href="https://ignite.apache.org/download.html"/>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
    <meta http-equiv="Pragma" content="no-cache"/>
    <meta http-equiv="Expires" content="0"/>
    <title>Downloads - Apache Ignite</title>


    <!-- begin include include of "/includes/styles.html" -->

    <link media="screen" rel="stylesheet" href="/css/ignite-redesign.css?20200327">
    <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"
          media="screen">


    <!-- ***NOTICE***
         As of 2015-08-31, SSI does not work with the "virtual"
         downloads.cgi hack. Therefore, we're including the banners,
         navbars and notices explicitly. -->
    <!--#include virtual="/includes/sh.html" -->
    <!-- Syntax highlighter. -->


</head>
<body>
<!-- begin include of "/includes/header.html" -->

<header id="header" class="affix header sticky-top shrink" data-spy="affix" data-offset-top="0">
    <div class="container">
        <nav id="nav" class=" navbar navbar-expand-lg d-flex bd-highlight mb-3" role="navigation">
            <a href="/" class="mr-auto p-2 bd-highlight navbar-brand" aria-label="Ignite Homepage"><img
                    src="/images/ignite_logo_full.svg" alt="Apache Ignite Logo"></a>


            <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar">
                        <span class="navbar-toggler-icon"><i class="fa fa-bars" aria-hidden="true"></i>
                        </span>
            </button>

            <div class="collapse navbar-collapse p-2 bd-highlight" id="navbar">
                <ul class="navbar-nav ">
                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="true"
                           aira-expanded="false" aria-label="Features" id="navbarFeatures">Features</a>
                        <ul class="dropdown-menu" aria-labelledby="navbarFeatures">
                            <li class="dropdown-subtitle">Features</li>

                            <li class="dropdown-item"><a href="/arch/multi-tier-storage.html"
                                                         aria-label="Memory Centric Storage"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'memory_centric');">
                                Multi-Tier Storage</a>
                            </li>
                            <li class="dropdown-item"><a href="/arch/persistence.html"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'persistence');">
                                Native Persistence</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/sql.html" aria-label="Features"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'distributed_sql');">
                                Distributed SQL</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/key-value-store.html" aria-label="DataGrid"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'distributed_key_value');">
                                Distributed Key-Value</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/transactions.html" aria-label="Transactions"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'acid_transactions');">
                                ACID Transactions</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/collocatedprocessing.html"
                                                         aria-label="Collocated Processing"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'collocated_processing');">
                                Co-located Processing</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/machinelearning.html"
                                                         aria-label="Machine Learning"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'machine_learning');">
                                Machine Learning</a>
                            </li>
                            <li class="dropdown-item"><a href="/features.html"><i>More Features</i></a></li>


                            <!-- Ignite tooling. -->
                            <li role="presentation" class="dropdown-subtitle">Tooling</li>
                            <li class="dropdown-item"><a href="/features/manageandmonitor.html"
                                                         aria-label="Ignite Management & Monitoring"
                                                         onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'ignite_manage_monitor');">
                                Management & Monitoring</a>
                            </li>
                        </ul>
                    </li>

                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="true"
                           aira-expanded="false" id="navbarUseCases" aria-label="Use Cases">Use Cases</a>
                        <ul class="dropdown-menu" role="menu">
                            <li class="dropdown-subtitle" role="presentation">Caching & Database</li>
                            <li class="dropdown-item"><a href="/use-cases/in-memory-cache.html"
                                                         aria-label="In-Memory Cache"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'in_memory_cache');">
                                In-Memory Cache</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/datagrid.html"
                                                         aria-label="In-Memory Data Grid"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'data_grid');">
                                In-Memory Data Grid</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/in-memory-database.html"
                                                         aria-label="In-Memory Database"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'distributed-database');">
                                In-Memory Database</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/key-value-store.html"
                                                         aria-label="Key-Value Store"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'key_value_store');">
                                Key-Value Store</a>
                            </li>


                            <li class="dropdown-subtitle" role="presentation">Data & Compute Hubs</li>
                            <li class="dropdown-item"><a href="/use-cases/hpc.html"
                                                         aria-label="High-Performance Computing"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'massive_parallel_processing');">
                                High-Performance Computing</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/digital-integration-hub.html"
                                                         aria-label="Digital Integration Hub"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'digital_integration_hub');">
                                Digital Integration Hub</a>
                            </li>


                            <li class="dropdown-subtitle" role="presentation">Faster Analytics</li>
                            <li class="dropdown-item"><a href="/use-cases/spark-acceleration.html"
                                                         aria-label="Apache Spark Acceleration"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'apache_spark_acceleration');">
                                Apache Spark Acceleration</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/hadoop-acceleration.html"
                                                         aria-label="Hadoop Acceleration"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'hadoop_acceleration');">
                                Apache Hadoop Acceleration</a>
                            </li>


                            <li class="dropdown-subtitle" role="presentation">Ignite in Production</li>
                            <li class="dropdown-item"><a href="/use-cases/provenusecases.html"
                                                         aria-label="Powered by Ignite"
                                                         onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'proven_usecases');">
                                Powered by Ignite</a>
                            </li>
                        </ul>
                    </li>
                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="true"
                           aira-expanded="false" aria-label="Resources" id="navbarResources">Resources</a>
                        <ul class="dropdown-menu" role="menu">
                            <li class="dropdown-subtitle" role="presentation">Learn Ignite</li>
                            <li class="dropdown-item"><a href="/docs-and-apis.html">Documentation & APIs</a></li>
                            <li class="dropdown-item"><a href="/screencasts.html">Videos</a></li>
                            <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/examples"
                                                         target="_blank" rel="noopener">
                                Examples <i class="fa fa-external-link" style="padding-left:5px;"></i></a></li>
                            <li class="dropdown-item"><a href="https://www.shamimbhuiyan.com/ignitebook" target="_blank"
                                                         rel="noopener">Ignite Book<i
                                    class="fa fa-external-link" style="padding-left:5px;"></i></a></li>
                            <li class="dropdown-item"><a
                                    href="https://www.pluralsight.com/courses/apache-ignite-getting-started"
                                    target="_blank" rel="noopener">
                                Getting Started Course<i class="fa fa-external-link" style="padding-left:5px;"></i></a>
                            </li>
                            <li class="dropdown-subtitle" role="presentation">FAQ & Assets</li>
                            <li class="dropdown-item">
                                <a href="/in-memory-computing.html" aria-label="whats-imc"
                                   onclick="ga('send', 'event', 'whats-imc', 'menu_click', 'whats-imc');">
                                    What's In-Memory Computing?</a>
                            </li>
                            <li class="dropdown-item">
                                <a href="/whatisignite.html" aria-label="whats-ignite"
                                   onclick="ga('send', 'event', 'whatisignite', 'menu_click', 'whatisignite_page');">
                                    What's Apache Ignite?</a>
                            </li>
                            <li class="dropdown-item">
                                <a href="https://github.com/apache/ignite-website/tree/master/images/png-diagrams"
                                   aria-label="ignite-assets"
                                   onclick="ga('send', 'event', 'ignite_assets', 'menu_click', 'ignite_assets');"
                                   target="_blank">
                                    Ignite Assets<i
                                        class="fa fa-external-link" style="padding-left:5px;"></i></a>
                            </li>
                        </ul>
                    </li>
                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="true"
                           aira-expanded="false" aria-label="Community" id="navbarCommunity">Community</a>
                        <ul class="dropdown-menu" role="menu">
                            <li class="dropdown-subtitle" role="presentation">Questions & Issues</li>
                            <li class="dropdown-item"><a href="/community/resources.html">Mailing Lists & Forums</a>
                            </li>
                            <li class="dropdown-item"><a href="https://issues.apache.org/jira/browse/IGNITE"
                                                         target="_blank" rel="noopener">
                                Ignite Jira <i class="fa fa-external-link" style="padding-left:5px;"></i></a></li>
                            <li class="dropdown-item">
                                <a href="https://cwiki.apache.org/confluence/display/IGNITE/Third+Party+Support+and+Employment"
                                   target="_blank" rel="noopener">
                                    Production Support <i class="fa fa-external-link" style="padding-left:5px;"></i></a>
                            </li>
                            </li>

                            <li class="dropdown-subtitle" role="presentation">Contributions</li>
                            <li class="dropdown-item"><a href="/community/contribute.html">Start Contributing</a></li>
                            <li class="dropdown-item"><a href="/community/resources.html#people">Committers and PMC</a>
                            </li>
                            <li class="dropdown-item"><a href="https://cwiki.apache.org/confluence/display/IGNITE/"
                                                         target="_blank" rel="noopener">
                                Ignite Wiki <i class="fa fa-external-link" style="padding-left:5px;"></i></a></li>
                            <li class="dropdown-item"><a href="/community/resources.html#git">Github Repo <i
                                    class="fa fa-github fa-lg" style="padding-left:5px;"></i></a></li>

                            </li>
                        </ul>
                    </li>

                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" role="button" data-toggle="dropdown"
                           aria-haspopup="true" aira-expanded="false" aria-label="Events"
                           id="navbarEvents">Events</a>
                        <ul class="dropdown-menu" role="menu">
                            <li class="dropdown-item"><a href="/events.html">Events Schedule</a></li>
                            <li class="dropdown-item"><a href="/meetup-groups.html">Ignite Meetups</a></li>
                        </ul>
                    </li>
                    <li class="nav-item">
                        <a class="btn btn-secondary" href="/download.cgi">Download</a>
                    </li>
                </ul>
            </div>
        </nav>
    </div>
</header>


<!-- end include of "/includes/header.html" -->

<!-- START OF MAIN SITE BODY -->
<article>
    <header>
        <div class="container">

            <h1>Apache Ignite <strong>Downloads</strong></h1>
        </div>
    </header>
    <div class="container" id="downloads-page">

        <!-- Update the following template variables for every release -->
        [define distdir]ignite[end]
        [define disturl]https://www.apache.org/dist[end]

        <p>Download Apache Ignite&reg; and install in your environment. Select from one of the available options.</p>

        <section id="toc" class="page-section">
            <div class="jumbotron jumbotron-fluid">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-6">
                            <ul>
                                <li><a href="#sources">Source Releases</a></li>
                                <li><a href="#binaries">Binary Releases</a></li>
                                <li><a href="#build-source">Building the Binaries</a></li>
                                <li><a href="#docker">Docker and Cloud Images</a></li>
                                <li><a href="#git-repository">Git Repository</a></li>
                            </ul>
                        </div>
                        <div class="col-sm-6">
                            <ul>
                                <li><a href="#maven">Download from Maven</a></li>
                                <li><a href="#nuget">Download from NuGet</a></li>
                                <li><a href="#deb-package">DEB Package Installation</a></li>
                                <li><a href="#rpm-package">RPM Package Installation</a></li>
                                <li><a href="#3rdparty">3<sup>rd</sup> Party Binaries</a></li>
                            </ul>
                        </div>
                    </div>
                    <p>
                        To get LGPL dependencies (e.g. Hibernate L2 Cache),
                        see <a href="#build-source">Building The Binaries</a>.</p>
                </div>
            </div>
        </section>

        <section id="sources" class="page-section">
            <h2>Source Releases</h2>

            <table class="table table-bordered table-striped">
                <thead>
                <tr>
                    <th>Version</th>
                    <th>Docs</th>
                    <th>Release Notes</th>
                    <th>Date</th>
                    <th>Source</th>
                </tr>
                </thead>
                <tbody>
                <tr>
                    <td style="white-space: nowrap;">2.8.0 (latest)</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.8.0/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.8.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.8.0/scaladoc/scalar/">scaladoc</a>
                    </td>

                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.8.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2020-03-03</td>
                    <td style="white-space: nowrap;">
                        <a id="apache_ignite_source_download"
                           href="[preferred]/[distdir]/2.8.0/apache-ignite-2.8.0-src.zip"
                           onclick="ga('send', 'event', 'apache_ignite_source_download', 'download', 'apache-ignite-2.8.0');">apache-ignite-2.8.0-src.zip</a>

                        (<a href="https://downloads.apache.org/ignite/2.8.0/apache-ignite-2.8.0-src.zip.asc">pgp</a>,
                        <a href="https://downloads.apache.org/ignite/2.8.0/apache-ignite-2.8.0-src.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.7.6</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.7.6/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.7.6/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.7.6/scaladoc/scalar/">scaladoc</a>
                    </td>

                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.7.6/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2019-09-19</td>
                    <td style="white-space: nowrap;">
                        <a id="apache_ignite_source_download"
                           href="https://archive.apache.org/dist/ignite/2.7.6/apache-ignite-2.7.6-src.zip"
                           onclick="ga('send', 'event', 'apache_ignite_source_download', 'download', 'apache-ignite-2.7.6');">apache-ignite-2.7.6-src.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.7.6/apache-ignite-2.7.6-src.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.7.6/apache-ignite-2.7.6-src.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.7.5</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.7.5/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.7.5/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.7.5/scaladoc/scalar/">scaladoc</a>
                    </td>

                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.7.5/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2019-06-04</td>
                    <td style="white-space: nowrap;">
                        <a id="apache_ignite_source_download"
                           href="https://archive.apache.org/dist/ignite/2.7.5/apache-ignite-2.7.5-src.zip"
                           onclick="ga('send', 'event', 'apache_ignite_source_download', 'download', 'apache-ignite-2.7.5');">apache-ignite-2.7.5-src.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.7.5/apache-ignite-2.7.5-src.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.7.5/apache-ignite-2.7.5-src.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.7.0</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.7/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.7.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.7.0/scaladoc/scalar/">scaladoc</a>
                    </td>

                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.7.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2018-12-05</td>
                    <td style="white-space: nowrap;">
                        <a id="apache_ignite_source_download"
                           href="https://archive.apache.org/dist/ignite/2.7.0/apache-ignite-2.7.0-src.zip"
                           onclick="ga('send', 'event', 'apache_ignite_source_download', 'download', 'apache-ignite-2.7.0');">apache-ignite-2.7.0-src.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.7.0/apache-ignite-2.7.0-src.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.7.0/apache-ignite-2.7.0-src.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.6.0</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.6/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.6.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.6.0/scaladoc/scalar/">scaladoc</a>
                    </td>

                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.6.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2018-07-16</td>
                    <td style="white-space: nowrap;">
                        <a id="apache_ignite_source_download"
                           href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-2.6.0-src.zip"
                           onclick="ga('send', 'event', 'apache_ignite_source_download', 'download', 'apache-ignite-2.6.0');">apache-ignite-2.6.0-src.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-2.6.0-src.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-2.6.0-src.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.5.0</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.5/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.5.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.5.0/scaladoc/scalar/">scaladoc</a>
                    </td>

                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.5.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2018-05-29</td>
                    <td style="white-space: nowrap;">
                        <a id="apache_ignite_source_download"
                           href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-2.5.0-src.zip"
                           onclick="ga('send', 'event', 'apache_ignite_source_download', 'download', 'apache-ignite-2.5.0');">apache-ignite-2.5.0-src.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-2.5.0-src.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-2.5.0-src.zip.sha512">sha512</a>)
                    </td>
                </tr>
                </tbody>
            </table>
            <p>
                If you are looking for an earlier version of Apache Ignite, please find it in the
                <a href="https://archive.apache.org/dist/ignite">archive</a>.
            </p>
            <p>
                If you encounter a problem with the selected mirror, please choose another one. If primary mirrors
                are not reachable, switch to backup servers added to the end of the list.
            </p>
            <form action="/download.cgi" method="get" id="SelectMirror">
                Selected mirror:
                <select name="Preferred" onchange="submit()">
                    [if-any http]
                    [for http]
                    <option value="[http]" [is http preferred] selected="selected" [end]>[http]</option>
                    [end]
                    [end]
                    [if-any ftp]
                    [for ftp]
                    <option value="[ftp]" [is ftp preferred] selected="selected" [end]>[ftp]</option>
                    [end]
                    [end]
                    [if-any backup]
                    [for backup]
                    <option value="[backup]" [is backup preferred] selected="selected" [end]>[backup] (backup)</option>
                    [end]
                    [end]
                </select>
                <input type="submit" value="Change"/>
            </form>
        </section>

        <section id="binaries" class="page-section">
            <h2>Binary Releases</h2>
            <p>
                Binary release packages are provided for your convenience and not considered as primary
                release artifacts of the ASF. It's recommended to verify a release downloadable, following
                <a href="#verification">this guidelines</a>. For more information about Apache release policy see
                <a href="http://www.apache.org/dev/release.html#what" target="_blank">What is a Release?</a>
            </p>
            <table class="table table-bordered table-striped">
                <thead>
                <tr>
                    <th>Version</th>
                    <th>Docs</th>
                    <th>Release Notes</th>
                    <th>Date</th>
                    <th>Binary</th>
                </tr>
                </thead>
                <tbody>
                <tr>
                    <td style="white-space: nowrap;">2.8.0 (latest)</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.8.0/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.8.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.8.0/scaladoc/scalar/">scaladoc</a>
                    </td>
                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.8.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2020-03-03</td>
                    <td style="white-space: nowrap;">
                        <a
                                id="apache_ignite_binary_fabric_download"
                                href="[preferred]/[distdir]/2.8.0/apache-ignite-2.8.0-bin.zip"
                                onclick="ga('send', 'event', 'apache_ignite_fabric_download', 'download', 'apache-ignite-2.8.0');">apache-ignite-2.8.0-bin.zip</a>

                        (<a href="https://downloads.apache.org/ignite/2.8.0/apache-ignite-2.8.0-bin.zip.asc">pgp</a>,
                        <a href="https://downloads.apache.org/ignite/2.8.0/apache-ignite-2.8.0-bin.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.7.6</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.7.6/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.7.6/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.7.6/scaladoc/scalar/">scaladoc</a>
                    </td>
                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.7.6/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2019-09-19</td>
                    <td style="white-space: nowrap;">
                        <a
                                id="apache_ignite_binary_fabric_download"
                                href="https://archive.apache.org/dist/ignite/2.7.6/apache-ignite-2.7.6-bin.zip"
                                onclick="ga('send', 'event', 'apache_ignite_fabric_download', 'download', 'apache-ignite-2.7.6');">apache-ignite-2.7.6-bin.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.7.6/apache-ignite-2.7.6-bin.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.7.6/apache-ignite-2.7.6-bin.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.7.5</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.7.5/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.7.5/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.7.5/scaladoc/scalar/">scaladoc</a>
                    </td>
                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.7.5/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2019-06-04</td>
                    <td style="white-space: nowrap;">
                        <a
                                id="apache_ignite_binary_fabric_download"
                                href="https://archive.apache.org/dist/ignite/2.7.5/apache-ignite-2.7.5-bin.zip"
                                onclick="ga('send', 'event', 'apache_ignite_fabric_download', 'download', 'apache-ignite-2.7.5');">apache-ignite-2.7.5-bin.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.7.5/apache-ignite-2.7.5-bin.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.7.5/apache-ignite-2.7.5-bin.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.7.0</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.7/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.7.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.7.0/scaladoc/scalar/">scaladoc</a>
                    </td>
                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.7.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2018-12-05</td>
                    <td style="white-space: nowrap;">
                        <a
                                id="apache_ignite_binary_fabric_download"
                                href="https://archive.apache.org/dist/ignite/2.7.0/apache-ignite-2.7.0-bin.zip"
                                onclick="ga('send', 'event', 'apache_ignite_fabric_download', 'download', 'apache-ignite-2.7.0');">apache-ignite-2.7.0-bin.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.7.0/apache-ignite-2.7.0-bin.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.7.0/apache-ignite-2.7.0-bin.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.6.0</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.6/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.6.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.6.0/scaladoc/scalar/">scaladoc</a>
                    </td>
                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.6.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2018-07-16</td>
                    <td style="white-space: nowrap;">
                        <a
                                id="apache_ignite_binary_fabric_download"
                                href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-fabric-2.6.0-bin.zip"
                                onclick="ga('send', 'event', 'apache_ignite_fabric_download', 'download', 'apache-ignite-2.6.0');">apache-ignite-fabric-2.6.0-bin.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-fabric-2.6.0-bin.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-fabric-2.6.0-bin.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.5.0</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.5/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.5.0/javadoc/">javadoc</a>,
                        <a href="https://ignite.apache.org/releases/2.5.0/scaladoc/scalar/">scaladoc</a>
                    </td>
                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.5.0/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2018-05-29</td>
                    <td style="white-space: nowrap;">
                        <a
                                id="apache_ignite_binary_fabric_download"
                                href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-fabric-2.5.0-bin.zip"
                                onclick="ga('send', 'event', 'apache_ignite_fabric_download', 'download', 'apache-ignite-2.5.0');">apache-ignite-fabric-2.5.0-bin.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-fabric-2.5.0-bin.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-fabric-2.5.0-bin.zip.sha512">sha512</a>)
                    </td>
                </tr>
                </tbody>
            </table>
            <p>If you are looking for previous release versions of Apache Ignite, please have a look in the
                <a href="https://archive.apache.org/dist/ignite">archive</a>.
            </p>

<!--            <h3>In-Memory Hadoop Accelerator</h3>-->
<!--            <p>The Community agreed to drop the Hadoop distributions of Apache Ignite, so newer versions not-->
<!--                available.</p>-->
<!--            <table class="table table-bordered table-striped">-->
<!--                <thead>-->
<!--                <tr>-->
<!--                    <th>Version</th>-->
<!--                    <th>Docs</th>-->
<!--                    <th>Release Notes</th>-->
<!--                    <th>Date</th>-->
<!--                    <th>Binary</th>-->
<!--                </tr>-->
<!--                </thead>-->
<!--                <tbody>-->
<!--                <tr>-->
<!--                    <td style="white-space: nowrap;">2.6.0 (latest)</td>-->
<!--                    <td style="white-space: nowrap;">-->
<!--                        <a href="https://apacheignite-fs.readme.io/v2.6.0/docs/hadoop-accelerator">guide</a>-->
<!--                    </td>-->
<!--                    <td style="white-space: nowrap;"><a-->
<!--                            href="https://ignite.apache.org/releases/2.6.0/release_notes.html">release notes</a></td>-->
<!--                    <td style="white-space: nowrap;">2018-07-16</td>-->
<!--                    <td style="white-space: nowrap;">-->
<!--                        <a-->
<!--                                id="apache_ignite_binary_hadoop_download"-->
<!--                                href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-hadoop-2.6.0-bin.zip"-->
<!--                                onclick="ga('send', 'event', 'apache_ignite_hadoop_download', 'download', 'apache-ignite-2.6.0');">apache-ignite-hadoop-2.6.0-bin.zip</a>-->

<!--                        (<a href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-hadoop-2.6.0-bin.zip.asc">pgp</a>,-->
<!--                        <a href="https://archive.apache.org/dist/ignite/2.6.0/apache-ignite-hadoop-2.6.0-bin.zip.sha512">sha512</a>)-->
<!--                    </td>-->
<!--                </tr>-->
<!--                <tr>-->
<!--                    <td style="white-space: nowrap;">2.5.0</td>-->
<!--                    <td style="white-space: nowrap;">-->
<!--                        <a href="https://apacheignite-fs.readme.io/v2.5.0/docs/hadoop-accelerator">guide</a>-->
<!--                    </td>-->
<!--                    <td style="white-space: nowrap;"><a-->
<!--                            href="https://ignite.apache.org/releases/2.5.0/release_notes.html">release notes</a></td>-->
<!--                    <td style="white-space: nowrap;">2018-05-29</td>-->
<!--                    <td style="white-space: nowrap;">-->
<!--                        <a-->
<!--                                id="apache_ignite_binary_hadoop_download"-->
<!--                                href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-hadoop-2.5.0-bin.zip"-->
<!--                                onclick="ga('send', 'event', 'apache_ignite_hadoop_download', 'download', 'apache-ignite-2.5.0');">apache-ignite-hadoop-2.5.0-bin.zip</a>-->

<!--                        (<a href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-hadoop-2.5.0-bin.zip.asc">pgp</a>,-->
<!--                        <a href="https://archive.apache.org/dist/ignite/2.5.0/apache-ignite-hadoop-2.5.0-bin.zip.sha512">sha512</a>)-->
<!--                    </td>-->
<!--                </tr>-->
<!--                </tbody>-->
<!--            </table>-->
<!--            <p>If you are looking for previous release versions of Apache Ignite In-Memory Hadoop Accelerator,-->
<!--                please have a look in the <a href="https://archive.apache.org/dist/ignite">archive</a>.-->
<!--            </p>-->
        </section> <!-- downloads -->

        <section id="docker" class="page-section">
            <h2>Docker and Cloud Images</h2>
            <table class="table table-bordered table-striped">
                <thead>
                <tr>
                    <th>Name</th>
                    <th>Docs</th>
                    <th>Date</th>
                    <th>URL</th>
                </tr>
                </thead>
                <tbody>
                <tr>
                    <td style="white-space: nowrap;">Docker Image</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/docs/docker-deployment">guide</a>
                    </td>
                    <td style="white-space: nowrap;">2020-03-03</td>
                    <td style="white-space: nowrap;">
                        <a id="docker_repo_download"
                           href="https://hub.docker.com/r/apacheignite/ignite/tags/"
                           onclick="ga('send', 'event', 'docker_repo_download', 'download', 'docker_repo_download');">https://hub.docker.com/r/apacheignite/ignite/tags</a>
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">Amazon Image</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/docs/aws-deployment">guide</a>
                    </td>
                    <td style="white-space: nowrap;">2018-07-16</td>
                    <td style="white-space: nowrap;">
                        <a id="aws_image_west_download"
                           href="https://console.aws.amazon.com/ec2/home?region=us-west-1#launchAmi=ami-9cdbb3fc"
                           onclick="ga('send', 'event', 'aws_image_west_download', 'download', 'aws_image_west_download');">https://console.aws.amazon.com/ec2/home?region=us-west-1#launchAmi=ami-9cdbb3fc</a>
                        </br>
                        <a id="aws_image_east_download"
                           href="https://console.aws.amazon.com/ec2/home?region=us-east-1#launchAmi=ami-ce82caa4"
                           onclick="ga('send', 'event', 'aws_image_east_download', 'download', 'aws_image_east_download');">https://console.aws.amazon.com/ec2/home?region=us-east-1#launchAmi=ami-ce82caa4</a>
                        </br>
                        <a id="aws_image_central_download"
                           href="https://console.aws.amazon.com/ec2/home?region=eu-central-1#launchAmi=ami-191b0775"
                           onclick="ga('send', 'event', 'aws_image_central_download', 'download', 'aws_image_central_download');">https://console.aws.amazon.com/ec2/home?region=eu-central-1#launchAmi=ami-191b0775</a>
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">Google Compute Image</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/docs/google-compute-deployment">guide</a>
                    </td>
                    <td style="white-space: nowrap;">2018-07-16</td>
                    <td style="white-space: nowrap;">
                        <a id="gce_image_download"
                           href="https://storage.googleapis.com/ignite-media/ignite-google-image.tar.gz"
                           onclick="ga('send', 'event', 'gce_image_download', 'download', 'gce_image_download');">ignite-google-image.tar.gz</a>

                        (<a href="https://downloads.apache.org/ignite/gce/ignite-google-image.tar.gz.asc">pgp</a>,
                        <a href="https://downloads.apache.org/ignite/gce/ignite-google-image.tar.gz.sha512">sha512</a>)

                    </td>
                </tr>
                </tbody>
            </table>
        </section><!-- cloud images -->

        <section id="verification" class="page-section"><!-- verification -->
            <h2>How to Verify</h2>
            <p>
                The PGP signatures can be verified using PGP or GPG. First download the
                <a href="https://downloads.apache.org/ignite/KEYS">Apache Ignite KEYS</a> file as well
                as the <i>.asc</i> signature files for the desired release version. Make sure you get these
                files from the main distribution directory, rather than from a mirror. Then verify the signatures.
            </p>
            <p>
                Please check <a href="https://www.apache.org/info/verification.html">How to Verify Downloaded Files</a>
                for more information on how and why you should verify Apache Ignite releases.
            </p>
            <pre class="brush:xml">
                % gpg --import KEYS
                % gpg --verify apache-ignite-2.8.0-src.zip.asc apache-ignite-2.8.0-src.zip
            </pre>
        </section><!-- verification -->

        <section id="maven" class="page-section">
            <h2>Download from Maven</h2>
            <p>
                Ignite requires only one <b>ignite-core</b> mandatory dependency. Usually you will
                also need to add <b>ignite-spring</b> for spring-based XML configuration, and <b>ignite-indexing</b> for
                SQL
                querying.
            </p>
            <p>
                Most often your Ignite pom file will look like this (replace ${ignite-version} with the latest Ignite
                version).
            </p>
            <pre class="brush:xml">
    &lt;dependency>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId>org.apache.ignite&lt;/groupId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId>ignite-core&lt;/artifactId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;version>${ignite.version}&lt;/version>
    &lt;/dependency>
    &lt;dependency>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId>org.apache.ignite&lt;/groupId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId>ignite-spring&lt;/artifactId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;version>${ignite.version}&lt;/version>
    &lt;/dependency>
    &lt;dependency>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId>org.apache.ignite&lt;/groupId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId>ignite-indexing&lt;/artifactId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;version>${ignite.version}&lt;/version>
    &lt;/dependency>
    </pre>
            <p>See <a href="http://apacheignite.readme.io/v1.0/docs/maven-setup">Maven Setup</a> for a full list of
                Maven
                dependencies.</p>
        </section><!-- maven downloads -->

        <section id="nuget" class="page-section">
            <h2>Download from NuGet</h2>
            <p>
                Ignite.NET is also distributed through NuGet.
                There are multiple packages: <a href="https://www.nuget.org/packages?q=Apache.Ignite">nuget.org/packages?q=Apache.Ignite</a>
            </p>
            <p>
                See <a href="https://apacheignite-net.readme.io/docs/getting-started-2#section-nuget">Getting
                Started</a> for more info.
            </p>
        </section><!-- NuGet downloads -->

        <section id="rpm-package" class="page-section">
            <h2>RPM Package Installation</h2>
            <p>
                Apache Ignite can also be installed from the official RPM repository:
                <a href="https://bintray.com/apache/ignite-rpm" target="_blank" rel="noopener">https://bintray.com/apache/ignite-rpm</a>
            </p>
            <p>Add the repository to Yum repositories list:</p>
            <pre class="brush:bash">
            sudo bash -c 'cat &lt;&lt;EOF &gt; /etc/yum.repos.d/ignite.repo
            [ignite]
            name=Apache Ignite
            baseurl=https://apache.org/dist/ignite/rpm/
            gpgcheck=1
            repo_gpgcheck=1
            gpgkey=https://apache.org/dist/ignite/KEYS
            https://bintray.com/user/downloadSubjectPublicKey?username=bintray
            EOF'
            sudo yum check-update
        </pre>
            <p>Then install the latest Apache Ignite version (accept the ​GPG key import prompt):</p>
            <pre class="brush:bash">
            sudo yum install apache-ignite
        </pre>
            <p>
                See <a href="https://apacheignite.readme.io/docs/rpm-and-deb-setup">Getting Started</a>
                for more information on how to start an Apache Ignite node and check logs.
            </p>
        </section><!-- RPM package installation -->

        <section id="deb-package" class="page-section">
            <h2>DEB Package Installation</h2>
            <p>
                Apache Ignite can also be installed from the official debian repository:
                <a href="https://bintray.com/apache/ignite-deb" target="_blank" rel="noopener">https://bintray.com/apache/ignite-deb</a>
            </p>
            <p>Add the repository to APT repositories list:</p>
            <pre class="brush:bash">
            sudo bash -c 'cat &lt;&lt;EOF &gt; /etc/apt/sources.list.d/ignite.list
            deb http://apache.org/dist/ignite/deb/ apache-ignite main
            EOF'
            sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
            sudo apt update
        </pre>
            <p>Then install the latest Apache Ignite version (accept the ​GPG key import prompt):</p>
            <pre class="brush:bash">
            sudo apt install apache-ignite --no-install-recommends
        </pre>
            <p>
                See <a href="https:https://apacheignite.readme.io/docs/rpm-and-deb-setup">Getting Started</a>
                for more information on how to start an Apache Ignite node and check logs.
            </p>
        </section><!-- DEB package installation -->

        <section id="build-source" class="page-section">
            <h2>Building the Binaries </h2>
            NOTE: Ignite supports JDK 8 and JDK 11.
            <pre class="brush:bash">
           # Unpack the source package
           $ unzip -q apache-ignite-2.8.0-src.zip
           $ cd apache-ignite-2.8.0-src

           # Build In-Memory Computing Platform release (without LGPL dependencies)
           $ mvn clean package -DskipTests

           # Build In-Memory Computing Platform release (with LGPL dependencies)
           $ mvn clean package -DskipTests -Prelease,lgpl

           # Build In-Memory Hadoop Accelerator release
           # (optionally specify version of hadoop to use)
           $ mvn clean package -DskipTests -Dignite.edition=hadoop [-Dhadoop.version=X.X.X]
        </pre>
        </section><!-- build-source -->

        <section id="git-repository" class="page-section">
            <h2>GIT Repository</h2>
            <pre class="brush:bash">
           $ git clone https://gitbox.apache.org/repos/asf/ignite
        </pre>
        </section><!-- git-repository -->

        <section id="3rdparty" class="page-section">
            <h2>3<sup>rd</sup> Party Binaries</h2>

            <p>
                This is a list of 3<sup>rd</sup> party binary packages based on Apache Ignite. The Apache Ignite project
                does not endorse or maintain any 3<sup>rd</sup> party binary packages.
            </p>

            <p>
                <a href="http://www.gridgain.com/download/editions/" target="_blank" rel="noopener"><b>GridGain
                    Professional Edition</b></a>
                is a binary build of Apache Ignite created by GridGain, which includes optional LGPL
                dependencies, such as Hibernate L2 cache integration and Geospatial Indexing, as well as bug
                fixes and features which may be included into the future official Apache Ignite releases.
            </p>
            <p>
                GridGain also provides his own <a
                    href="http://www.gridgainsystems.com/nexus/content/repositories/external" target="_blank"
                    rel="noopener"><b>GridGain Maven Repository</b></a> containing Apache Ignite LGPL artifacts such as
                ignite-hibernate.</br>
                Please note that artifacts located at GridGain Maven Repository provided for convenience and are NOT
                official Apache Ignite artifacts.
            </p>

            <p>
                If you would like to provide your own edition of Apache Ignite here, please send email to
                <a href="mailto:dev@ignite.apache.org?subject=Subscribe&body=Please%20subscribe%20me.">Ignite dev
                    list</a>.
            </p>
        </section> <!-- 3rdparty -->
    </div>
</article>
<!-- END OF MAIN SITE BODY -->

<!--start include virtual="/includes/footer.html" -->
<footer id="footer" class="bg-gray-shadow">
    <div class="wrapper">
        <div class="container">
            <div class="row">
                <nav class="col-md-4">
                    <ul class="list-unstyled">
                        <li><a href="/features.html">Features</a></li>
                        <li><a href="/docs-and-apis.html">Documentation</a></li>
                        <li><a href="/community/resources.html">Ask Question</a></li>
                        <li><a href="/download.cgi">Download</a></li>
                        <li><a href="/community/contribute.html">Contribute</a></li>
                    </ul>

                    <ul class="social-networks list-unstyled">
                        <li><a href="https://www.linkedin.com/company/apache-ignite" aria-label="Linkedin"
                               class="icon-linkedin" target="_blank" rel="noopener"></a></li>
                        <li><a href="https://twitter.com/ApacheIgnite" aria-label="Twitter" class="icon-twitter"
                               target="_blank" rel="noopener"></a></li>
                        <li><a href="https://plus.google.com/109419715166167783665" aria-label="Google Plus"
                               class="icon-google-plus" target="_blank" rel="noopener"></a></li>
                        <li><a href="https://www.facebook.com/Apache-Ignite-813431118713318/" aria-label="Facebook"
                               class="icon-facebook" target="_blank" rel="noopener"></a></li>
                    </ul>
                </nav>
                <div class="col-md-8 copyright">
                    <p>&copy; 2015 - 2020 <a href="http://www.apache.org/">The Apache Software Foundation</a>.<br/>
                        Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered
                        trademarks
                        or trademarks of The Apache Software Foundation. <br/><a
                                href="http://apache.org/foundation/policies/privacy.html" target="_blank">Privacy
                            Policy</a></p>

                    <div class="footer-logos">
                        <a class="ignite" href="#wrapper"><img src="/images/ignite_logo_full.svg"
                                                               alt="Apache Ignite Logo"></a>
                        <a class="apache" href="https://donate.apache.org/"><img src="/images/support-apache-opt.png"
                                                                                 alt="Apache Software Foundation"/></a>
                    </div>


                </div>
            </div>
        </div>
    </div>
</footer>


<!-- end of include "/includes/footer.html" -->


<!-- include of "/includes/scripts.html" -->
<!-- load google fonts async -->
<script type="text/javascript">
    WebFontConfig = {
        google: {families: ['Open+Sans:300,400,600,700&display=swap']}
    };
    (function () {
        var wf = document.createElement('script');
        wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
        wf.type = 'text/javascript';
        wf.async = 'true';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(wf, s);
    })(); </script>


<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
        integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
        crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
        integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
        crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
        integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
        crossorigin="anonymous"></script>

<script>
    (function (i, s, o, g, r, a, m) {
        i['GoogleAnalyticsObject'] = r;
        i[r] = i[r] || function () {
            (i[r].q = i[r].q || []).push(arguments)
        }, i[r].l = 1 * new Date();
        a = s.createElement(o),
            m = s.getElementsByTagName(o)[0];
        a.async = 1;
        a.src = g;
        m.parentNode.insertBefore(a, m)
    })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');

    ga('create', 'UA-61232409-1', 'auto');
    ga('send', 'pageview');
</script>
<script type="text/javascript">
    if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
        var msViewportStyle = document.createElement('style');
        msViewportStyle.appendChild(
            document.createTextNode(
                '@-ms-viewport{width:auto!important}'
            )
        );
        document.querySelector('head').appendChild(msViewportStyle)
    }

</script>


<!-- Syntax highlight. -->
<script type="text/javascript">
    if (typeof SyntaxHighlighter != "undefined") {
        SyntaxHighlighter.all()
    }
</script>

<!-- include of "/includes/scripts.html" -->

<!-- Github stats-->
<script async defer src="https://buttons.github.io/buttons.js"></script>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<!-- end of include "/includes/scripts.html" -->


<!-- Table export -->
<script type="text/javascript"
        src="https://cdn.rawgit.com/hhurz/tableExport.jquery.plugin/master/libs/FileSaver/FileSaver.min.js"></script>
<script type="text/javascript"
        src="https://cdn.rawgit.com/hhurz/tableExport.jquery.plugin/master/libs/jsPDF/jspdf.min.js"></script>
<script type="text/javascript" src="/js/jspdf.plugin.autotable.js"></script>
<script type="text/javascript" src="/js/tableExport.min.js"></script>

<script type="text/javascript">
    $(document).ready(function () {
        var expBtnDesc = [
            {cfg: {type: 'json'}, text: 'JSON', icon: 'ico-json.png?20191126'},
            {cfg: {type: 'xml'}, text: 'XML', icon: 'ico-xml.png?20191126'},
            {cfg: {type: 'csv'}, text: 'CSV', icon: 'ico-csv.png?20191126'},
            {cfg: {type: 'excel'}, text: 'XLS', icon: 'ico-xls.png?20191126'},
            {
                cfg: {
                    type: 'pdf',
                    jspdf: {
                        autotable: {
                            styles: {
                                overflow: 'linebreak',
                                fontSize: 14,
                                rowHeight: 19,
                                valign: 'top'
                            },
                            headerStyles: {
                                rowHeight: 20,
                                fontSize: 16,
                                fillColor: 207,
                                textColor: 0,
                                valign: 'middle'
                            },
                            bodyStyles: {
                                fillColor: 245
                            },
                            alternateRowStyles: {
                                fillColor: 255,
                                valign: 'middle'
                            }
                        }
                    }
                },
                text: 'PDF',
                icon: 'ico-pdf.png?20191126'
            }
        ];

        $("table").each(function (ix, tbl) {
            var insert = '' +
                '<div class="btn-group btn-group-export" title="Export table content to selected format">\n' +
                '    <button class="btn btn-default btn-export btn-sm dropdown-toggle fa fa-download" data-toggle="dropdown"></button>\n' +
                '    <ul class="dropdown-menu dropdown-menu-right table-export-options" role="menu">\n';

            var id = this.id || 'table' + ix;

            this.id = id;

            $.each(expBtnDesc, function (ix, btn) {
                btn.cfg.fileName = $(tbl).attr('name');

                insert += "        <li><a href='#' onclick='$(\"#" + id + "\").tableExport(" + JSON.stringify(btn.cfg) + ");'>" +
                    "<img src='/images/" + btn.icon + "' width='24px'/> " + btn.text +
                    "</a></li>\n";


            });

            insert += '    </ul>\n' +
                '</div>\n';

            $(this).find('thead > tr > th:last-child').append(insert);
        });

        $("table#mc").find("button").hide();
    });
</script>
</body>
</html>
