• Stars
    star
    158
  • Rank 237,131 (Top 5 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created about 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An XRCE DDS implementation. Looking for commercial support? Contact [email protected]

eProsima Micro XRCE-DDS

Releases License Issues Forks Stars Read the Docs Twitter Follow

eProsima Micro XRCE-DDS is a library implementing the DDS-XRCE protocol as defined and maintained by the OMG, whose aim is to allow resource constrained devices such as microcontrollers to communicate with the DDS world as any other DDS actor would do. It follows a client/server paradigm and is composed by two libraries, the Micro XRCE-DDS Client and the Micro XRCE-DDS Agent. The Micro XRCE-DDS Clients are lightweight entities meant to be compiled on eXtremely Resource Constrained Environments, while the Micro XRCE-DDS Agent is a broker which bridges the Clients with the DDS world.

XRCE protocol

The Micro XRCE-DDS Clients request operations to the Agent to publish and/or subscribe to topics in the DDS global dataspace. Remote procedure calls, as defined by the DDS-RPC standard, are also supported, allowing Clients to communicate in the DDS dataspace according to a request/reply paradigm. The Agents process these requests and send back a response with the operation status result and with the requested data, in the case of subscribe/reply operations.

eProsima Micro XRCE-DDS provides the user with a C API to create Micro XRCE-DDS Clients applications. The library can be configured at compile-time via a set of CMake flags allowing to enable or disable some profiles before compilation, and to manipulate several parameters controlling some of the library's functionalities, which in turn allow tuning the library size.

The Micro XRCE-DDS Agent receives messages containing request operations from the Clients, processes these requests and sends back a response with the operation status result and with the requested data, in the case of subscribe/reply operations.

Agents keep track of the Clients by means of a dedicated ProxyClient entity that acts on behalf of the latter. This is made possible by the creation of DDS Entities on the Agent as a result of Clients' operations, such as Participants, Topics, Publishers, and Subscribers, which can interact with the DDS global dataspace.

The communication between a Micro XRCE-DDS Client and a Micro XRCE-DDS Agent is achieved by means of several kinds of built-in transports: UDPv4, UDPv6, TCPv4, TCPv6 and Serial communication. In addition, there is the possibility for the user to generate its own Custom transport.

General architecture

This repository contains the totality of the eProsima Micro XRCE-DDS products:

Documentation

You can access the eProsima Micro XRCE-DDS user documentation online, which is hosted on Read the Docs.

Getting Help

If you need support you can reach us by mail at [email protected] or by phone at +34 91 804 34 48.

More Repositories

1

Fast-DDS

The most complete DDS - Proven: Plenty of success cases. Looking for commercial support? Contact [email protected]
C++
2,152
star
2

Fast-CDR

eProsima FastCDR library provides two serialization mechanisms. One is the standard CDR serialization mechanism, while the other is a faster implementation of it. Looking for commercial support? Contact [email protected]
C++
142
star
3

Micro-XRCE-DDS-Client

Micro XRCE-DDS Client repository. Looking for commercial support? Contact [email protected]
C
131
star
4

Micro-XRCE-DDS-Agent

Micro XRCE-DDS Agent respository. Looking for commercial support? Contact [email protected]
C++
109
star
5

Fast-DDS-docs

Documentation of Fast RTPS (MarkDown Files). Looking for commercial support? Contact [email protected]
C++
84
star
6

Fast-DDS-Gen

Fast-DDS IDL code generator tool. Looking for commercial support? Contact [email protected]
Java
80
star
7

Integration-Service

C++
65
star
8

RPC

RPC over TCP/DDS/REST
C++
60
star
9

DDS-Router

The DDS Router is an application developed by eProsima that allows, using Fast DDS, to communicate by DDS protocol different networks. Looking for commercial support? Contact [email protected]
C++
57
star
10

Fast-DDS-python

Python bindings for Fast DDS. Looking for commercial support? Contact [email protected]
C++
56
star
11

Micro-CDR

C++
41
star
12

Fast-DDS-monitor

eProsima Fast DDS Monitor is a graphical desktop application aimed at monitoring DDS environments deployed using the eProsima Fast DDS library. Looking for commercial support? Contact [email protected]
C++
40
star
13

IDL-Parser

IDL Parser library for Fast DDS-Gen and RPC over TCP/DDS/REST. Looking for commercial support? Contact [email protected]
Java
30
star
14

px4_to_ros

ROS2/ROS packages for communicate PX4 with ROS
C++
27
star
15

vulcanexus

eProsima extended ROS 2 distribution. Looking for commercial support? Contact [email protected]
C++
25
star
16

foonathan_memory_vendor

foonathan/memory vendor package for Fast DDS. Looking for commercial support? Contact [email protected]
CMake
24
star
17

Discovery-Server

Tests for Fast DDS Discovery Server. Looking for commercial support? Contact [email protected]
C++
24
star
18

ShapesDemo

This application demostrates the capabilities of eProsima Fast RTPS. Looking for commercial support? Contact [email protected]
C++
23
star
19

xtypes

Implementation based on DDS-XTYPES standard (https://www.omg.org/spec/DDS-XTypes)
C++
20
star
20

Fast-Buffers

C
19
star
21

DDS-Record-Replay

eProsima DDS Record & Replay is an end-user software application that efficiently saves DDS data published into a DDS environment in a MCAP format database. Thus, the exact playback of the recorded network events is possible. Looking for commercial support? Contact [email protected]
C++
19
star
22

Fast-DDS-statistics-backend

eProsima Fast DDS Statistics Backend is a C++ library that provides collection and procession the statistics measurements reported by Fast DDS Statistics Module. Looking for commercial support? Contact [email protected]
C++
17
star
23

FastDDS-SH

eProsima's Integration Service System Handle for Fast DDS.
C++
13
star
24

dev-utils

C++
12
star
25

ROS2-SH

eProsima's Integration Service System Handle for ROS 2.
C++
12
star
26

ROS2-Integration-Service

ROS2 Integration and Routing: Provide a complete tool to integrate other technologies with ROS2 easily and enable ROS2 on WAN/Internet.
12
star
27

Micro-XRCE-DDS-docs

Micro XRCE-DDS documentation. Looking for commercial support? Contact [email protected]
Makefile
11
star
28

Micro-XRCE-DDS-Gen

Micro XRCE-DDS IDL code generator tool. Looking for commercial support? Contact [email protected]
Java
10
star
29

Micro-XRCE-DDS-Apps

Looking for commercial support? Contact [email protected]
C
10
star
30

Non-Intrusive-DDS-Recorder

Non-intrusive DDS Recorder is a tool to record all the DDS traffic in your network, using a non-intrusive mechanism allowing you to test, analyze or log your DDS distributed system without adding any new DDS participant or service, ensuring you are recording the real behavior and timing.
C
10
star
31

benchmarking

Python
9
star
32

FIROS2

eProsima FIROS2 is a ROS2 integrable tool focused in the intercommunication between ROS2 and FIWARE
C++
8
star
33

Fast-DDS-spy

eProsima Fast DDS Spy is a CLI interactive tool that allows to introspect a DDS network in human readable format. Looking for commercial support? Contact [email protected]
C++
7
star
34

Integration-Service-Deprecated

Fast-RTPS Integration Service: A set of services to integrate other protocols with Fast RTPS and connect different domains, LANs, and WANs.
C++
6
star
35

fastdds-visualizer-plugin

PlotJuggler plugin for Fast DDS
C++
6
star
36

DDS-Suite

Meta information to build eProsima DDS Suite. Looking for commercial support? Contact [email protected]
6
star
37

PX4-FastRTPS-PoC

PoC of Fast RTPS & PX4 data sharing
C
5
star
38

Dynamic-Fast-Buffers

eProsima Dynamic Fast Buffers is a high-performance dynamic serialization library, which allows users to describe and serialize or deserialize data at run-time.
C++
5
star
39

AML-IP

C++
4
star
40

Integration-Service-docs

Documentation related to Integration-Service
Makefile
4
star
41

FIWARE-SH

eProsima's Integration Service System Handle for FIWARE.
C++
3
star
42

Shapes-Demo-Docs

Docs for Fast RTPS Shapes Demo. Looking for commercial support? Contact [email protected]
Makefile
3
star
43

SustainML-Library

Application Aware, Life-Cycle Oriented Model-Hardware Co-Design Framework for Sustainable, Energy Efficient ML Systems
C++
3
star
44

Discovery-Server-docs

Discovery Server's documentation
Makefile
3
star
45

WebSocket-SH

eProsima's Integration Service System Handle for WebSocket.
C++
3
star
46

SustainML-Framework

QML
3
star
47

ROS1-SH

eProsima's Integration Service System Handle for ROS 1.
C++
2
star
48

PX4-FastRTPS-PoC-Snapdragon-UDP

C++
2
star
49

Micro-XRCE-DDS-Integration-Tests

Looking for commercial support? Contact [email protected]
C++
2
star
50

all-docs

Index of all eProsima documentation.
HTML
2
star
51

eProsima-CI

Python
2
star
52

DDS-Pipe

Core communication module for DDS Router, DDS Recorder and some other eProsima products. Looking for commercial support? Contact [email protected]
C++
2
star
53

t3chfest-ros2

C++
1
star
54

Micro-XRCE-DDS-Vendors

Specific tools and code to use Micro XRCE-DDS Client in different platforms.
1
star
55

Fast-DDS-QoS-Profiles-Manager

C++
1
star
56

flaky_test_infra_poc

Python
1
star
57

dds-types-test

1
star