Klapeyron/rtps-rs

Could we indicate in the README what the status of the implementation is?

Closed this issue · 2 comments

I'm happy to put a list together or submit a PR with the results of any discussion here if that helps.

At the moment I'm keenly aware of a lack of a solid and safe Rtps implementation for Rust applications. So this crate is very exciting to see and I'd like to help pull this together however I can.

If there was some indication of what work underway, what's on the table, and what's down the road I think that'd help with contributing.

Hi @photex
I am working to get the IDL parser and code generator working
https://github.com/frehberg/rtps-gen

Objective is to read IDL and to generate corresponding Rust-types with all kinds of SERDE-framework tags. Having the code generator, it will be possible take custom or standard DDS/RTPS-IDL files and to generate the correspondig code.

Currently this implementation has some issues with some ifdef pre-processor macros.
Also, next release of Rustc will solve the issue with typed-discriminators.
These shall be solved with next version.

Hi @photex,
thank you for contribution to this project. In last weeks I was busy, so I was not able to deliver anything. As always we are open for any suggestions and help, so feel free to make PR's :).

As far as I remember, for now we have following status:

  1. Fast entire serialization/deserialization of messages/data types is done
  2. All base data types with some helpers/converters are ready to use
  3. Some draft types of discovery module are delivered
  4. Some testing regression is already delivered

Also version of RTPS 2.3 has been just released, so I think that it is good idea to apply all changes between 2.2 and 2.3 and start development of 2.3.

As @frehberg mentioned, he is working in parallel on the serialization and parsing of the user datatypes. Later we try to integrate both libraries, for now we can assume that user provides serialized bytes to be exchanged. From the list of things that can be done in the near future, entire discovery module is waiting for implementation (I think that it is the most interesting part :)).