I really like zerodds and the vision behind its broader ecosystem, including multi-language interoperability, CORBA integration, and related components.
However, in its current state (this is purely my personal opinion, so take it accordingly) I believe it would be more beneficial to focus primarily on Rust and the core crates.
Rust is still relatively new within the DDS ecosystem, and there is a strong need to establish a solid foundation first.
Once the Rust implementation is mature, well-tested and performant, it will be much easier to expand into other areas such as C/C++ bindings and additional components.
Focusing on Rust would not only help build a robust and reliable foundation, but also reduce the risk of spending limited development resources on crates or features that may see little to no adoption (nim programming language bindings).
Given that the community is still relatively small, concentrating efforts on the most critical pieces could provide the greatest long-term benefit.
I think the following crates are the most fundamental building blocks of the Rust ecosystem and deserve the highest priority:
DDS core components such as dcps, security, serialization, deserialization, and the other foundational building blocks of the stack
- A
DdsType macro for Rust to generate type information for all supported IDL types (struct, enum, union, etc.)
- An
IDL generator that translates IDL files into Rust files (or merges everything into a single flat file). The generator should "simply" generate the corresponding Rust's modules, structs, enums, etc., with all the required #[derive(...)] attributes, including the DdsType derive described above. This approach keeps the DdsType trait implementation generation in a single crate and significantly simplifies the IDL generator
- An
IDL build crate to generate Rust code at build time (build.rs). For simplification it wraps the IDL compiler
I really like
zeroddsand the vision behind its broader ecosystem, including multi-language interoperability, CORBA integration, and related components.However, in its current state (this is purely my personal opinion, so take it accordingly) I believe it would be more beneficial to focus primarily on
Rustand the core crates.Rustis still relatively new within theDDSecosystem, and there is a strong need to establish a solid foundation first.Once the
Rustimplementation is mature, well-tested and performant, it will be much easier to expand into other areas such asC/C++bindings and additional components.Focusing on
Rustwould not only help build a robust and reliable foundation, but also reduce the risk of spending limited development resources on crates or features that may see little to no adoption (nimprogramming language bindings).Given that the community is still relatively small, concentrating efforts on the most critical pieces could provide the greatest long-term benefit.
I think the following crates are the most fundamental building blocks of the Rust ecosystem and deserve the highest priority:
DDScore components such asdcps, security, serialization, deserialization, and the other foundational building blocks of the stackDdsTypemacro forRustto generate type information for all supportedIDLtypes (struct,enum,union, etc.)IDLgenerator that translatesIDLfiles intoRustfiles (or merges everything into a single flat file). The generator should "simply" generate the correspondingRust'smodules,structs,enums, etc., with all the required#[derive(...)]attributes, including theDdsTypederive described above. This approach keeps theDdsTypetrait implementation generation in a single crate and significantly simplifies theIDLgeneratorIDLbuild crate to generateRustcode at build time (build.rs). For simplification it wraps theIDLcompiler