[rabbitmq-discuss] [ANN] Release v0.1.0 of Bunny a synchronous Ruby AMQP client

Alexis Richardson alexis.richardson at gmail.com
Mon Apr 27 15:17:28 BST 2009


Chris,

OK - I have discussed this with Tony from the RabbitMQ engineering team.

There are two ways to proceed, both of which would require Aman's
consent and enthusiasm.  (He is cc'd).

1.  We copy Aman's codegen.rb to RabbitMQ's mercurial repo, and the
community uses that as the root file for .rb code generation.

2.  The codegen.rb file is refactored into two parts, one that
generates core protocol constructs, and one that generates
client-specific constructs (eg for EM in the case of Aman's client).
According to Tony, something like this is done in the .py code
generation.

If Aman likes the idea and someone is willing to help with 2, then
this might be a good outcome.

What do you think?

alexis




On Sun, Apr 26, 2009 at 10:43 PM, Alexis Richardson
<alexis.richardson at gmail.com> wrote:
> On Sun, Apr 26, 2009 at 10:15 PM, Chris Duncan <celldee at gmail.com> wrote:
>> I did read Ben Hood's article thanks. It mentions parsing the json spec but
>> not who or what builds it. I went to the AMQP site and could see a .xml spec
>> but not a json version.
>
> Chris, as I mentioned: Is it not the .json 0-8 document in 'files', here?
>
> http://hg.rabbitmq.com/rabbitmq-codegen/
>
>
>
>> Does someone at Rabbit produce the json version?
>
> The doc in the above repo was created by John Leuner as a way to help Rabbit.
>
>
>
>> So to clarify. To build an AMQP client, you have to get hold of the
>> appropriate json spec and parse it using a codegen emitter for your chosen
>> language. Then you use the output from that to implement protocol methods
>> that can be used to produce an API. What I am suggesting is that the codegen
>> emitter in amqp (Aman's project) might become the de facto standard for
>> Ruby, provided that it can be maintained in a way that copes with changes to
>> the AMQP spec.
>>
>> I have no idea who should ultimately be the custodian of it, but I guess the
>> basic requirements are a good grasp of Ruby and excellent knowledge of AMQP
>> and the spec in particular. I know one thing; I don't qualify :)
>
> I need to discuss this with the engineering team and with Aman, and
> get back to you.  We're happy to maintain all sorts of core code but
> are not Ruby experts.
>
> Thanks for the suggestion!
>
> alexis
>
>
>
>> Regards,
>>
>> Chris
>> On 26 Apr 2009, at 21:27, Alexis Richardson wrote:
>>
>>> Chris,
>>>
>>> On Sun, Apr 26, 2009 at 9:13 PM, Chris Duncan <celldee at gmail.com> wrote:
>>>>
>>>>> Can you provide some more thinking on this?  Do you mean the RabbitMQ
>>>>> codegen and if so, how would you split it out and where?  What I mean
>>>>> is: what is the best way to socialise the code.
>>>>
>>>> No, sorry I wasn't very clear. I don't mean the RabbitMQ codegen.py. I
>>>> mean
>>>> the codegen.rb script in Aman's amqp that parses the AMQP specification
>>>> json
>>>> document. I'm not sure where the json document comes from, maybe you
>>>> could
>>>> enlighten me :)
>>>
>>> Is it not the .json 0-8 document in 'files', here?
>>>
>>> http://hg.rabbitmq.com/rabbitmq-codegen/
>>>
>>> Also, just in case you have not seen it, does this help?
>>>
>>>
>>> http://hopper.squarespace.com/blog/2008/6/21/build-your-own-amqp-client.html
>>>
>>>
>>>> It seems to me that the Ruby community could do with a
>>>> reliable repository to get that code from rather than lifting it from
>>>> amqp
>>>> every time it's needed. It's fundamental to anything Ruby that wants to
>>>> talk
>>>> AMQP.  I've asked Aman and Amos about it, I don't know what  they think
>>>> yet.
>>>>
>>>> I'm new to the AMQP arena so I'm open to advice and guidance from anyone
>>>> who
>>>> wants to offer it :)
>>>
>>> :-)
>>>
>>> We'll do our best.
>>>
>>>
>>>
>>>
>>>> Thanks for the JRuby project link. I'll take a look.
>>>>
>>>> Regards,
>>>>
>>>> Chris
>>>>
>>
>>
>




More information about the rabbitmq-discuss mailing list