dis-rust 0.1.1

A rust implementation of the DIS simulation protocol.
Documentation
# DIS-rust


[![forthebadge](https://forthebadge.com/images/badges/made-with-rust.svg)](https://forthebadge.com)
[![forthebadge](https://forthebadge.com/images/badges/powered-by-coffee.svg)](https://forthebadge.com)

![forthebadge](https://img.shields.io/docsrs/dis-rust?style=for-the-badge)
![forthebadge](https://img.shields.io/maintenance/yes/2022?style=for-the-badge)
![forthebadge](https://img.shields.io/crates/d/dist-rust?style=for-the-badge)

![forthebadge](https://img.shields.io/crates/l/dis-rust?style=for-the-badge)
![forthebadge](https://img.shields.io/crates/v/dis-rust?style=for-the-badge)

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