{"id":40204486,"url":"https://github.com/open-dis/open-dis-cpp","last_synced_at":"2026-01-19T20:35:22.698Z","repository":{"id":14025162,"uuid":"75680704","full_name":"open-dis/open-dis-cpp","owner":"open-dis","description":"C++ implementation of the IEEE-1278.1 Distributed Interactive Simulation (DIS) application protocol v6 and v7","archived":false,"fork":false,"pushed_at":"2025-12-05T21:23:24.000Z","size":13083,"stargazers_count":113,"open_issues_count":16,"forks_count":76,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-12-09T11:09:20.397Z","etag":null,"topics":["dis","library","protocol","simulation-framework"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-dis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-12-06T01:04:39.000Z","updated_at":"2025-12-05T21:23:28.000Z","dependencies_parsed_at":"2024-01-14T00:47:04.482Z","dependency_job_id":"214c1d6f-e88e-4d17-9973-550a526ba919","html_url":"https://github.com/open-dis/open-dis-cpp","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/open-dis/open-dis-cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-dis%2Fopen-dis-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-dis%2Fopen-dis-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-dis%2Fopen-dis-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-dis%2Fopen-dis-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-dis","download_url":"https://codeload.github.com/open-dis/open-dis-cpp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-dis%2Fopen-dis-cpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28583935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T19:46:29.903Z","status":"ssl_error","status_checked_at":"2026-01-19T19:45:54.560Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dis","library","protocol","simulation-framework"],"created_at":"2026-01-19T20:35:22.459Z","updated_at":"2026-01-19T20:35:22.629Z","avatar_url":"https://github.com/open-dis.png","language":"C++","readme":"# open-dis-cpp\nA C++ implementation of the Distributed Interactive Simulation (DIS) application protocol IEEE-1278.\n\nNote: This code base was originally auto generated with [xmlpg](https://github.com/open-dis/xmlpg).\n\n[![Travis (Linux) Build Status](https://app.travis-ci.com/open-dis/open-dis-cpp.svg?branch=master)](https://app.travis-ci.com/open-dis/open-dis-cpp)\n[![Build status](https://ci.appveyor.com/api/projects/status/nt6t12a654j91osg?svg=true)](https://ci.appveyor.com/project/leif81/open-dis-cpp)\n[![CodeDocs status](https://codedocs.xyz/open-dis/open-dis-cpp.svg)](https://codedocs.xyz/open-dis/open-dis-cpp/)\n\n## Building Open DIS\n\n* [CMake](http://cmake.org/) is required to build the platform specific projects.\n  It can be downloaded and installed from http://cmake.org/\n\n* SDL2 and SDL2_net are required libraries to compile the examples.\n  These can usually be install via Linux package managers.\n  More details, and instructions for Windows are included [below](#SDL2-and-SDL2_net-Install-Instructions).\n\n  **NOTE:** Windows users will need to either add the DLL folders to their path, or copy the DLLs to the output directory (`Debug`).\n\n### OpenDIS Build Options\n\nThe OpenDIS build system accepts several build options to control compilation. The following options are available:\n\n* **BUILD_SHARED_LIBS** - Boolean value to specify whether to build OpenDIS libraries as shared (ON/TRUE) or static (OFF/FALSE). Default is ON.\n* **BUILD_EXAMPLES** - Boolean value to specify whether to build example sender/receiver applications. Default is OFF.\n* **BUILD_TESTS** - Boolean value to specify whether to build unit tests. Default is OFF.\n\nExample application build options. Only valid if **BUILD_EXAMPLES** is enabled.\n\n* **SDL2_PATH** - Installation path of SDL2\n* **SDL2_NET_PATH** - Installation path of SDL2_net\n\nThese options are passed to cmake as arguments. Example: `cmake -DBUILD_SHARED_LIBS=ON -DBUILD_EXAMPLES=ON ..`\n\n### Linux / GNU Makefiles\n\n1. Run `mkdir build`\n1. Run `cd build`\n1. Run `cmake ..`\n  1. Optionally, `-DCMAKE_INSTALL_PREFIX=\u003ccustom-path-to-install\u003e` to set a custom directory to install the bin, include, and lib output directories.\n1. Run `make` - this will output the libOpenDIS6.so, and libOpenDIS7.so libraries in the build directory along with the Example Applications.\n1. The below steps are optional\n  1. Run `make package` to build Linux package files. Currently this will produce a Red Hat RPM package, Debian DEB package, and 2 compressed tarball (XZ, GZ).\n  1. Run `make install` to install bin, lib, and dir, into `CMAKE_INSTALL_PREFIX`\n     WARNING: `CMAKE_INSTALL_PREFIX` default can to somewhere `/usr/local/`, if not specified with the `-D` flag as shown in Step 3.1.\n     If you're unsure where to install, and want to keep your `/usr/local/` directory clean, run `cmake .. -DCMAKE_INSTALL_PREFIX=./install`.\n     This will cause `make install` to create a local install directory, from which you can move files elsewhere at a later date.\n\n#### Windows with Visual Studio\n1. Open `CMake (cmake-gui)` via the the start menu.\n2. Enter the open-dis-cpp directory path into the Source and Build fields.\n3. Click the `+ Add Entry` button and enter the following details:\n  Name: `SDL2_PATH`\n  Type: `PATH`\n  Value: `\u003cSDL2-install-folder\u003e`\n  (if you follow the below [SDL2 Windows Install Instruction](#Windows-Install-Instructions) this will be `C:/SDL2`)\n3. Click the `+ Add Entry` button and enter the following details:\n  Name: `SDL2_NET_PATH`\n  Type: `PATH`\n  Value: `\u003cSDL2-install-folder\u003e`\n  (if you follow the below [SDL2 Windows Install Instruction](#Windows-Install-Instructions) this will be `C:/SDL2`)\n3. Click the `+ Add Entry` button and enter the following details:\n  Name: `CMAKE_LIBRARY_ARCHITECTURE`\n  Type: `STRING`\n  Value: `x64` (64 bit) or `x86` (32 bit)\n4. Click Configure and follow the prompts, selecting the correct generator (i.e. Visual Studio version).\n5. Click Generate\n6. Click Open Project - This should open the generates solution file in Visual Studio\n7. Build the Solution (`Ctrl + Shift + B`)\n\nThese steps were tested with Visual Studio 16 2019 (Community Edition).\nCurrently, only OpenDIS 6 and the Example Applications compile.\nThe library and executable files are output to a `Debug` directory.\n\nTo run the executables, either the value of the `SDL2_PATH/lib/CMAKE_LIBRARY_ARCHITECUTRE` should be added to your path,\nor `SDL2.dll` and `SDL2_net.dll` need to be copied to the `Debug` directory.\n\n### Cleaning CMake files\n\nTo quickly clean up CMake output files, use `git clean -xdf`.\n**Note:** Use with care if you are actually developing open-dis-cpp, as `git clean` removes untracked files.\n\n### Old Pre-make build instructions\n\n* [premake5](http://premake.github.io/) is required to build the platform specific projects. Download it and make sure it's available on your path, or specify the path to it.\n\n#### Linux / GNU Makefiles\n1. Run `premake5 gmake`\n1. Run `make config=release`\n\n\n#### Windows with Visual Studio 2015\n1. Run `premake5 vs2015`\n1. Open the solution and build.\n\n## Developer Docs\n\nThe latest doxygen docs for the Open DIS master branch can be found [here](https://codedocs.xyz/open-dis/open-dis-cpp/).\n\n## SDL2 and SDL2_net Install Instructions\n\n### Linux Package Managers\n\nArch: ```sudo pacman -S sdl2 sdl2_net```\n\nFedora: ```sudo dnf install SDL2-devel SDL2_net-devel```\n\nUbuntu: ```sudo apt-get install libsdl2-dev libsdl2-net-dev```\n\nIf you're unable to install the correct packages, try [installing from source](#POSIX-Source-Installation)\n\n### Windows Install Instructions\n\nThese are the installation steps that have been tested with open-dis-cpp, however there are other methods for installation.\nExperienced users should feel free to customise their install.\n\n#### (Core) SDL2 Instructions\n\n1. Navigate to the SDL2 [Download](https://www.libsdl.org/download-2.0.php) page, and download the latest Development Libraries.\n\n   Alternatively, the version tested with open-dis-cpp, 2.0.12-VC, can be downloaded from this [direct link](https://www.libsdl.org/release/SDL2-devel-2.0.12-VC.zip).\n\n2. Extract the SDL2-devel-2.0.12-VC.zip file directly to your `C:\\`.\n3. Rename the resulting `SDL2-2.0.12` folder to `SDL2`.\n4. Add `C:\\SDL2\\lib\\x64` to your System Path for 64-bit systems,\n   or add `C:\\SDL2\\lib\\x86` for 32-bit systems.\n\n#### SDL2_net Instructions\n\n1. Navigate to the SDL2_net [project](https://www.libsdl.org/projects/SDL_net/) page, and download the latest Development Libraries.\n\n   Alternatively, the version tested with open-dis-cpp, 2.0.1-VC, can be downloaded from this [direct link](https://www.libsdl.org/projects/SDL_net/release/SDL2_net-devel-2.0.1-VC.zip).\n\n2. Extract the SDL2-devel-2.0.12-VC.zip\n3. Copy the `include` and `lib` directories from the resulting folder into you `C:\\SDL2\\` folder\n\n### POSIX Source Installation\n\n#### (Core) SDL2\nRun the following commands:\n1. `wget http://libsdl.org/release/SDL2-2.0.12.tar.gz`\n\n   Or, Download via your favourite web browser.\n\n   **NOTE:** check the [download](https://www.libsdl.org/download-2.0.php) page for new releases\n\n2. `tar -xvf SDL2-2.0.9.tar.gz`\n3. `pushd SDL2-2.0.9/`\n4. `./configure --prefix=/usr \u0026\u0026 make \u0026\u0026 sudo make install`\n5. `popd`\n\n#### SDL2_net\n1. `wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.0.1.tar.gz`\n\n   Or, Download via your favourite web browser.\n\n   **NOTE:** check [https://www.libsdl.org/projects/SDL_net](project) page for new releases\n\n2. `tar -xvf SDL2_net-2.0.1.tar.gz`\n3. `pushd SDL2_net-2.0.1/`\n4. `./configure --prefix=/usr \u0026\u0026 make \u0026\u0026 sudo make install`\n5. `popd`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-dis%2Fopen-dis-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-dis%2Fopen-dis-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-dis%2Fopen-dis-cpp/lists"}