Python STOMP Updates
Due to a flurry of activity(like, you know, a couple people) on bitbucket and twitter, it became apparent to me that people were actually using the library I created for working with message brokers that utilize the STOMP protocol. This is exciting news for me! ;-)
In response I decided it would be a good idea to, you know, maintain the software and polish it up a bit. There were three forks of the python-stomp repository on
bitbucket, so I waded through diffs to see what ideas/suggestions/improvements others had. Everything I saw looked great, so I pulled in and merged all the changes in to the main repository. Thankfully this was a trivial task because mercurial is FREAKING AWESOME. The next step was to polish it all up. So, I went to PEP8ifying where needed(thankfully others had done a great deal of that work for me), and unit testing new functionality introduced by the other developers.
There are many improvements/changes in the latest iteration of this library, so I’d like to outline some of them here.
- Renamed to stompy
- Fully documented with Sphinx
- Simplified client interface with automatic transaction support (abstracted stompy.stomp as stompy.simple)
- Intermediate message queue layer
- Simplified authentication
- More resilient and informative error handling
- Polling/Non-blocking support
- Now able to subscribe to multiple destinations at a time
- Tested and known to work well with ActiveMQ and RabbitMQ
- Now available on pypi!
This is just a high level overview of the major changes to stompy. For more detailed information, have a look at the source and documentation.
I’d like to thank a few people that have submitted patches and new functionality.
-
Ask Solem Hoel (asksol) http://github.com/ask
- Ask is using stompy in his messaging framework carrot
- Ask submitted many improvements to stompy!
- Victor Ng (crankycoder) http://crankycoder.com/
- Justin Azoff (justinazoff) http://www.bouncybouncy.net/
In closing, I’d like to point out that this “project” was an exercise in TDD(Test Driven Development) for me. I wrote the tests first, then the actual code to make the tests pass. This was also the first time I had used the mocking library Dingus. This has been a pleasurable and enlightening development experience for me!
Thanks for reading!
