<!DOCTYPE html>
<!--
 -
 - 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.
 -
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>Download - Apache Qpid&#8482;</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
    <script type="text/javascript">var _deferredFunctions = [];</script>
    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
    <!--[if lte IE 8]>
      <link rel="stylesheet" href="/ie.css" type="text/css"/>
      <script type="text/javascript" src="/html5shiv.js"></script>
    <![endif]-->

    <!-- Redirects for `go get` and godoc.org -->
    <meta name="go-import"
          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
    <meta name="go-source"
          content="qpid.apache.org
https://github.com/apache/qpid-proton/blob/go1/README.md
https://github.com/apache/qpid-proton/tree/go1{/dir}
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
  </head>
  <body>
    <div id="-content">
      <div id="-top" class="panel">
        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>

        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>

        <ul id="-global-navigation">
          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
          <li><a href="/documentation.html">Documentation</a></li>
          <li><a href="/download.html">Download</a></li>
          <li><a href="/discussion.html">Discussion</a></li>
        </ul>
      </div>

      <div id="-menu" class="panel" style="display: none;">
        <div class="flex">
          <section>
            <h3>Project</h3>

            <ul>
              <li><a href="/overview.html">Overview</a></li>
              <li><a href="/components/index.html">Components</a></li>
              <li><a href="/releases/index.html">Releases</a></li>
            </ul>
          </section>

          <section>
            <h3>Messaging APIs</h3>

            <ul>
              <li><a href="/proton/index.html">Qpid Proton</a></li>
              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
            </ul>
          </section>

          <section>
            <h3>Servers and tools</h3>

            <ul>
              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
            </ul>
          </section>

          <section>
            <h3>Resources</h3>

            <ul>
              <li><a href="/dashboard.html">Dashboard</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
              <li><a href="/resources.html">More resources</a></li>
            </ul>
          </section>
        </div>
      </div>

      <div id="-search" class="panel" style="display: none;">
        <form action="http://www.google.com/search" method="get">
          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
          <button type="submit">Search</button>
          <a href="/search.html">More ways to search</a>
        </form>
      </div>

      <div id="-middle" class="panel">
        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li>Download</li></ul>

        <div id="-middle-content">
          <h1 id="download">Download</h1>

<p><em>In addition to the source artefacts below, we offer
<a href="packages.html">Qpid packages</a> and <a href="maven.html">Qpid via Maven</a>.</em></p>

<p>Qpid's source artefacts are produced as part of our community release
process. The downloads on this page are from our
<a href="/releases/index.html#current-releases">current releases</a>.</p>

<p>It is important to <a href="#verify-what-you-download">verify the integrity</a> of the files you download.</p>

<h2 id="messaging-apis">Messaging APIs</h2>

<table>
<thead>
<tr>
  <th>Content</th>
  <th>Download</th>
  <th>Verify</th>
</tr>
</thead>
<tbody>
<tr>
  <td><a href="/proton/index.html">Qpid Proton</a></td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/proton/0.22.0/qpid-proton-0.22.0.tar.gz">qpid-proton-0.22.0.tar.gz</a></td>
  <td><a href="https://www.apache.org/dist/qpid/proton/0.22.0/qpid-proton-0.22.0.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/proton/0.22.0/qpid-proton-0.22.0.tar.gz.sha512">SHA512</a></td>
</tr>
<tr>
  <td><a href="/proton/index.html">Qpid Proton-J</a></td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/proton-j/0.27.1/apache-qpid-proton-j-0.27.1-bin.tar.gz">apache-qpid-proton-j-0.27.1-bin.tar.gz</a>*</td>
  <td><a href="https://www.apache.org/dist/qpid/proton-j/0.27.1/apache-qpid-proton-j-0.27.1-bin.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/proton-j/0.27.1/apache-qpid-proton-j-0.27.1-bin.tar.gz.sha512">SHA512</a></td>
</tr>
<tr>
  <td><a href="/components/jms/index.html">Qpid JMS</a> (AMQP 1.0)</td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/jms/0.31.0/apache-qpid-jms-0.31.0-bin.tar.gz">apache-qpid-jms-0.31.0-bin.tar.gz</a>*</td>
  <td><a href="https://www.apache.org/dist/qpid/jms/0.31.0/apache-qpid-jms-0.31.0-bin.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/jms/0.31.0/apache-qpid-jms-0.31.0-bin.tar.gz.sha512">SHA512</a></td>
