---
layout: page
title: Download
description: Project Download Page
group: nav-right
---
<!--
{% comment %}
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to you under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
{% endcomment %}
-->

<!-- Hero  -->
<section class="full-stripe full-stripe--subpage-header clear-header">
  <div class="ml-container ml-container--horizontally-center">
    <div class="col col-12 content-group content-group--center-content content-group--center-align">
      <h1>{{ site.data.project.name }} Downloads</h1>
    </div>
  </div>
</section>

<section class="full-stripe full-stripe--alternate">
  <div class="ml-container">
    <div class="col col-12 content-group content-group--medium-bottom-margin">
      <h2>Downloads SystemDS</h2>
      <p>Apache SystemDS is released as a source artifact. Binary artifacts (including the ones available in Maven) are
        made available for your convenience. You will be prompted for a mirror Apache SystemDS is distributed under the
        <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>. </p>
    </div>
    <div class="col col-12 content-group">
      <h2>Download SystemDS {{ site.data.project.release_version }} for Apache Spark 3.x and above</h2>
    </div>

    <div class="col col-12 content-group row">
      <div class="span10">
        <table class="table table-hover">
          <tr>
            <th><b>Name</b></th>
            <th><b>SHA512</b></th>
            <th><b>Signature</b></th>
          </tr>
          <tr>
            <td><a
                href="https://www.apache.org/dyn/closer.lua/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-bin.tgz"
                target="_blank"> {{ site.data.project.release_name }}-{{ site.data.project.release_version }} (Binary
                tgz)</a></td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-bin.tgz.sha512">SHA512</a>
            </td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-bin.tgz.asc">ASC</a>
            </td>
          </tr>
          <tr>
            <td><a
                href="https://www.apache.org/dyn/closer.lua/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-bin.zip"
                target="_blank">{{ site.data.project.release_name }}-{{ site.data.project.release_version }} (Binary
                zip)</a></td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-bin.zip.sha512">SHA512</a>
            </td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-bin.zip.asc">ASC</a>
            </td>
          </tr>
          <tr>
            <td><a
                href="https://www.apache.org/dyn/closer.lua/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-src.tgz"
                target="_blank">{{ site.data.project.release_name }}-{{ site.data.project.release_version }} (Source
                tgz)</a></td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-src.tgz.sha512">SHA512</a>
            </td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-src.tgz.asc">ASC</a>
            </td>
          </tr>
          <tr>
            <td><a
                href="https://www.apache.org/dyn/closer.lua/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-src.zip"
                target="_blank">{{ site.data.project.release_name }}-{{ site.data.project.release_version }} (Source
                zip)</a></td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-src.zip.sha512">SHA512</a>
            </td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-src.zip.asc">ASC</a>
            </td>
          </tr>
          <!-- <tr>
            <td><a
                href="http://www.apache.org/dyn/closer.lua/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-python.tgz"
                target="_blank">{{ site.data.project.release_name }}-{{ site.data.project.release_version }} (Python
                package .tgz)</a></td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-python.tgz.sha512">SHA512</a>
            </td>
            <td><a
                href="https://www.apache.org/dist/systemds/{{ site.data.project.release_version }}/systemds-{{ site.data.project.release_version }}-python.tgz.asc">ASC</a>
            </td>
          </tr> -->

          <tr>
            <td><a href="release-notes/systemds-release-notes-{{ site.data.project.release_version }}.html">Release
                Notes</a></td>
            <td></td>
            <td></td>
          </tr>
        </table>

        <p>Instructions for checking hashes and signatures is described on the <a
            href="https://www.apache.org/info/verification.html" target="_blank">Verifying Apache Software Foundation
            Releases</a> page.
          These <a href="https://www.apache.org/dist/systemds/KEYS" target="_blank">KEYS</a> can be used to <a
            href="https://www.apache.org/dyn/closer.cgi#verify" target="_blank">verify</a> the integrity of the
          downloaded artifact using PGP signature (.asc).
        </p>

        <h3>Using Maven</h3>

        <p>We strongly encourage our users to configure a Maven repository mirror closer to their location. <br>
          Please read <a href="https://maven.apache.org/guides/mini/guide-mirror-settings.html" target="_blank">How to
            Use Mirrors for Repositories</a>.

        <h4>Dependencies</h4>

        <p>Add the following dependencies to your Maven pom.xml.</p>

        <pre>&lt;dependency&gt;
  &lt;groupId&gt;org.apache.systemds&lt;/groupId&gt;
  &lt;artifactId&gt;systemds&lt;/artifactId&gt;
  &lt;version&gt;{{ site.data.project.release_version }}&lt;/version&gt;
&lt;/dependency&gt;</pre>

        <h3>Previous Releases</h3>
        <p>Previous releases of Apache SystemML can be obtained from <a href="https://archive.apache.org/dist/systemds/"
            target="_blank">archives</a>. Previous incubator releases can be obtained from <a
            href="https://archive.apache.org/dist/incubator/systemds/" target="_blank">incubator archives</a>. For Spark
          1.6 support, please use Apache SystemML 0.12.</p>
      </div>
    </div>
  </div>
  <div class="ml-container">

    <div class="col col-12 content-group content-group--medium-bottom-margin">
    <h2>Build from Source</h2>
    <p>If you want the latest in development version you can follow the build from source guide.</p>

    <a class="button button-primary" href="{{ site.data.project.docs }}site/install">Install SystemDS</a>
    </div>
  </div>
</section>
