<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Avatica Downloads</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="generator" content="Jekyll v3.7.3">
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
  <link rel="stylesheet" href="/avatica/css/screen.css">
  <link rel="icon" type="image/x-icon" href="/avatica/favicon.ico">
  <!--[if lt IE 9]>
  <script src="/js/html5shiv.min.js"></script>
  <script src="/js/respond.min.js"></script>
  <![endif]-->
</head>


<body class="wrap">
  <header role="banner">
  <nav class="mobile-nav show-on-mobiles">
    <ul>
  <li class="">
    <a href="/avatica/">Home</a>
  </li>
  <li class="current">
    <a href="/avatica/downloads/">Download</a>
  </li>
  <li class="">
    <a href="/avatica/community/">Community</a>
  </li>
  <li class="">
    <a href="/avatica/develop/">Develop</a>
  </li>
  <li class="">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="">
    <a href="/avatica/docs/">Docs</a>
  </li>
</ul>

  </nav>
  <div class="grid">
    <div class="unit one-third center-on-mobiles">
      <h1>
        <a href="/avatica/">
          <span class="sr-only">Apache Calcite Avatica</span>
          <img src="/avatica/img/logo.png" width="226" height="140" alt="Calcite Logo">
        </a>
      </h1>
    </div>
    <nav class="main-nav unit two-thirds hide-on-mobiles">
      <ul>
  <li class="">
    <a href="/avatica/">Home</a>
  </li>
  <li class="current">
    <a href="/avatica/downloads/">Download</a>
  </li>
  <li class="">
    <a href="/avatica/community/">Community</a>
  </li>
  <li class="">
    <a href="/avatica/develop/">Develop</a>
  </li>
  <li class="">
    <a href="/avatica/news/">News</a>
  </li>
  <li class="">
    <a href="/avatica/docs/">Docs</a>
  </li>
</ul>

    </nav>
  </div>
</header>


  <section class="standalone">
  <div class="grid">

    <div class="unit whole">
      <article>
        <h1>Avatica Downloads</h1>
        <!--

-->

<p>Avatica is released as a source artifact, and also through Maven and Docker Hub.</p>

