Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
AMQP Prototyping
Python
Branch: master
Failed to load latest commit information.
demo tweaked script
mllib initial commit of framing and codec components
.gitignore initial commit of framing and codec components
README updated README
TODO proper message frag/defrag
broker initial pass at demo controller and client, plus a few minor interop …
brokerlib.py initial pass at demo controller and client, plus a few minor interop …
client.py shutdown fixes
codec.py replaced buffer with Binary, fixed client lib for transactions
composite.py updated to final xml
concurrency.py moved broker code into module
connection.py shutdown fixes
dispatcher.py improved handling of connection errors and some txn fixes
dump added dump trigger script
example-nodes added a hole node type for testing
example-users initial cut at sasl layer
filerecv fixed container default
filesend fixed durable field to be enum value
framing.py made sasl frames the proper type
hole.py fixed inheritence
link.py only update availabe if it was specified
messaging.py batch viewing
messaging.xml updated to final xml
protocol.py replaced buffer with Binary, fixed client lib for transactions
queue.py only do reshuffle on release if necessary
recv initial pass at demo controller and client, plus a few minor interop …
rendered-nodes added graphics option to broker
sasl.py fixed sasl error paths
security.xml updated to latest version of spec
selector.py moved broker code into module
send fixed durable field to be enum value
session.py fixed next-outgoing-id in begin frame
test.py updated to PR3 draft
transactions.xml updated to final xml
transport.xml updated to final xml
types.xml updated to final xml
util.py added catchall exception; modified close_sent assertion
widgets.py added code for rendering nodes
window.py made viewer into proper script

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.