</tr>
<tr>
  <td><a href="/components/jms/amqp-0-x.html">Qpid JMS AMQP 0-x</a></td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/jms-amqp-0-x/6.3.0/binaries/apache-qpid-jms-amqp-0-x-6.3.0-bin.tar.gz">apache-qpid-jms-amqp-0-x-6.3.0-bin.tar.gz</a>*</td>
  <td><a href="https://www.apache.org/dist/qpid/jms-amqp-0-x/6.3.0/binaries/apache-qpid-jms-amqp-0-x-6.3.0-bin.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/jms-amqp-0-x/6.3.0/binaries/apache-qpid-jms-amqp-0-x-6.3.0-bin.tar.gz.sha512">SHA512</a></td>
</tr>
<tr>
  <td><a href="/components/messaging-api/index.html">Qpid Messaging API</a> (C++, bindings)</td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/cpp/1.38.0/qpid-cpp-1.38.0.tar.gz">qpid-cpp-1.38.0.tar.gz</a></td>
  <td><a href="https://www.apache.org/dist/qpid/cpp/1.38.0/qpid-cpp-1.38.0.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/cpp/1.38.0/qpid-cpp-1.38.0.tar.gz.sha512">SHA512</a></td>
</tr>
<tr>
  <td><a href="/components/messaging-api/index.html">Qpid Messaging API</a> (Python)</td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/python/1.37.0/qpid-python-1.37.0.tar.gz">qpid-python-1.37.0.tar.gz</a></td>
  <td><a href="https://www.apache.org/dist/qpid/python/1.37.0/qpid-python-1.37.0.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/python/1.37.0/qpid-python-1.37.0.tar.gz.sha512">SHA512</a></td>
</tr>
</tbody>
</table>

<h2 id="messaging-servers">Messaging servers</h2>

<table>
<thead>
<tr>
  <th>Content</th>
  <th>Download</th>
  <th>Verify</th>
</tr>
</thead>
<tbody>
<tr>
  <td><a href="/components/broker-j/index.html">Broker-J</a></td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/broker-j/7.0.3/binaries/apache-qpid-broker-j-7.0.3-bin.tar.gz">apache-qpid-broker-j-7.0.3-bin.tar.gz</a>*</td>
  <td><a href="https://www.apache.org/dist/qpid/broker-j/7.0.3/binaries/apache-qpid-broker-j-7.0.3-bin.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/broker-j/7.0.3/binaries/apache-qpid-broker-j-7.0.3-bin.tar.gz.sha512">SHA512</a></td>
</tr>
<tr>
  <td><a href="/components/cpp-broker/index.html">C++ broker</a></td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/cpp/1.38.0/qpid-cpp-1.38.0.tar.gz">qpid-cpp-1.38.0.tar.gz</a></td>
  <td><a href="https://www.apache.org/dist/qpid/cpp/1.38.0/qpid-cpp-1.38.0.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/cpp/1.38.0/qpid-cpp-1.38.0.tar.gz.sha512">SHA512</a></td>
</tr>
<tr>
  <td><a href="/components/dispatch-router/index.html">Dispatch router</a></td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/dispatch/1.0.1/qpid-dispatch-1.0.1.tar.gz">qpid-dispatch-1.0.1.tar.gz</a></td>
  <td><a href="https://www.apache.org/dist/qpid/dispatch/1.0.1/qpid-dispatch-1.0.1.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/dispatch/1.0.1/qpid-dispatch-1.0.1.tar.gz.sha512">SHA512</a></td>
</tr>
</tbody>
</table>