<h2 id="source-releases">Source releases</h2>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Release</th>
      <th style="text-align: left">Date</th>
      <th style="text-align: left">Commit</th>
      <th style="text-align: left">Download</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-15-0">1.15.0</a></td>
      <td style="text-align: left">13 May 2019</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/95e1545">95e1545</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.15.0/apache-calcite-avatica-1.15.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.15.0/apache-calcite-avatica-1.15.0-src.tar.gz.sha512">sha512</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.15.0/apache-calcite-avatica-1.15.0-src.tar.gz.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-14-0">1.14.0</a></td>
      <td style="text-align: left">29 Apr 2019</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/4fe0f9b">4fe0f9b</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.14.0/apache-calcite-avatica-1.14.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.14.0/apache-calcite-avatica-1.14.0-src.tar.gz.sha512">sha512</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.14.0/apache-calcite-avatica-1.14.0-src.tar.gz.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-13-0">1.13.0</a></td>
      <td style="text-align: left">04 Dec 2018</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/861d05a">861d05a</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.13.0/apache-calcite-avatica-1.13.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.13.0/apache-calcite-avatica-1.13.0-src.tar.gz.sha512">sha512</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.13.0/apache-calcite-avatica-1.13.0-src.tar.gz.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-12-0">1.12.0</a></td>
      <td style="text-align: left">24 Jun 2018</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/019a4ec">019a4ec</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.12.0/apache-calcite-avatica-1.12.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.12.0/apache-calcite-avatica-1.12.0-src.tar.gz.sha256">sha256</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.12.0/apache-calcite-avatica-1.12.0-src.tar.gz.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-11-0">1.11.0</a></td>
      <td style="text-align: left">09 Mar 2018</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/e533391">e533391</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.11.0/apache-calcite-avatica-1.11.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.11.0/apache-calcite-avatica-1.11.0-src.tar.gz.sha256">sha256</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.11.0/apache-calcite-avatica-1.11.0-src.tar.gz.asc">pgp</a>) <br /> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.11.0/apache-calcite-avatica-1.11.0-src.zip">zip</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.11.0/apache-calcite-avatica-1.11.0-src.zip.sha256">sha256</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.11.0/apache-calcite-avatica-1.11.0-src.zip.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-10-0">1.10.0</a></td>
      <td style="text-align: left">30 May 2017</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/fcec4be">fcec4be</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.10.0/apache-calcite-avatica-1.10.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.10.0/apache-calcite-avatica-1.10.0-src.tar.gz.mds">mds</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.10.0/apache-calcite-avatica-1.10.0-src.tar.gz.asc">pgp</a>) <br /> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.10.0/apache-calcite-avatica-1.10.0-src.zip">zip</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.10.0/apache-calcite-avatica-1.10.0-src.zip.mds">mds</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.10.0/apache-calcite-avatica-1.10.0-src.zip.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-9-0">1.9.0</a></td>
      <td style="text-align: left">01 Nov 2016</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/e32d778">e32d778</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.9.0/apache-calcite-avatica-1.9.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.9.0/apache-calcite-avatica-1.9.0-src.tar.gz.md5">md5</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.9.0/apache-calcite-avatica-1.9.0-src.tar.gz.asc">pgp</a>) <br /> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.9.0/apache-calcite-avatica-1.9.0-src.zip">zip</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.9.0/apache-calcite-avatica-1.9.0-src.zip.md5">md5</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.9.0/apache-calcite-avatica-1.9.0-src.zip.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-8-0">1.8.0</a></td>
      <td style="text-align: left">04 Jun 2016</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/ddfaf07">ddfaf07</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.8.0/apache-calcite-avatica-1.8.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.8.0/apache-calcite-avatica-1.8.0-src.tar.gz.md5">md5</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.8.0/apache-calcite-avatica-1.8.0-src.tar.gz.asc">pgp</a>) <br /> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.8.0/apache-calcite-avatica-1.8.0-src.zip">zip</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.8.0/apache-calcite-avatica-1.8.0-src.zip.md5">md5</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.8.0/apache-calcite-avatica-1.8.0-src.zip.asc">pgp</a>)</td>
    </tr>
    <tr>
      <td style="text-align: left"><a href="/avatica/docs/history.html#v1-7-1">1.7.1</a></td>
      <td style="text-align: left">18 Mar 2016</td>
      <td style="text-align: left"><a href="https://github.com/apache/calcite-avatica/commit/11cb0a8">11cb0a8</a></td>
      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.7.1/apache-calcite-avatica-1.7.1-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.7.1/apache-calcite-avatica-1.7.1-src.tar.gz.md5">md5</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.7.1/apache-calcite-avatica-1.7.1-src.tar.gz.asc">pgp</a>) <br /> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.7.1/apache-calcite-avatica-1.7.1-src.zip">zip</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.7.1/apache-calcite-avatica-1.7.1-src.zip.md5">md5</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-avatica-1.7.1/apache-calcite-avatica-1.7.1-src.zip.asc">pgp</a>)</td>
    </tr>
  </tbody>
</table>

<p>Choose a source distribution in either <em>tar</em> or <em>zip</em> format.</p>

<p>For fast downloads, current source distributions are hosted on mirror servers;
older source distributions are in the
<a href="https://archive.apache.org/dist/calcite/">archive</a>.
If a download from a mirror fails, retry, and the second download will likely
succeed.</p>

<p>For security, hash and signature files are always hosted at
<a href="https://www.apache.org/dist">Apache</a>.</p>

<h2 id="verify-the-integrity-of-the-files">Verify the integrity of the files</h2>

<p>You must verify the integrity of the downloaded file using the PGP signature (.asc file) or a hash (.sha256, .md5 for older
releases). For more information why this must be done, please read <a href="https://www.apache.org/info/verification.html">Verifying Apache Software Foundation Releases</a>.</p>

<p>To verify the signature using GPG or PGP, please do the following:</p>

<ol>
  <li>Download the release artifact and the corresponding PGP signature from the table above.</li>
  <li>Download the <a href="https://www.apache.org/dist/calcite/KEYS">Apache Calcite KEYS</a> file.</li>
  <li>Import the KEYS file and verify the downloaded artifact using one of the following methods:</li>
