OpenWire

Connectivity > Protocols > OpenWire

OpenWire is our cross language Wire Protocol to allow native access to ActiveMQ Classic from a number of different languages and platforms. The Java OpenWire transport is the default transport in ActiveMQ Classic 4.x or later. For other languages see the following…

  • NMS for the C# API to Messaging and the OpenWire implementation in C#
  • CMS for the C++ API to Messaging and the OpenWire implementation in C++

Note that you can also use Stomp to access ActiveMQ Classic from many different languages as well as use GCJ or IKVM to access the Java code for ActiveMQ Classic from C/C++ or .Net respectively without using OpenWire.

How it works

OpenWire works by code generating language specific commands and marshaling code which understands the core OpenWire protocol. Then we can write language specific extensions for the low level protocol to provide a nice and easy to use client API in different languages.

To give you an idea, here are the Java classes which code generate the C#, Java, C, and CPP client code.

Since OpenWire automates the creation of language specific Wire Protocol implementations; then its a matter of wrapping the language specific TCP/IP socket code and wrapping the API in some easy to use functions/classes.

Specification

For a detailed specification of what you will see on the wire:

Apache, ActiveMQ, Apache ActiveMQ, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. Copyright © 2024, The Apache Software Foundation. Licensed under Apache License 2.0.