/mumq

μMQ: very simple, small and fast STOMP message broker with in-memory persistence written in Erlang

Primary LanguageErlangMIT LicenseMIT

  μMQ
=======

Very simple, small and fast STOMP message broker with in-memory
persistence written in Erlang.

μMQ supports a subset of STOMP 1.0: no transaction support, nor receipt
header and the acknowledge method is always `auto'.

By default, the server opens the TCP port 61613 and 61614 for SSL.

The persistence works subscribing to any queue using the `id' header, if
the session is broken for any reason, the client can reconnect and
subscribe to the same queue using the previous `id' and it will received
the messages that were sent to the queue while he was not connected.

The queue names must have the format of an absolute UNIX path, like /foo
or /foo/bar.

Any subscription will always suppose an implicit subscription to any
other existing queue with the same name prefix (i.e., specifying /foo,
you will be also subscribed to /foo/bar, /foo/bar/bur and so on).


 Install
---------

To compile μMQ simply run:

	make

To start an instance of the server for testing in the TCP port 61613,
just run:

	./start.sh

In order to create a target system for painless deployment, run:

	make release

This command will create the target system under rel/mumq/, copy it to
your desired destination and use the next helper script to control it:

	./rel/mumq/bin/mumq {start|stop|restart|console|...}


 How to enable SSL
-------------------

μMQ will enable SSL automatically if you specify a private key and a
certificate.

Use this pair of commands to create a new key and a new self-signed
certificate if you don't have one:

	openssl genrsa -out mumq-key.pem 1024
	openssl req -new -x509 -nodes -sha1 -days 365 \
		-key mumq-key.pem -out mumq-cert.pem

And also add to the μMQ application configuration the next parameters:

	{ssl_certfile, "/path/to/mumq-cert.pem"}
	{ssl_keyfile, "/path/to/mumq-key.pem"}


 License
---------

This software is published under MIT license.