Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
TinyMQ - a diminutive, in-memory message queue
JavaScript Erlang
branch: master

This branch is 2 commits ahead, 29 commits behind ChicagoBoss:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

TinyMQ - A diminutive message queue

TinyMQ is a channel-based, in-memory message queue for Erlang. Channels are identified by strings (whatever you want) and are automatically created and destroyed as needed. Each channel is managed by a gen_server process. In theory the channel processes could reside on different nodes in an Erlang cluster, but for now they all reside on the node where TinyMQ is started.

Example usage:

tinymq_sup:start_link([{max_age, 60}]),

Timestamp = tinymq:now("some-channel"),

tinymq:push("some-channel", <<"Hello, world!">>),
tinymq:push("some-channel", <<"Hello, again!">>),

{ok, NewTimestamp, Messages} = tinymq:poll("some-channel", Timestamp),

io:format("Received messages: ~p~n", [Messages])

Besides polling a channel, it is also possible for processes to subscribe to a channel and receive any new message sent to it as soon as the message arrives:

tinymq:subscribe("some-channel", now, self()),
    {_From, Timestamp, Messages} ->
        io:format("Received messages: ~p~n", [Messages])

Each channel can have an unlimited number of subscribers.

Something went wrong with that request. Please try again.