<!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-protonj2-1.0.0-M19/index.html">Qpid ProtonJ2 1.0.0-M19</a>, January 2024 </li>
<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-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.2.0/index.html">Qpid Broker-J 9.2.0</a>, February 2024</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-protonj2-1.0.0-M18/index.html">Qpid ProtonJ2 1.0.0-M18</a>, November 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-protonj2-1.0.0-M17/index.html">Qpid ProtonJ2 1.0.0-M17</a>, July 2023</li>
<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>
