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

        <div id="-middle-content">
          <h1 id="more-resources">More Resources</h1>

<div class="two-column">

<section>

<h2 id="blogs">Blogs</h2>

<p><a href="/discussion.html">Contact us</a> if you write about Qpid and
would like your blog linked here.</p>

<ul>
<li><a href="https://dzone.com/refcardz/amqp-essentials">AMQP Essentials refcard</a> by Paolo Patierno</li>
<li><a href="https://chugrolke.wordpress.com/">AMQP Illustrated</a> by Chuck Rolke</li>
<li><a href="https://github.com/xinchen10/awesome-amqp">Awesome AMQP links</a> by Xin Chen</li>
<li><a href="https://netprototalk.wordpress.com/">NETPROTOTALK</a> by Ted Ross</li>
<li><a href="https://paolopatierno.wordpress.com/?s=amqp">Paolo Patierno's AMQP blog posts</a></li>
<li><a href="http://stevehuston.wordpress.com/">Steve Huston's Networked Programming Blog</a></li>
<li><a href="http://mcpierce.blogspot.com/search/label/messaging">The Infobahn Offramp</a> by Darryl Pierce</li>
</ul>

</section>

<section>

<h2 id="code-review">Code review</h2>

<p>Qpid contributors often use
<a href="http://www.reviewboard.org/">Review Board</a> to discuss patches.</p>

<ul>
<li><a href="https://reviews.apache.org/groups/qpid/">Review requests for Qpid</a></li>
<li><a href="https://reviews.apache.org/dashboard/">User dashboard</a></li>
<li><a href="http://www.reviewboard.org/docs/">Review Board documentation</a></li>
</ul>

</section>

<section>

<h2 id="continuous-integration">Continuous integration</h2>

<p>Qpid uses <a href="http://jenkins-ci.org/">Jenkins</a> to perform
<a href="http://en.wikipedia.org/wiki/Continuous_integration">continuous integration</a>
of the latest changes.</p>

<ul>
<li><a href="https://builds.apache.org//view/M-R/view/Qpid/">Qpid test builds in Jenkins</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/qpid/continuous+integration">Overview of Qpid CI</a></li>
<li><a href="http://wiki.apache.org/general/Jenkins">Apache Jenkins overview</a></li>
<li><a href="https://ci.apache.org/">Apache build services</a></li>
</ul>

<h2 id="coverity-scans">Coverity scans</h2>

<p>Coverity finds defects using static code analysis.  To view these you
must <a href="https://scan.coverity.com/users/sign_up">sign up with Coverity</a>.</p>

<ul>
<li><a href="https://scan.coverity.com/projects/6">Qpid C++ scans</a></li>
<li><a href="https://scan.coverity.com/projects/572">Qpid Broker-J scans</a></li>
</ul>

</section>

<section>

<h2 id="related-projects">Related projects</h2>

<ul>
<li><a href="https://github.com/Azure/amqpnetlite">AMQP.Net Lite</a></li>
<li><a href="http://activemq.apache.org/amqp.html">ActiveMQ and AMQP</a></li>
<li><a href="https://activemq.apache.org/artemis/">ActiveMQ Artemis</a></li>
<li><a href="http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#amqptrans">Apache Axis and AMQP</a></li>
<li><a href="http://camel.apache.org/amqp.html">Apache Camel and AMQP</a></li>
<li><a href="https://github.com/radanalyticsio/streaming-amqp">Apache Spark Streaming connector for AMQP</a></li>
<li><a href="https://github.com/rhiot/amqp-kafka-bridge">Kafka AMQP bridge</a></li>
<li><a href="https://github.com/vert-x3/vertx-amqp-bridge">Vert.x AMQP bridge</a></li>
<li><a href="https://github.com/vert-x3/vertx-proton">Vert.x Proton</a></li>
</ul>

</section>

<section>

<h2 id="wiki">Wiki</h2>

<ul>
<li><a href="https://cwiki.apache.org/confluence/display/qpid/">Wiki home</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/qpid/developer+pages">Developer pages</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/qpid/Releases">Qpid releases</a></li>
</ul>

</section>

<section>

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

<ul>
<li><a href="/site.html">About this site</a></li>
<li><a href="/issues.html">Issues</a></li>
<li><a href="/packages.html">Packages</a></li>
<li><a href="/maven.html">Qpid via Maven</a></li>
<li><a href="/source-code.html">Source code</a></li>
</ul>

</section>

</div>


          <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>
