Project

zmqp

0.0
No commit activity in last 3 years
No release in over 3 years
Drop-in replacement for async AMQP library based on ZMQ/ZmqMachine (pre-alpha!).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 2.0.0

Runtime

>= 1.0.0
>= 0.3.2
 Project Readme

by: Arvicco url: http://github.com/arvicco/zmqp

Description

Asynchronous AMQP library sets a standard for messaging. It is well documented and has clean and simple interfaces for most common messaging tasks. However, it implements AMQP standard that has some serious problems and limitation.

ZeroMQ offers a viable alternative to AMQP, as well as 3-10 times performance boost for most common messaging tasks. However, its interfaces are very similar to socket programming and look a bit frightening for the uninitiated.

This library wraps ZeroMQ/ZMQMachine with familiar interfaces that are equivalent to the ones offered by tmm1/amqp. That way, you'll be able to leverage your existing code developed for AMQP, getting additional benefits such as:

  • Performance boost (3-10 times for most common messaging tasks)
  • No broker-related bottlenecks for high-throughput applications
  • Ability to flexibly extend your messaging architecture
  • No external dependency on 3rd-party broker software (such as RabbitMQ)

Some library highlights/design choices:

  • ZMQP::Client/Connection is actually a connection to a lightweight service registry
  • All Exchanges are based on ZMQ sockets/devices
  • Queues can be omitted when binding to Exchanges, but if they are not omitted, they are based on ZMQ::Queue device
  • Socket complexity is mostly hidden from code by sane defaults, but more granular control is possible through options

Because ZMQ is inherently threaded, it does not make sense to use this library with anything less than MRI 1.9.2, JRuby or Rubinius. MRI 1.9.1 may or may not work, MRI 1.8.7 and its below are broken beyond repair (as far as threading goes).

!!! Currently this library is at pre-alpha stage. Please do not use it for anything serious.

Getting started

First things first, start with:

$ gem install zmqp

Documentation

To be added...

Credits

(c) 2010 Arvicco

This project was inspired by tmm1/amqp. It is based on ZMQMachine. Special thanks to Aman Gupta and Chuck Remes.

Resources

License

Copyright (c) 2010 Arvicco. See LICENSE for details.