Render text into markup through local and zeromq endpoints
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Markup Cloud

Spin up a markup rendering cluster, in the cloud!

This is simply an experiment in breaking the github/markup up into smaller pieces. Formats without a good Ruby library are now accessed through remote ZeroMQ sockets instead of shelling out with new processes.

This is considered alpha code until it's been pushed to a gem. Anything can change!


It's very similar to github/markup. First. setup a MarkupCloud and add some renderers:

require 'markup_cloud'
cloud =
cloud.local_markup :md, :redcarpet do |content|

You can get going with a standard set of local Ruby libraries (provided you have the necessary gems installed).

require 'markup_cloud/clients'
cloud =

cloud.render '','')

You can setup remote renderers that access a ZeroMQ REP server.

require 'markup_cloud'
cloud =
cloud.remote_markup :rst, 'tcp://'

cloud.render "README.rst","README.rst")

Responding to these ZeroMQ messages is simple:

require 'ffi-rzmq'
context =
rep = context.socket ZMQ::REP
rep.bind 'tcp://'

while rep.recv_strings(list = [])
  name, content = list
  rep.send_string Something.render(content)
import zmq
context = zmq.Context()
rep = context.socket(zmq.REP)

while True:
  (name, content) = rep.recv_multipart()


  • Write solid ZeroMQ Python/Perl servers for ReST, POD, etc.
  • Add bulk ZeroMQ API for remote markups.
  • Figure out if any of this is worth the hassle.