<p>*These Java artefacts are presented as compiled bytecode.  We also
offer the source releases of
<a href="http://www.apache.org/dyn/closer.lua/qpid/proton-j/0.27.1/apache-qpid-proton-j-0.27.1-src.tar.gz">Qpid Proton-J</a>
[<a href="https://www.apache.org/dist/qpid/proton-j/0.27.1/apache-qpid-proton-j-0.27.1-src.tar.gz.asc">ASC</a>,
<a href="https://www.apache.org/dist/qpid/proton-j/0.27.1/apache-qpid-proton-j-0.27.1-src.tar.gz.sha512">SHA512</a>]
and
<a href="http://www.apache.org/dyn/closer.lua/qpid/jms/0.31.0/apache-qpid-jms-0.31.0-src.tar.gz">Qpid JMS</a>
[<a href="https://www.apache.org/dist/qpid/jms/0.31.0/apache-qpid-jms-0.31.0-src.tar.gz.asc">ASC</a>,
<a href="https://www.apache.org/dist/qpid/jms/0.31.0/apache-qpid-jms-0.31.0-src.tar.gz.sha512">SHA512</a>]
and
<a href="http://www.apache.org/dyn/closer.lua/qpid/jms-amqp-0-x/6.3.0/apache-qpid-jms-amqp-0-x-6.3.0-src.tar.gz">Qpid JMS AMQP 0-x</a>
[<a href="https://www.apache.org/dist/qpid/jms-amqp-0-x/6.3.0/apache-qpid-jms-amqp-0-x-6.3.0-src.tar.gz.asc">ASC</a>,
<a href="https://www.apache.org/dist/qpid/jms-amqp-0-x/6.3.0/apache-qpid-jms-amqp-0-x-6.3.0-src.tar.gz.sha512">SHA512</a>]
and
<a href="http://www.apache.org/dyn/closer.lua/qpid/broker-j/7.0.3/apache-qpid-broker-j-7.0.3-src.tar.gz">Qpid Broker-J</a>
[<a href="https://www.apache.org/dist/qpid/broker-j/7.0.3/apache-qpid-broker-j-7.0.3-src.tar.gz.asc">ASC</a>,
<a href="https://www.apache.org/dist/qpid/broker-j/7.0.3/apache-qpid-broker-j-7.0.3-src.tar.gz.sha512">SHA512</a>]</p>

<h2 id="messaging-tools">Messaging tools</h2>

<table>
<thead>
<tr>
  <th>Content</th>
  <th>Download</th>
  <th>Verify</th>
</tr>
</thead>
<tbody>
<tr>
  <td><a href="/components/interop-test/index.html">Qpid Interop Test</a></td>
  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/interop-test/0.1.0/qpid-interop-test-0.1.0.tar.gz">qpid-interop-test-0.1.0.tar.gz</a></td>
  <td><a href="https://www.apache.org/dist/qpid/interop-test/0.1.0/qpid-interop-test-0.1.0.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/interop-test/0.1.0/qpid-interop-test-0.1.0.tar.gz.sha512">SHA512</a></td>
</tr>
</tbody>
</table>

<h2 id="verify-what-you-download">Verify what you download</h2>

<p>It is essential that you verify the integrity of the downloaded files
using the ASC signatures or SHA checksums.</p>

<p>The signatures can be verified using PGP or GPG. First download
the <a href="https://www.apache.org/dist/qpid/KEYS"><code>KEYS</code></a> file as well as the
<code>.asc</code> signature file for the relevant artefact. Then verify the signatures
using one of the following sets of commands.</p>

<pre><code>% gpg --import KEYS
% gpg --verify &lt;artifact-name&gt;.asc &lt;artifact-name&gt;

% pgpk -a KEYS
% pgpv &lt;artifact-name&gt;.asc

% pgp -ka KEYS
% pgp &lt;artifact-name&gt;.asc
</code></pre>

<p>Alternatively, you can verify the SHA checksums of the
files. Unix programs called <code>sha1sum</code> and <code>sha512sum</code> (or <code>sha1</code> and
<code>sha512</code>) are included in many unix distributions.  They are also
available as part of
<a href="http://www.gnu.org/software/coreutils/">GNU Coreutils</a>. For
Windows users, <a href="http://www.slavasoft.com/fsum/">FSUM</a> supports this.
Ensure your generated checksum string matches the string
published in the checksum file included with each release artefact.</p>

<h2 id="more-information">More information</h2>

<ul>
<li><a href="/components/index.html">Components</a></li>
<li><a href="/releases/index.html">Releases</a></li>
<li><a href="packages.html">Packages</a></li>
<li><a href="maven.html">Qpid via Maven</a></li>
</ul>


          <hr/>

          <ul id="-apache-navigation">
            <li><a href="http://www.apache.org/">Apache</a></li>
            <li><a href="http://www.apache.org/licenses/">License</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
            <li><a href="/security.html">Security</a></li>
            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
          </ul>

          <p id="-legal">
            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
            The Apache Software Foundation; Licensed under
            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
            Proton, Apache, the Apache feather logo, and the Apache Qpid
            project logo are trademarks of The Apache Software
            Foundation; All other marks mentioned may be trademarks or
            registered trademarks of their respective owners
          </p>
        </div>
      </div>
    </div>
  </body>
</html>
