eProsima Micro XRCE-DDS

eProsima Micro XRCE-DDS is a software solution which allows to communicate eXtremely Resource Constrained Environments (XRCEs) with an existing DDS network. This implementation complies with the specification proposal, “DDS for eXtremely Resource Constrained Environments” submitted to the Object Management Group (OMG) consortium.

Micro XRCE-DDS implements a client-server protocol to enable resource-constrained devices (clients) to take part in DDS communications. Micro XRCE-DDS Agent (server) makes possible this communication acting on behalf of the Micro XRCE-DDS Clients and enables them to take part as DDS publishers and/or subscribers in the DDS Global Data Space.

Micro XRCE-DDS provides both, a plug and play Micro XRCE-DDS Agent and an API layer which allows you to implement your Micro XRCE-DDS Clients.

_images/xrcedds_architecture.png

Main features

High performance.
Uses a static low-level serialization library (MicroCDR) that serialize in XCDR.
Low resouces.
The client library is dynamic memory free and static memory free. This means that the only memory charge is due to the stack growth. It can manage a simple publisher/subscriber with less of 2KB of RAM. Besides, the client is built with a profiles concept, that allows to add or remove functionality to the library changing the binary size.
Multi-platform.
The OS dependencies are treated as pluggable modules. The user can easily implement his platform modules to Micro XRCE-DDS Client library in his specific platform. By default, the project can run over Linux, Windows and Nuttx.
Compiler dependencies free.
The client library uses pure c99 standard. No C compiler extensions are used.
Free and Open Source.
The client library, the agent executable, the generator tool and internal dependencies as MicroCDR or FastRTPS are all of them free and open source.
Easy to use.
The project comes with examples of a publisher and a subscriber, an example of how Micro XRCE-DDS is deployed into a stage and an interactive demo that can be used with the ShapesDemo with the purpose of understanding the DDS-XRCE protocol and making tests. The client API is thoroughly explained, and a guided example of how to create your client application is distributed as part of the documentation.
Implementation of the DDS-XRCE standard.
DDS-XRCE is a standard communication protocol of OMG consortium focused on communicating eXtremely Resource Constrained Environments with the DDS world.
Best effort and reliable communication.
Micro XRCE-DDS supports both, best effort for fast and light communication and reliable when the communication reliability is needed.
Pluggable tansport layer.
Micro XRCE-DDS is not built over a specific transport as serial or UDP. It is agnostic about the transport used, and give the user the possibility of implementing easily his tailored transport. By default, UPD, TCP, and serial transports are provided.
Commercial support
Available at support@eprosima.com

Installation

To install Micro XRCE-DDS, follow the instructions of Installation page.

User manual

To test Micro XRCE-DDS in your computer, you can follow the Quick start instructions. This page shows how to create a simple publisher as a XRCE client that send topics into the DDS World.

Additionally, there is an interactive example called Shapes Demo that allow you to create entities and to send/receive topics by instructions given by command line. This example is useful to understand how XRCE protocol works along to the DDS World.

To create your own client, you can follow the instructions of Getting started page. This is a tutorial that describe briefly how Micro XRCE-DDS API is and how it works.

To know more about Micro XRCE-DDS, you can read the corresponding parts to the Micro XRCE-DDS Client or the Micro XRCE-DDS Agent. If you are interesting in how XRCE works, read Entities and Operations pages.

Micro XRCE-DDS Gen

To create a serialization/deserialization topic code for Micro XRCE-DDS Client and make easy the built of examples using thoses topics, there is a tool called microxrceddsgen. Information about this tool can be found in Micro XRCE-DDS Gen page.