In tandem with creating an Open DIS package for Rust, I have also been working on modernizing an existing C++ library implementation of the standard. The original library can be found here. The original was autogenerated using an XML parser library that read in the IEEE’s documentation and output C++ code that implemented classes for all the PDUs defined within. This code is several years old and does not adhere to modern C++ style and standards. It is also bug-prone, and it has not received much TLC since its inception. I originally opened a PR in an attempt to clean it up, but I decided that the changes needed to actually complete it and modernize it warranted its own project. With that, opendis6 and opendis7 were born. The latter library has not been implemented yet, but it will be released in the future. For now, opendis6 is available on GitHub via source or on conan.io as a Conan package.
The “6” in the library name is in reference to the sixth revision of the standard: IEEE 1278.1a-1998. This is still widely used across the industry for distributed simulations, so it is vital that it is modernized and kept tidy. As for the “7” in the opendis7 library, that refers to the seventh and latest revision: IEEE 1278.1-2012. Although it is the latest version of the standard, developers can be stubborn when it comes to managing versions of dependencies. Moving to the latest technologies or standards can be challenging, and the effort to migrate to the latest and greatest can sometimes outweigh the benefits. I will eventually get opendis7 released, but it is not much of a priority with the previous thought in mind.
I will continue to maintain opendis6 for as long as I can, but the current version should suffice for most applications. There are a few more improvements I want to add, so subsequent releases should be expected. In the meantime, I will also continue my efforts to get the Rust crate in a releasable state. As with all things, I will post updates to this website.
If users notice any bugs or issues, please report them on the GitHub by opening an Issue or Bug Report. If anyone has changes they want to make, feel free to open a PR and tag me as a reviewer.

