<!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>Releases - 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://gitbox.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>Releases</li></ul>

        <div id="-middle-content">
          <h1 id="releases">Releases</h1>

<p>New Qpid releases are announced on the
<a href="/discussion.html#mailing-lists">Qpid mailing lists</a> and
the
<a href="http://mail-archives.apache.org/mod_mbox/www-announce/">Apache announce list</a>.</p>

<h2 id="current-releases">Current releases</h2>

<div class="two-column">

<ul>
<li><a href="qpid-jms-2.5.0/index.html">Qpid JMS 2.5.0</a>, October 2023</li>
<li><a href="qpid-jms-1.11.0/index.html">Qpid JMS 1.11.0</a>, October 2023</li>
<li><a href="qpid-protonj2-1.0.0-M17/index.html">Qpid ProtonJ2 1.0.0-M17</a>, July 2023</li>
<li><a href="qpid-proton-0.39.0/index.html">Qpid Proton 0.39.0</a>, June 2023</li>
<li><a href="qpid-proton-dotnet-1.0.0-M9/index.html">Qpid proton-dotnet 1.0.0-M9</a>, May 2023</li>
<li><a href="qpid-proton-j-0.34.1/index.html">Qpid Proton-J 0.34.1</a>, March 2023</li>
<li><a href="qpid-broker-j-9.1.0/index.html">Qpid Broker-J 9.1.0</a>, September 2023</li>
<li><a href="qpid-dispatch-1.19.0/index.html">Qpid Dispatch 1.19.0</a>, March 2022</li>
<li><a href="qpid-interop-test-0.3.0/index.html">Qpid Interop-test 0.3.0</a>, November 2021</li>
<li><a href="qpid-jms-amqp-0-x-6.4.0/index.html">Qpid JMS AMQP 0-x 6.4.0</a>, June 2020</li>
<li><a href="qpid-cpp-1.39.0/index.html">Qpid C++ 1.39.0</a>, October 2018</li>
<li><a href="qpid-python-1.37.0/index.html">Qpid Python 1.37.0</a>, November 2017</li>
</ul>

</div>

<h2 id="past-releases">Past releases</h2>

<div class="two-column">