</ol>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">% gpg <span class="nt">--import</span> KEYS
% gpg <span class="nt">--verify</span> downloaded_file.asc downloaded_file</code></pre></figure>

<p>or</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">% pgpk <span class="nt">-a</span> KEYS
% pgpv downloaded_file.asc</code></pre></figure>

<p>or</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">% pgp <span class="nt">-ka</span> KEYS
% pgp downloaded_file.asc</code></pre></figure>

<h2 id="maven-artifacts">Maven artifacts</h2>

<p>Add the following to the dependencies section of your <code class="highlighter-rouge">pom.xml</code> file:</p>

<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependencies&gt;</span>
  <span class="nt">&lt;dependency&gt;</span>
    <span class="nt">&lt;groupId&gt;</span>org.apache.calcite.avatica<span class="nt">&lt;/groupId&gt;</span>
    <span class="nt">&lt;artifactId&gt;</span>avatica<span class="nt">&lt;/artifactId&gt;</span>
    <span class="nt">&lt;version&gt;</span>4.0.0<span class="nt">&lt;/version&gt;</span>
  <span class="nt">&lt;/dependency&gt;</span>
  <span class="nt">&lt;dependency&gt;</span>
    <span class="nt">&lt;groupId&gt;</span>org.apache.calcite.avatica<span class="nt">&lt;/groupId&gt;</span>
    <span class="nt">&lt;artifactId&gt;</span>avatica-server<span class="nt">&lt;/artifactId&gt;</span>
    <span class="nt">&lt;version&gt;</span>4.0.0<span class="nt">&lt;/version&gt;</span>
  <span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;/dependencies&gt;</span></code></pre></figure>

<p>As of Apache Calcite Avatica 1.9.0, the following un-shaded client artifact is also available:</p>

<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependencies&gt;</span>
  <span class="nt">&lt;dependency&gt;</span>
    <span class="nt">&lt;groupId&gt;</span>org.apache.calcite.avatica<span class="nt">&lt;/groupId&gt;</span>
    <span class="nt">&lt;artifactId&gt;</span>avatica-core<span class="nt">&lt;/artifactId&gt;</span>
    <span class="nt">&lt;version&gt;</span>4.0.0<span class="nt">&lt;/version&gt;</span>
  <span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;/dependencies&gt;</span></code></pre></figure>

<h2 id="docker-images">Docker images</h2>

<p>From release 1.10.0 onwards, Docker images for Avatica Server are available at
<a href="https://hub.docker.com/r/apache/calcite-avatica">Docker Hub</a>.</p>

      </article>
    </div>

    <div class="clear"></div>

  </div>
</section>


  <footer role="contentinfo">
  <div id="poweredby">
    <a href="http://www.apache.org/">
      <span class="sr-only">Apache</span>
      <img src="/avatica/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
  </div>
  <div id="copyright">
  <p>The contents of this website are &copy;&nbsp;2019
     <a href="https://www.apache.org/">Apache Software Foundation</a>
     under the terms of
     the <a href="https://www.apache.org/licenses/LICENSE-2.0.html">
     Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
     trademarks of the Apache Software Foundation.</p>
  </div>
</footer>

  <script>
  var anchorForId = function (id) {
    var anchor = document.createElement("a");
    anchor.className = "header-link";
    anchor.href      = "#" + id;
    anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
    anchor.title = "Permalink";
    return anchor;
  };

  var linkifyAnchors = function (level, containingElement) {
    var headers = containingElement.getElementsByTagName("h" + level);
    for (var h = 0; h < headers.length; h++) {
      var header = headers[h];

      if (typeof header.id !== "undefined" && header.id !== "") {
        header.appendChild(anchorForId(header.id));
      }
    }
  };

  document.onreadystatechange = function () {
    if (this.readyState === "complete") {
      var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
      if (!contentBlock) {
        return;
      }
      for (var level = 1; level <= 6; level++) {
        linkifyAnchors(level, contentBlock);
      }
    }
  };
</script>


</body>
</html>
