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

<!--
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"/>
    
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-61232409-1');
</script>



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

    <!-- ***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. -->
    
</head>
<body class="line-numbers">
<!-- begin include of "/includes/header.html" -->


<header id="header" class="affix header sticky-top shrink" data-spy="affix" data-offset-top="0">
    <div id="promotion-bar">
        <p>Webinar: "Learn Apache Ignite Through Coding Examples" -
            <a href="https://ignite.apache.org/events.html#learn-apache-ignite-through-coding-examples" rel="noopener">Learn More</a></p>
    </div>

    <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 aria-label="Main Menu" type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar">
                        <span class="navbar-toggler-icon"><i class="fas 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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': 'memory_centric'});">
                                Multi-Tier Storage</a>
                            </li>
                            <li class="dropdown-item"><a href="/arch/native-persistence.html"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': 'persistence'});">
                                Native Persistence</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/sql.html" aria-label="Features"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': 'distributed_sql'});">
                                Distributed SQL</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/key-value-store.html" aria-label="DataGrid"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': 'distributed_key_value'});">
                                Distributed Key-Value</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/acid-transactions.html" aria-label="Transactions"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': 'acid_transactions'});">
                                ACID Transactions</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/collocated-processing.html"
                                                         aria-label="Collocated Processing"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': 'collocated_processing'});">
                                Co-located Processing</a>
                            </li>
                            <li class="dropdown-item"><a href="/features/machinelearning.html"
                                                         aria-label="Machine Learning"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_features', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': 'in_memory_cache'});">
                                In-Memory Cache</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/in-memory-data-grid.html"
                                                         aria-label="In-Memory Data Grid"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': '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/high-performance-computing.html"
                                                         aria-label="High-Performance Computing"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': 'apache_spark_acceleration'});">
                                Apache Spark Acceleration</a>
                            </li>
                            <li class="dropdown-item"><a href="/use-cases/hadoop-acceleration.html"
                                                         aria-label="Hadoop Acceleration"
                                                         onclick="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'apache_ignite_usecases', 'event_label': '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="fas fa-external-link-alt" 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="fas fa-external-link-alt" style="padding-left:5px;"></i></a></li>
                            <li class="dropdown-item"><a href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/" target="_blank"
                                                         rel="noopener">Worldwide Ignite Meetup<i
                                    class="fas fa-external-link-alt" 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="fas fa-external-link-alt" 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="gtag('event', 'menu_click', { 'event_category': 'whats-imc', 'event_label': 'whats-imc'});">
                                    What's In-Memory Computing?</a>
                            </li>
                            <li class="dropdown-item">
                                <a href="/whatisignite.html" aria-label="whats-ignite"
                                   onclick="gtag('event',  'menu_click', { 'event_category': 'whatisignite', 'event_label': '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="gtag('event',  'menu_click', { 'event_category': 'ignite_assets', 'event_label': 'ignite_assets'});" rel="noopener" target="_blank">
                                    Ignite Assets<i
                                        class="fas fa-external-link-alt" 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="fas fa-external-link-alt" 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="fas fa-external-link-alt" 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="fas fa-external-link-alt" 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>
                                <li><a href="#extensions">Extensions</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.1 (latest)</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.8.1/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.8.1/javadoc/">javadoc</a>
                    </td>

                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.8.1/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2020-05-27</td>
                    <td style="white-space: nowrap;">
                        <a id="apache_ignite_source_download"
                           href="[preferred]/[distdir]/2.8.1/apache-ignite-2.8.1-src.zip"
                           onclick="gtag('event',  'download', {'event_category': 'apache_ignite_source_download', 'event_label': 'apache-ignite-2.8.1'});">apache-ignite-2.8.1-src.zip</a>

                        (<a href="https://downloads.apache.org/ignite/2.8.1/apache-ignite-2.8.1-src.zip.asc">pgp</a>,
                        <a href="https://downloads.apache.org/ignite/2.8.1/apache-ignite-2.8.1-src.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.8.0</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="https://archive.apache.org/dist/ignite/2.8.0/apache-ignite-2.8.0-src.zip"
                           onclick="gtag('event',  'download', {'event_category': 'apache_ignite_source_download', 'event_label': 'apache-ignite-2.8.0'});">apache-ignite-2.8.0-src.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.8.0/apache-ignite-2.8.0-src.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/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="gtag('event',  'download', {'event_category': 'apache_ignite_source_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_source_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_source_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_source_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_source_download', 'event_label': '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.1 (latest)</td>
                    <td style="white-space: nowrap;">
                        <a href="https://apacheignite.readme.io/v2.8.1/docs">guide</a>,
                        <a href="https://ignite.apache.org/releases/2.8.1/javadoc/">javadoc</a>
                    </td>
                    <td style="white-space: nowrap;"><a
                            href="https://ignite.apache.org/releases/2.8.1/release_notes.html">release notes</a></td>
                    <td style="white-space: nowrap;">2020-05-27</td>
                    <td style="white-space: nowrap;">
                        <a
                                id="apache_ignite_binary_fabric_download"
                                href="[preferred]/[distdir]/2.8.1/apache-ignite-2.8.1-bin.zip"
                                onclick="gtag('event',  'download', {'event_category': 'apache_ignite_fabric_download', 'event_label': 'apache-ignite-2.8.1'});">apache-ignite-2.8.1-bin.zip</a>

                        (<a href="https://downloads.apache.org/ignite/2.8.1/apache-ignite-2.8.1-bin.zip.asc">pgp</a>,
                        <a href="https://downloads.apache.org/ignite/2.8.1/apache-ignite-2.8.1-bin.zip.sha512">sha512</a>)
                    </td>
                </tr>
                <tr>
                    <td style="white-space: nowrap;">2.8.0</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="https://archive.apache.org/dist/ignite/2.8.0/apache-ignite-2.8.0-bin.zip"
                                onclick="gtag('event',  'download', {'event_category': 'apache_ignite_fabric_download', 'event_label': 'apache-ignite-2.8.0'});">apache-ignite-2.8.0-bin.zip</a>

                        (<a href="https://archive.apache.org/dist/ignite/2.8.0/apache-ignite-2.8.0-bin.zip.asc">pgp</a>,
                        <a href="https://archive.apache.org/dist/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="gtag('event',  'download', {'event_category': 'apache_ignite_fabric_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_fabric_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_fabric_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_fabric_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_fabric_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_hadoop_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'apache_ignite_hadoop_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'docker_repo_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'aws_image_west_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'aws_image_east_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'aws_image_central_download', 'event_label': '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="gtag('event',  'download', {'event_category': 'gce_image_download', 'event_label': '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.1-src.zip.asc apache-ignite-2.8.1-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="line-numbers"><code class="language-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>
    </code></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="line-numbers"><code class="language-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
        </code></pre>
            <p>Then install the latest Apache Ignite version (accept the ​GPG key import prompt):</p>
            <pre class="line-numbers"><code class="language-bash">
            sudo yum install apache-ignite
        </code></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="line-numbers"><code class="language-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
        </code></pre>
            <p>Then install the latest Apache Ignite version (accept the ​GPG key import prompt):</p>
            <pre class="line-numbers"><code class="language-bash">
            sudo apt install apache-ignite --no-install-recommends
        </code></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="line-numbers"><code class="language-bash">
           # Unpack the source package
           $ unzip -q apache-ignite-2.8.1-src.zip
           $ cd apache-ignite-2.8.1-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]
        </code></pre>
        </section><!-- build-source -->

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

        <section id="extensions" class="page-section">
            <h2>Extensions</h2>
            <pre class="line-numbers"><code class="language-xml">
    &lt;dependency>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId>org.apache.ignite&lt;/groupId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId>ignite-spring-boot-autoconfigure-ext&lt;/artifactId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;version>1.0.0&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-boot-thin-client-autoconfigure-ext&lt;/artifactId>
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;version>1.0.0&lt;/version>
    &lt;/dependency>
    </code></pre>
        </section><!-- extensions -->

        <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" -->
<link rel="stylesheet" href="/css/ignite-redesign.css?20200417" media="print" onload="this.media='all'">
<noscript><link media="all" rel="stylesheet" href="/css/ignite-redesign.css?20200417"></noscript>


<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.13.0/css/all.css" integrity="sha384-Bfad6CLCknfcloXFOyFnlgtENryhrpZCe29RTifKEixXQZ38WheV+i/6YWSzkz3V" crossorigin="anonymous" media="screen">

<!-- 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 src="/js/prism.js" ></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>


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