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

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