Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fetching latest commit…
Cannot retrieve the latest commit at this time.
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.