Xtomp handbook

xtomp overview

xtomp is an in-memory STOMP message broker based on nginx.

Because of the magic of nginx it scales quite well and is incredibly light when its not doing much.

Its written in C so it should build on a great many platforms. It's only tested on 64bit Ubuntu but I ran it on an rasberry pi for a bit and it seems OK.

I wrote it because with rabbit-mq running in the background my CPU was always active and eventually I broke the CPU fan from constant use.

nginx code is kinda cool, its like writing in the async nodejs paradigm but in C. i.e. callback hell without a garbage collector. It keeps you on your toes.

STOMP is a text based messaging protocol thats really fun to hack with because you can access it in any language you like, or just by typing

telnet localhost 61613

This means you can add messaging patterns to your bash hacking and the like :)

Components

  • xtomp-ngin - the core engine based on nginx
  • xtomp-tap - copy topic to stdout
  • xtomp-sink - copy stdin to a topic
  • xtomp-drain - drain a queue of all its messages
  • xtomp-bridge - connect more than one instance of the ngin

utils

  • snipcat - cun 'n' paste unit testing framework
  • xtomp-runner - nodejs based integration tests
  • xtomp-ws-runner - nodejs based integration testss for the websockets API
  • xtomp-view - HTML interface
  • stomp-raw - lower level stomp api for testing broken messaging and edge cases
  • stomp-frame - nodejs streaming parser for STOMP frames
  • xtomp-conf-parser.js - nodejs parser for xomp.conf
  • xtomp-bridge.js - copy files from one xtomp server to another.


by teknopaul