<!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>Documentation - 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>Documentation</li></ul>

        <div id="-middle-content">
          <h1 id="documentation">Documentation</h1>

<p>The documentation on this page is for our
<a href="/releases/index.html#current-releases">current releases</a>,
You can find older versions with our
<a href="/releases/index.html#past-releases">past releases</a>.</p>

<hr />

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

<div class="flex">

<section>

<h3 id="qpid-proton">Qpid Proton</h3>

<ul>
<li><a href="/proton/index.html">Overview</a></li>
<li><a href="/releases/qpid-proton-0.26.0/proton/c/api/files.html">C API reference</a></li>
<li><a href="/releases/qpid-proton-0.26.0/proton/cpp/api/annotated.html">C++ API reference</a></li>
<li><a href="/releases/qpid-proton-0.26.0/proton/python/api/index.html">Python API reference</a></li>
<li><a href="/releases/qpid-proton-j-0.30.0/api/index.html">Java API reference</a></li>
</ul>

</section>

<section>

<h3 id="qpid-jms">Qpid JMS</h3>

<ul>
<li><a href="/components/jms/index.html">Overview</a></li>
<li><a href="/releases/qpid-jms-0.38.0/docs/index.html">Configuration</a></li>
<li><a href="http://docs.oracle.com/javaee/7/api/javax/jms/package-summary.html">API reference</a></li>
<li><a href="https://github.com/apache/qpid-jms/tree/0.38.0/qpid-jms-examples">Examples</a></li>
</ul>

</section>

<section>

<h3 id="qpid-messaging-api">Qpid Messaging API</h3>

<ul>
<li><a href="/components/messaging-api/index.html">Overview</a></li>
<li><a href="/releases/qpid-cpp-1.39.0/messaging-api/book/using-the-qpid-messaging-api.html">Using the Qpid Messaging API</a> (<a href="/releases/qpid-cpp-1.39.0/messaging-api/qpid-messaging-api-book.pdf">PDF</a>)</li>
<li><a href="/releases/qpid-cpp-1.39.0/messaging-api/cpp/api/index.html">C++ API reference</a></li>
<li><a href="/releases/qpid-cpp-1.39.0/messaging-api/cpp/examples/index.html">C++ examples</a></li>
</ul>

</section>

</div>

<hr />

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

<div class="flex">

<section>

<h3 id="broker-j">Broker-J</h3>

<ul>
<li><a href="/components/broker-j/index.html">Overview</a></li>
<li><a href="/releases/qpid-broker-j-7.0.6/book/index.html">Broker book</a></li>
</ul>

</section>

<section>

<h3 id="c-broker">C++ broker</h3>

<ul>
<li><a href="/components/cpp-broker/index.html">Overview</a></li>
<li><a href="/releases/qpid-cpp-1.39.0/cpp-broker/book/index.html">C++ broker book</a> (<a href="/releases/qpid-cpp-1.39.0/cpp-broker/cpp-broker-book.pdf">PDF</a>)</li>
</ul>

</section>

<section>

<h3 id="dispatch-router">Dispatch router</h3>

<ul>
<li><a href="/components/dispatch-router/index.html">Overview</a></li>
<li><a href="/releases/qpid-dispatch-1.4.1/user-guide/index.html">Dispatch router book</a></li>
</ul>

</section>

</div>

<hr />

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

<div class="flex">

<section>

<h3 id="qpid-interop-test">Qpid Interop Test</h3>

<ul>
<li><a href="/components/interop-test/index.html">Overview</a></li>
<li><a href="/releases/qpid-interop-test-0.2.0/QUICKSTART.html">Quickstart guide</a></li>
<li><a href="/releases/qpid-interop-test-0.2.0/users-guide.html">User guide</a></li>
<li><a href="https://git-wip-us.apache.org/repos/asf?p=qpid-interop-test.git;a=blob_plain;f=docs/qpid-interop-test-devel-overview.txt;hb=0.1.0">Developer overview</a></li>
</ul>

</section>

</div>

<hr />

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

<ul>
<li><a href="/releases/snapshots.html">Documentation snapshots</a></li>
<li><a href="/releases/index.html">Past and current releases</a></li>
<li><a href="/components/index.html">Components</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>
