[rabbitmq-discuss] CL-RABBIT - LispWorks to RabbitMQ via JFLI

Alexis Richardson alexis.richardson at gmail.com
Thu Apr 2 17:57:21 BST 2009


Nick

Very cool.  And: many thanks to Wiinz for this!

alexis



On Thu, Apr 2, 2009 at 3:17 AM, Nick Levine <ndl at ravenbrook.com> wrote:
> I am very pleased to announce the release of version 0.1 of CL-RABBIT:
> an interface from LispWorks to RabbitMQ, an implementation of the AMQP
> messaging protocol.
>
>  http://www.rabbitmq.com/
>  http://www.amqp.org/
>
> It's released under an MIT-style license, a copy of which appears in
> each source file. Many thanks to Wiinz Limited for giving me
> permission to do all this and I'm sorry it's taken so long to get
> around to kicking the brute through the door.
>
>  http://www.nicklevine.org/cl-rabbit/
>
> Here's how it goes:
>
>  - Open a connection and a channel (I'll be lazy and use the same
>   channel for outgoing and incoming messages), declare exchange and
>   queue, bind everything together:
>
>    RABBITMQ 6 > (setf my-connection (new-connection "localhost" "/"))
>    #<AMQCONNECTION. amqp://guest@localhost:5672/ 200DCD87>
>
>    RABBITMQ 7 > (setf my-channel (new-channel my-connection))
>    #<CHANNEL AMQChannel(amqp://guest@localhost:5672/,1) 200F7BB3>
>
>    RABBITMQ 8 > (declare-exchange my-channel "my exchange" :direct)
>    #<|com.rabbitmq.client.impl|::AMQIMPL$EXCHANGE$DECLAREOK. 2009159F>
>
>    RABBITMQ 9 > (declare-queue my-channel "my queue")
>    #<|com.rabbitmq.client.impl|::AMQIMPL$QUEUE$DECLAREOK. 21D050CF>
>
>    RABBITMQ 10 > (bind-queue my-channel "my queue" "my exchange" "my routing key")
>    #<|com.rabbitmq.client.impl|::AMQIMPL$QUEUE$BINDOK. 21CEEFD3>
>
>  - Send a message into the void:
>
>    RABBITMQ 11 > (setf outgoing-message (new-message))
>    #<OUTGOING-MESSAGE 21CE265B>
>
>    RABBITMQ 12 > (setf (message-id outgoing-message) "42"
>                        (message-body outgoing-message) "Hello, World")
>    "Hello, World"
>
>    RABBITMQ 13 > (publish outgoing-message my-channel "my exchange" "my routing key")
>    NIL
>
>  - And get it back again:
>
>    RABBITMQ 14 > (consume-queue my-channel "my queue")
>    "amq.ctag1_rabbit at gannet_20090402084407_"
>
>    RABBITMQ 15 > (channel-arrived-count my-channel)
>    1
>
>    RABBITMQ 16 > (setf incoming-message (next-message my-channel))
>    #<QUEUEINGCONSUMER$DELIVERY. 200E0E93>
>
>    RABBITMQ 17 > (values (message-body incoming-message)
>                          (message-id incoming-message))
>    "Hello, World"
>    "42"
>
>    RABBITMQ 18 >
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>




More information about the rabbitmq-discuss mailing list