Skip to content
RabbitMQ Microsoft MQ bridge
Latest commit 43621f9 Apr 2, 2011 @videlalvaro removed Script.fsx
Failed to load latest commit information.
RabbitMQUtils removed Script.fsx Apr 2, 2011
rmq_msmq new Apr 2, 2011
.gitignore project files Apr 2, 2011
LICENSE new LICENSE file Apr 2, 2011 improved formatting Apr 2, 2011
rmq_msmq.sln project files Apr 2, 2011
rmq_msmq.suo project files Apr 2, 2011


This project implements a bridge between Microsoft MQ and RabbitMQ.

The bridge is implemented using FSharp and the RabbitMQ Client for .Net. It has been tested with version 2.4.0


If you have a MSMQ public queue called @".\private$\MyTestingQueues" then you can subscribe to it, receive messages from it and then send them to RabbitMQ to a queue that you decide.


In your project you will have to add a reference to the System.Messaging dll and to the RabbitMQ client dll. Then you can have a program like this:

module Program

open System.Messaging
open RabbitMQ.Client

open MSMQ.Util
open RabbitMQ.Helper
open RabbitMQ.Bridge

Bridge.msmq2rmq ("guest", "guest", "/", "localhost", 
                ("", "ms-test", null)

Here we pass three arguments to Bridge.msmq2rmq:

  • A tuple with (user, password, vhost, host, port, protocol) to use while connecting to RabbitMQ.
  • A tuple with (exchange, routing_key, basicProperties) used while publishing the message.
  • The name of the MSMQ Queue.

In this case we are sending the messages to the unnamed exchange using the queue name as the routing key.

If a message with body "quit" is sent to the MSMQ queue, then the Receiver will quit. The messages are expected to be formatted using BinaryMessageFormatter.


Consider this project as alpha. Just an excercise to learn Fsharp and MSMQ. You could use this as a reference for your implementations or simply contribute to this project to make it more robust.


  • Allow importing messages from RabbitMQ to MSMQ



Something went wrong with that request. Please try again.