AMQP Prototyping
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
demo tweaked script Oct 18, 2011
mllib initial commit of framing and codec components Feb 25, 2010
.gitignore initial commit of framing and codec components Feb 25, 2010
README updated README Jul 31, 2010
TODO proper message frag/defrag May 12, 2011
broker initial pass at demo controller and client, plus a few minor interop … Sep 28, 2011
brokerlib.py initial pass at demo controller and client, plus a few minor interop … Sep 28, 2011
client.py shutdown fixes Oct 11, 2011
codec.py replaced buffer with Binary, fixed client lib for transactions Aug 8, 2011
composite.py updated to final xml Jul 8, 2011
concurrency.py moved broker code into module Jul 15, 2011
connection.py shutdown fixes Oct 11, 2011
dispatcher.py improved handling of connection errors and some txn fixes Jul 26, 2011
dump added dump trigger script Jul 27, 2011
example-nodes added a hole node type for testing Feb 9, 2011
example-users initial cut at sasl layer Apr 7, 2011
filerecv fixed container default Aug 11, 2011
filesend fixed durable field to be enum value Aug 10, 2011
framing.py made sasl frames the proper type Apr 11, 2011
hole.py fixed inheritence Aug 3, 2011
link.py only update availabe if it was specified Sep 30, 2011
messaging.py batch viewing Oct 11, 2011
messaging.xml updated to final xml Jul 8, 2011
protocol.py replaced buffer with Binary, fixed client lib for transactions Aug 8, 2011
queue.py only do reshuffle on release if necessary Oct 11, 2011
recv initial pass at demo controller and client, plus a few minor interop … Sep 28, 2011
rendered-nodes added graphics option to broker Jun 7, 2010
sasl.py fixed sasl error paths Oct 5, 2011
security.xml updated to latest version of spec Jun 23, 2011
selector.py moved broker code into module Jul 15, 2011
send fixed durable field to be enum value Aug 10, 2011
session.py fixed next-outgoing-id in begin frame Sep 26, 2011
test.py updated to PR3 draft May 5, 2010
transactions.xml updated to final xml Jul 8, 2011
transport.xml updated to final xml Jul 8, 2011
types.xml updated to final xml Jul 8, 2011
util.py added catchall exception; modified close_sent assertion Jul 27, 2011
widgets.py added code for rendering nodes Jun 5, 2010
window.py made viewer into proper script Oct 11, 2011

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.