Skip to main content

An event-based network simulator optimized for federated and deep-space satellite networks.

Project description

DSNS: The Deep Space Network Simulator

The Deep Space Network Simulator (DSNS) is an event-based network simulator designed for efficient simulation of satellite networks and interplanetary communication, to facilitate protocol testing and development. The paper introducing it can be found on arXiv here.

When using DSNS, please cite the following paper: "DSNS: The Deep Space Network Simulator". The BibTeX entry is given below:

@inproceedings{smailesDSNS2025,
    author = {Smailes, Joshua and Futera, Filip and K{\"o}hler, Sebastian and Birnbach, Simon and Strohmeier, Martin and Martinovic, Ivan},
    title = {{DSNS}: {The Deep Space Network Simulator}},
    booktitle={2025 Security for Space Systems (3S)},
    year={2025},
    organization={IEEE}
}

Papers and projects which have used DSNS:

[!NOTE] To add your project to this list, or to merge your contributions with DSNS, feel free to submit a pull request.

Documentation

Further documentation can be found here: https://ssloxford.github.io/DSNS/

Installation

DSNS is distributed on PyPI, and can be installed using pip:

pip3 install dsns

However, many use cases will require modifications to the source code. For this reason, we recommend installation from source, using the --editable flag to ensure the code can be updated without requiring reinstallation. This can be done as follows:

git clone https://github.com/ssloxford/dsns.git
cd dsns
pip3 install --editable .

Dependencies are listed in pyproject.toml, at the root of the repository. We recommend the use of a virtual environment to reduce the likelihood of dependency conflicts.

Usage

We recommend looking in the examples directory for usage examples, or at the documentation for further instruction.

[!NOTE] The examples in examples/paper require simulation logs that are not bundled with this repository due to their size, and are provided for reference only. The logs can be obtained by running examples/ccsds_reference.py and examples/custom_reference.py with the arguments shown at the bottom of the respective file, or by contacting the authors.

Contributing

We welcome any contributions to DSNS, including but not limited to improved documentation, refactoring, new features, examples, and reference scenarios. To make a contribution, please add an issue to the tracker or create a pull request, and we will aim to merge any changes shortly. Please note that any code changes must come with corresponding changes to the documentation.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsns-1.0.0.tar.gz (72.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsns-1.0.0-py3-none-any.whl (75.8 kB view details)

Uploaded Python 3

File details

Details for the file dsns-1.0.0.tar.gz.

File metadata

  • Download URL: dsns-1.0.0.tar.gz
  • Upload date:
  • Size: 72.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dsns-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fd3ec491a1503f4c60203fd974ce63222286235f59e7e4f8cae1f666011033c0
MD5 7e9b56690edf1d99b5d41d8403075665
BLAKE2b-256 85d43df63dce5d328e3a955e9134c5f66be6ac4a630bf843a8a88fd7fd2249c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for dsns-1.0.0.tar.gz:

Publisher: release.yml on ssloxford/DSNS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dsns-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dsns-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 75.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dsns-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57c48231903b8a29f0501f85f71e3f3581647ea72f2140736f3e81535da49107
MD5 312ec019f565e5de5464e0afb8d99f95
BLAKE2b-256 bb13b0b50ef7daaec8837cb9785a0e34a2814d5b9aeb64e95e1800ad4e44d793

See more details on using hashes here.

Provenance

The following attestation bundles were made for dsns-1.0.0-py3-none-any.whl:

Publisher: release.yml on ssloxford/DSNS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page