<ul>
<li><a href="qpid-jms-2.4.0/index.html">Qpid JMS 2.4.0</a>, June 2023</li>
<li><a href="qpid-jms-1.10.0/index.html">Qpid JMS 1.10.0</a>, June 2023</li>
<li><a href="qpid-protonj2-1.0.0-M16/index.html">Qpid ProtonJ2 1.0.0-M16</a>, June 2023</li>
<li><a href="qpid-protonj2-1.0.0-M15/index.html">Qpid ProtonJ2 1.0.0-M15</a>, May 2023</li>
<li><a href="qpid-jms-2.3.0/index.html">Qpid JMS 2.3.0</a>, May 2023</li>
<li><a href="qpid-jms-1.9.0/index.html">Qpid JMS 1.9.0</a>, May 2023</li>
<li><a href="qpid-proton-dotnet-1.0.0-M8/index.html">Qpid proton-dotnet 1.0.0-M8</a>, May 2023</li>
<li><a href="qpid-protonj2-1.0.0-M14/index.html">Qpid ProtonJ2 1.0.0-M14</a>, April 2023</li>
<li><a href="qpid-protonj2-1.0.0-M13/index.html">Qpid ProtonJ2 1.0.0-M13</a>, March 2023</li>
<li><a href="qpid-jms-2.2.0/index.html">Qpid JMS 2.2.0</a>, January 2023</li>
<li><a href="qpid-jms-1.8.0/index.html">Qpid JMS 1.8.0</a>, January 2023</li>
<li><a href="qpid-protonj2-1.0.0-M12/index.html">Qpid ProtonJ2 1.0.0-M12</a>, January 2023</li>
<li><a href="qpid-proton-dotnet-1.0.0-M7/index.html">Qpid proton-dotnet 1.0.0-M7</a>, December 2022</li>
<li><a href="qpid-broker-j-9.0.0/index.html">Qpid Broker-J 9.0.0</a>, November 2022</li>
<li><a href="qpid-proton-0.38.0/index.html">Qpid Proton 0.38.0</a>, November 2022</li>
<li><a href="qpid-protonj2-1.0.0-M11/index.html">Qpid ProtonJ2 1.0.0-M11</a>, November 2022</li>
<li><a href="qpid-proton-dotnet-1.0.0-M6/index.html">Qpid proton-dotnet 1.0.0-M6</a>, November 2022</li>
<li><a href="qpid-protonj2-1.0.0-M10/index.html">Qpid ProtonJ2 1.0.0-M10</a>, October 2022</li>
<li><a href="qpid-proton-dotnet-1.0.0-M5/index.html">Qpid proton-dotnet 1.0.0-M5</a>, October 2022</li>
<li><a href="qpid-jms-2.1.0/index.html">Qpid JMS 2.1.0</a>, September 2022</li>
<li><a href="qpid-jms-1.7.0/index.html">Qpid JMS 1.7.0</a>, September 2022</li>
<li><a href="qpid-protonj2-1.0.0-M9/index.html">Qpid ProtonJ2 1.0.0-M9</a>, September 2022</li>
<li><a href="qpid-proton-dotnet-1.0.0-M4/index.html">Qpid proton-dotnet 1.0.0-M4</a>, September 2022</li>
<li><a href="qpid-proton-j-0.34.0/index.html">Qpid Proton-J 0.34.0</a>, September 2022</li>
<li><a href="qpid-protonj2-1.0.0-M8/index.html">Qpid ProtonJ2 1.0.0-M8</a>, August 2022</li>
<li><a href="qpid-proton-dotnet-1.0.0-M3/index.html">Qpid proton-dotnet 1.0.0-M3</a>, August 2022</li>
<li><a href="qpid-proton-dotnet-1.0.0-M2/index.html">Qpid proton-dotnet 1.0.0-M2</a>, July 2022</li>
<li><a href="qpid-protonj2-1.0.0-M7/index.html">Qpid ProtonJ2 1.0.0-M7</a>, June 2022</li>
<li><a href="qpid-proton-dotnet-1.0.0-M1/index.html">Qpid proton-dotnet 1.0.0-M1</a>, June 2022</li>
<li><a href="qpid-protonj2-1.0.0-M6/index.html">Qpid ProtonJ2 1.0.0-M6</a>, May 2022</li>
<li><a href="qpid-jms-2.0.0/index.html">Qpid JMS 2.0.0</a>, April 2022</li>
<li><a href="qpid-protonj2-1.0.0-M5/index.html">Qpid ProtonJ2 1.0.0-M5</a>, April 2022</li>
<li><a href="qpid-proton-0.37.0/index.html">Qpid Proton 0.37.0</a>, March 2022</li>
<li><a href="qpid-jms-1.6.0/index.html">Qpid JMS 1.6.0</a>, March 2022</li>
<li><a href="qpid-protonj2-1.0.0-M4/index.html">Qpid ProtonJ2 1.0.0-M4</a>, December 2021</li>
<li><a href="qpid-jms-0.61.0/index.html">Qpid JMS 0.61.0</a>, December 2021</li>
<li><a href="qpid-jms-1.5.0/index.html">Qpid JMS 1.5.0</a>, December 2021</li>
<li><a href="qpid-jms-1.4.1/index.html">Qpid JMS 1.4.1</a>, December 2021</li>
<li><a href="qpid-jms-0.60.1/index.html">Qpid JMS 0.60.1</a>, December 2021</li>
<li><a href="qpid-dispatch-1.18.0/index.html">Qpid Dispatch 1.18.0</a>, November 2021</li>
<li><a href="qpid-dispatch-1.17.1/index.html">Qpid Dispatch 1.17.1</a>, November 2021</li>
<li><a href="qpid-proton-0.36.0/index.html">Qpid Proton 0.36.0</a>, November 2021</li>
<li><a href="qpid-protonj2-1.0.0-M3/index.html">Qpid ProtonJ2 1.0.0-M3</a>, October 2021</li>
<li><a href="qpid-jms-1.3.0/index.html">Qpid JMS 1.3.0</a>, October 2021</li>
<li><a href="qpid-proton-j-0.33.10/index.html">Qpid Proton-J 0.33.10</a>, October 2021</li>
<li><a href="qpid-jms-1.2.0/index.html">Qpid JMS 1.2.0</a>, September 2021</li>
<li><a href="qpid-proton-j-0.33.9/index.html">Qpid Proton-J 0.33.9</a>, August 2021</li>
<li><a href="qpid-broker-j-8.0.6/index.html">Qpid Broker-J 8.0.6</a>, August 2021</li>
<li><a href="qpid-dispatch-1.17.0/index.html">Qpid Dispatch 1.17.0</a>, August 2021</li>
<li><a href="qpid-proton-0.35.0/index.html">Qpid Proton 0.35.0</a>, July 2021</li>
<li><a href="qpid-jms-1.1.0/index.html">Qpid JMS 1.1.0</a>, July 2021</li>
<li><a href="qpid-dispatch-1.16.1/index.html">Qpid Dispatch 1.16.1</a>, July 2021</li>
<li><a href="qpid-broker-j-8.0.5/index.html">Qpid Broker-J 8.0.5</a>, June 2021</li>
<li><a href="qpid-jms-1.0.0/index.html">Qpid JMS 1.0.0</a>, May 2021</li>
<li><a href="qpid-jms-0.59.0/index.html">Qpid JMS 0.59.0</a>, May 2021</li>
<li><a href="qpid-dispatch-1.16.0/index.html">Qpid Dispatch 1.16.0</a>, May 2021</li>
<li><a href="qpid-protonj2-1.0.0-M2/index.html">Qpid ProtonJ2 1.0.0-M2</a>, May 2021</li>
<li><a href="qpid-protonj2-1.0.0-M1/index.html">Qpid ProtonJ2 1.0.0-M1</a>, May 2021</li>
<li><a href="qpid-proton-0.34.0/index.html">Qpid Proton 0.34.0</a>, April 2021</li>
<li><a href="qpid-jms-0.58.0/index.html">Qpid JMS 0.58.0</a>, April 2021</li>
<li><a href="qpid-jms-0.57.0/index.html">Qpid JMS 0.57.0</a>, March 2021</li>
<li><a href="qpid-dispatch-1.15.0/index.html">Qpid Dispatch 1.15.0</a>, February 2021</li>
<li><a href="qpid-broker-j-8.0.4/index.html">Qpid Broker-J 8.0.4</a>, February 2021</li>
<li><a href="qpid-broker-j-7.1.12/index.html">Qpid Broker-J 7.1.12</a>, February 2021</li>
<li><a href="qpid-broker-j-8.0.3/index.html">Qpid Broker-J 8.0.3</a>, January 2021</li>
<li><a href="qpid-broker-j-7.1.11/index.html">Qpid Broker-J 7.1.11</a>, January 2021</li>
<li><a href="qpid-jms-0.56.0/index.html">Qpid JMS 0.56.0</a>, December 2020</li>
<li><a href="qpid-jms-0.55.0/index.html">Qpid JMS 0.55.0</a>, November 2020</li>
<li><a href="qpid-proton-j-0.33.8/index.html">Qpid Proton-J 0.33.8</a>, November 2020</li>
<li><a href="qpid-proton-0.33.0/index.html">Qpid Proton 0.33.0</a>, November 2020</li>
<li><a href="qpid-broker-j-8.0.2/index.html">Qpid Broker-J 8.0.2</a>, October 2020</li>
<li><a href="qpid-broker-j-7.1.10/index.html">Qpid Broker-J 7.1.10</a>, October 2020</li>
<li><a href="qpid-proton-j-0.33.7/index.html">Qpid Proton-J 0.33.7</a>, October 2020</li>
<li><a href="qpid-broker-j-8.0.1/index.html">Qpid Broker-J 8.0.1</a>, September 2020</li>
<li><a href="qpid-broker-j-7.1.9/index.html">Qpid Broker-J 7.1.9</a>, September 2020</li>
<li><a href="qpid-dispatch-1.14.0/index.html">Qpid Dispatch 1.14.0</a>, September 2020</li>
<li><a href="qpid-jms-0.54.0/index.html">Qpid JMS 0.54.0</a>, August 2020</li>
<li><a href="qpid-proton-0.32.0/index.html">Qpid Proton 0.32.0</a>, August 2020</li>
<li><a href="qpid-dispatch-1.13.0/index.html">Qpid Dispatch 1.13.0</a>, August 2020</li>
</ul>

</div>

<p>Still older releases are available in the
<a href="http://archive.apache.org/dist/qpid/">Apache archives</a>.</p>

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

<ul>
<li><a href="https://cwiki.apache.org/confluence/display/qpid/Releases">Releases on the wiki</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>
