blob: da864ae5177d3df41b82f083e17435a47e6a5477 [file] [log] [blame]
<div class="wiki-content maincontent"><p>OpenWire is our cross language <a shape="rect" href="wire-protocol.html">Wire Protocol</a> to allow native access to ActiveMQ from a number of different languages and platforms. The Java OpenWire transport is the default transport in ActiveMQ 4.x or later. For other languages see the following...</p><ul><li class="confluence-link"><a shape="rect" class="external-link" href="http://activemq.apache.org/nms/">NMS</a> for the C# API to Messaging and the OpenWire implementation in C#</li><li class="confluence-link"><a shape="rect" href="cms/index.html">CMS</a> for the C++ API to Messaging and the OpenWire implementation in C++</li></ul><p><strong>Note</strong> that you can also use <a shape="rect" href="stomp.html">Stomp</a> to access ActiveMQ from many different languages as well as use <a shape="rect" href="how-do-i-access-activemq-from-c.html">GCJ</a> or <a shape="rect" class="external-link" href="http://activemq.apache.org/nms/">IKVM</a> to access the Java code for ActiveMQ from C/C++ or .Net respectively without using OpenWire.</p><h3 id="OpenWire-Howitworks">How it works</h3><p>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.</p><p>To give you an idea, <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/">here</a> are the Java classes which code generate the C#, Java, C, and CPP client code.</p><p>Since OpenWire automates the creation of language specific <a shape="rect" href="wire-protocol.html">Wire Protocol</a> 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.</p><h3 id="OpenWire-Specification">Specification</h3><p>For a detailed specification of what you will see on the wire:</p><ul><li><a shape="rect" href="openwire-version-2-specification.html">OpenWire Version 2 Specification</a></li></ul></div>