Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

OpenMAMA Native Message (OMNM)

Join the chat at

Build and Test


Pronounced ominum (because it's fun to say), this is the OpenMAMA Native Messaging bridge.

The idea is to create a dependency-free payload implementation for OpenMAMA so that it can be used with middlewares which don't have their own payload format (e.g. ZeroMQ, Nanomsg etc).

The payload implementation is high performance and self describing so it is quite flexible. It also supports every interface which is supported by OpenMAMA, and passes every OpenMAMA unit test currently available.

NB: This project is MIT Licensed, maintained by and in no way affiliated with nor supported by the OpenMAMA project - if you find any issues, please report to this project via github.


The payload is considered feature complete and includes:

  • Serialization / Deserialization functions
  • Apply methods
  • Iterators (both callback based and iterator based)
  • Scalar data type accessor and modification methods for both field and message
  • Sub messages
  • All vector types
  • Binary and opaque data types
  • String serialization functionality
  • It may be extended to form a suitable base for other payload implementations.

Extending this Bridge

It is possible to use this payload as a base bridge simply by implementing:

  • <yourpayload>msgPayload_init
  • <yourpayload>msgPayload_getType
  • <yourpayload>msgPayload_create
  • <yourpayload>msgPayload_destroy
  • <yourpayload>msgPayload_copy
  • <yourpayload>msgPayload_serialize
  • <yourpayload>msgPayload_unSerialize
  • <yourpayload>msgPayload_getByteBuffer
  • <yourpayload>msgPayload_getByteSize
  • <yourpayload>msgPayload_setByteBuffer
  • <yourpayload>msgPayload_createFromByteBuffer
  • <yourpayload>msgPayload_addVectorMsg
  • <yourpayload>msgPayload_updateVectorMsg

And passing through the API call to omnmsg for all other methods

Build Instructions

Supported Platforms

We support all of the platforms currently supported by OpenMAMA. The complete list can be found here.


The bridge depends on:

  • OpenMAMA 2.4.0+
  • Cmake


The software can be build in the standard cmake way

mkdir build
cd build
cmake .. -DMAMA_ROOT=/path/to/openmama
make install

Which will install the bridge to the OpenMAMA root directory. If building on windows, instead of make, run cmake --build . --target install.

Usage Instructions

Add the directory containing this library to your LD_LIBRARY_PATH and set the following property in your configuration file:


Related Projects

More from Cascadium

If you want to see what else we're up to, you can head on over to We offer professional support for all of our projects as well as bespoke development for your in-house needs.