Skip to content

Latest commit

 

History

History
55 lines (40 loc) · 2.98 KB

File metadata and controls

55 lines (40 loc) · 2.98 KB

DIS for Rust

release codecov

dis-rs is a suite of libraries and applications centered around the Distributed Interactive Simulation protocol (IEEE 1278.1), implemented in the Rust programming language and for use in Rust-based simulation applications.

This repository hosts a number of subprojects, each located in a specific directory:

  • dis-rs
    Foundational implementation of DIS (IEEE-1278.1, offering models, parsing, serialization and enumerations for DIS PDUs.
  • cdis-assemble
    Foundational implementation of C-DIS (SISO-STD-023-2024), offering models, parsing, serialization and conversion (to and from DIS) for C-DIS PDUs.
  • cdis-gateway
    CLI application for encoding/decoding DIS to/from C-DIS.
  • gateway-core
    Core library of traits and components to build network gateways handling (typically simulation) data.

See README.md of each project for more details.

Goal and vision

The goal of dis-rs is to provide the libraries and tools to use the DIS protocol in Rust-based applications Currently, the basic implementation of the most relevant DIS PDUs is present, making the library usable for simulation applications. Additionally, a gateway implementing C-DIS is available

We intend to develop this project into a suite of tools that make it easy to integrate DIS into applications, having:

  • A library that provides features beyond basic construction and usage of PDUs (reading/writing from a network using UDP sockets, heartbeats and dead reckoning logic, etc.)
  • Application(s) to monitor and manage DIS network traffic (statistics, network load, filtering, routing)
  • Application(s) to monitor DIS simulation data/state (map, view, interactions)

Supported versions and maturity

dis-rs focuses on versions 6 and 7 of the DIS protocol. Version 7 is considered leading, meaning that v6 PDUs are mapped to v7 models transparently to the user (regardless of the wire-format version).

Resources

License

This project is licensed under the MIT License.
See LICENSE file for details.