Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

AMQP Prototyping

branch: master
README
This project contains a partial prototype of AMQP 1-0 draft. This
currently includes relatively complete components for framing, codec,
connection, session, and link endpoints, as well as a very simple
broker, client library, and send/recv utilities.

Getting Started:

  1. First run the broker, passing the names of your queues on the
     command line:

       ./broker queue-a queue-b queue-c ...

  2. Run the send program to send a message:

       ./send queue-a this is a test

  3. Run the recv program to receive a message:

       ./recv queue-a

  4. Use the --help option for each of the above programs to explore
     in more depth. All of the above programs support the -t/--trace
     option which may be used to print a protocol trace:

       ./send -t raw queue-a trace raw bytes
       ./send -t frm queue-b trace operations before/after encode/decode
       ./send -t "raw frm err" queue-c trace everything

Files:

  broker         -- A prototype broker: ./broker --help

  recv           -- A client used to receive messages: ./recv --help

  send           -- A client used to send messages: ./send --help

  client.py      -- A simple client library.

  codec.py       -- An implementation of the AMQP type system.

  composite.py   -- Base class for composite types and utilities for
                    loading composite type definitions from the xml.

  concurrency.py -- Concurrency utilities.

  connection.py  -- An implementation of an AMQP connection endpoint.

  example-nodes  -- Example node configurations for use with the -n
                    option of the broker.

  framing.py     -- An implementation of the AMQP framing layer.

  link.py        -- An implementation of an AMQP link endpoint.

  messaging.py   -- An implementation of the AMQP messaging layer.

  messaging.xml  -- Definitions from the AMQP messaging specification.

  mllib/         -- An XML parsing library used to load type definitions.

  protocol.py    -- Classes representing the types defined by the
                    protocol specification.

  README         -- This file.

  queue.py       -- A simple AMQP queue implementation.

  rendered-nodes -- Example config file for rendered nodes.

  selector.py    -- A simple I/O driver.

  session.py

  test.py        -- Some informal test code.

  TODO           -- List of outstanding tasks.

  transport.xml  -- Definitions from the AMQP transport specification.

  types.xml      -- Definitions from the AMQP types specification. This
                    includes encoding and type definitions used by
                    codec.py.

  util.py        -- Common utilities.

  widgets.py     -- Cairo widgets for rendering nodes.

  window.py      -- Thread that manages gtk window and cairo surface.
Something went wrong with that request. Please try again.