# DIS-rust
[](https://forthebadge.com)
[](https://forthebadge.com)





A rust implementation of the DIS simulation protocol.
## Getting Started
Introductions to DIS can be found here:
- [Integrating the DIS Standards Into a Fully-Immersive Simulation Application](http://open-dis.org/searis_paper40-1.pdf)
- [DIS Plain and Simple: an Introduction to DIS](https://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwjQs8HsoPvVAhVi4IMKHZHyC_cQFggoMAA&url=https%3A%2F%2Fwww.sisostds.org%2FDigitalLibrary.aspx%3FCommand%3DCore_Download%26EntryId%3D29302&usg=AFQjCNHbhiBCVmEDrTaWZBD2tFUWKg4yVw)
Currently supported DIS PDUs are:
- [Entity State PDU](https://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/29.htm)
- [Fire PDU](https://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/7c.htm)
- [Detonation PDU](https://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/84.htm)
- [Event Report PDU](https://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/disEnumerations/JdbeHtmlFiles/pdu/b3.htm)
Note that it is up to the application to decode simulation-specific enumerations. A good starting point are [the SISO enumerations](https://www.sisostds.org/ProductsPublications/ReferenceDocuments.aspx).
### Prerequisites
Requirements for the software and other tools to build, test and push:
- [rust](https://www.rust-lang.org/carg)
- [cargo](https://doc.rust-lang.org/cargo/)
- [clippy](https://github.com/rust-lang/rust-clippy)
### Installing
The easiest way to include this crate in your project is to simply add the
following to your Cargo.toml file:
```toml
dis-rust = "0.1.0"
```
### Documentation
Further documentation can be found on [docs.rs](https://docs.rs/dis-rust/latest/dis-rust/).
## Running the tests
Unit tests can be run using cargo:
```bash
cargo test
```
### Style tests
Clippy will complain about the linting within dis-rust due the DIS enumerations.
Rustc will complain about the DIS procotol version enumerations in the PDU header record.
These warnings have been disabled in-line within the source code.
## Versioning
We use [Semantic Versioning](http://semver.org/) for versioning. For the versions
available, see the [tags on this
repository](https://gitlab.com/TomMann/dis-rust).
## Authors
- **Thomas Mann** - *Original Author* -
[tom.mann@coffeebreakdevs.co.uk](mailto:tom.mann@coffeebreakdevs.co.uk)
## License / Copyright
This project is dual licensed under the [AGPLv3.0](LICENSE)
License - see the [LICENSE](LICENSE) file for
details.
It is also available under a commerical license. Please email
[contact@coffeebreakdevs.co.uk](mailto:contact@coffeebreakdevs.co.uk) for more details.
Copyright (C) 2022 Thomas Mann