<!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://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>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>
