Skip to content

Latest commit

 

History

History
170 lines (144 loc) · 4.68 KB

README.md

File metadata and controls

170 lines (144 loc) · 4.68 KB

Build Status Coverage Status

QAMQP

A Qt4/Qt5 implementation of AMQP 0.9.1, focusing primarily on RabbitMQ support.

Building with CMake

  • ensure you have the following packages on the PATH

    • CMake >= 3.12
    • Qt >= 5.9
    • lcov
  • checkout sources

$ cd ~/src
$ git clone git@github.com:ssproessig/qamqp.git
  • we are going to build in a separate out-of-tree build directory

    • building Debug build with default compiler
    $ mkdir -p ~/build/qamqp-debug && cd ~/build/qamqp-debug
    $ cmake ~/src/qamqp
    $ cmake --build .
    • building Release build with clang compiler and ninja generator
    $ mkdir -p ~/build/qamqp-clang-release && cd ~/build/qamqp-clang-release
    $
    $ EXPORT CXX=clang++-10
    $
    $ cmake -G Ninja ~/src/qamqp
    $ cmake --build .
  • running tests with coverage from inside the build directory

$                               # ... after building, in the build directory
$ ctest -V                      # -V for verbose output of QTest
$ sh generate_coverage.sh
$ ...
$ firefox coverage/index.html
  • building a release with Visual Studio 2019 Win64 (make sure to have OpenCppCoverage on the PATH)
F:\2019\qamqp>cmake G:\_projects\qamqp
...

F:\2019\qamqp>cmake --build . --parallel 8 --config RelWithDebInfo
...

F:\2019\qamqp>Opencppcoverage --export_type html:coverage --modules "qamqp*.exe" --sources G:\_projects\qamqp\src --optimized_build --cover_children  -- ctest -C RelWithDebInfo
...
... open coverage/index.html in your browser ....
...

F:\2019\qamqp>cpack -G ZIP
...
CPack: - package: F:/2019/qamqp/qamqp-0.5.0-ee2bfd8-win64.zip generated.

Usage

Use -DWITH_TUTORIALS=ON to enable the tutorials in CMake.

Documentation

Coming soon!

AMQP Support

connection

method supported
connection.start
connection.start-ok
connection.secure
connection.secure-ok
connection.tune
connection.tune-ok
connection.open
connection.open-ok
connection.close
connection.close-ok

channel

method supported
channel.open
channel.open-ok
channel.flow
channel.flow-ok
channel.close
channel.close-ok

exchange

method supported
exchange.declare
exchange.declare-ok
exchange.delete
exchange.delete-ok

queue

method supported
queue.declare
queue.declare-ok
queue.bind
queue.bind-ok
queue.unbind
queue.unbind-ok
queue.purge
queue.purge-ok
queue.delete
queue.delete-ok

basic

method supported
basic.qos
basic.consume
basic.consume-ok
basic.cancel
basic.cancel-ok
basic.publish
basic.return
basic.deliver
basic.get
basic.get-ok
basic.get-empty
basic.ack
basic.reject
basic.recover

tx

method supported
tx.select X
tx.select-ok X
tx.commit X
tx.commit-ok X
tx.rollback X
tx.rollback-ok X

confirm

method supported
confirm.select
confirm.select-ok

Credits

  • Thank you to @fuCtor for the original implementation work.