5 releases

Uses old Rust 2015

0.2.3 Oct 18, 2016
0.2.2 Oct 6, 2016
0.2.1 Oct 6, 2016
0.2.0 Oct 6, 2016
0.1.0 Sep 15, 2016

#29 in #subscribe

MIT license

480KB
2.5K SLoC

Real Time Publish Subscribe

A mature standard for building publish subscribe systems, with a unique emphasis on quality of service parameters and fast cross platform implementations.

There are over 20 implementations of RTPS (well, of DDS, but RTPS underpins all those implementations). They range from FPGAs to C/C++/Java. This is the first Rust implementation.

Find the spec here: http://www.omg.org/spec/DDSI-RTPS/2.2/PDF/. It lacks in easy to read binary breakdown, but in general it does a good job of splitting format, purpose, and behavior. Unfortunately it does not read from beginning to end.

CDR:

  • Enough serialization/deserialization to get by
  • Full serialization/deserialization for all CDR types
  • Set submessage endianness on the serializer
  • Manage alignment
  • Investigate how to make zero-allocation

RTPS:

  • Entity thread abstraction
  • Basic entity thread stats
  • Message serialization
  • Submessage header serialization
  • Submessage content serialization
  • UDP test client
  • Built in entities for DDS
  • Interop test with eProsima's modern, open-source C++ impl

Code of Conduct

Anyone who interacts with XDDS RTPS in any space including but not limited to this GitHub repository is expected to follow our code of conduct

Dependencies

~1.3–2MB
~41K SLoC