Skip to main content

A distributed event simulation core (disco) engine.

Project description

🧾 Disco Engine

Disco Engine is a Python-based distributed discrete-event simulation core (“distributed simulation runtime”). It’s designed to run large, structured simulations (e.g., supply-chain / networked process models) by executing many independent NodeRuntimes that exchange events and promises over pluggable transports.

  • Deterministic single-threaded stepping per worker process
  • Scales out via multiple workers and transport backends
  • Built for “engine + plugins” (models as Python packages)

PyPI License: Apache-2.0 Build Tests


Overview

At a high level, a Disco simulation is:

  • a Layered Graph (scenario) that defines structure and data access,
  • a Model plugin that defines simulation logic,
  • an Experiment that defines parameters and run configuration,
  • one or more Workers that host NodeRuntimes and step the simulation.

For local debugging and unit tests, Disco also includes a lightweight TestRun that executes a single, unpartitioned run without threading, metastore/cluster coordination, or external transports.


✨ Features

  • Worker lifecycle & state machine for long-lived simulation processes
  • Routing + transports (in-process, IPC, gRPC) for node-to-node delivery
  • Partitioning to distribute nodes across workers (production), while keeping deterministic node order per worker
  • TestRun for fast local runs without infrastructure (single-process, in-process transport only)
  • Data logging via an optional DataLogger

🚀 Installation

pip install disco-engine

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

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

disco_engine-0.0.6.tar.gz (604.1 kB view details)

Uploaded Source

Built Distributions

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

disco_engine-0.0.6-cp313-cp313-win_amd64.whl (255.6 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_engine-0.0.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_engine-0.0.6-cp313-cp313-macosx_11_0_arm64.whl (248.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_engine-0.0.6-cp313-cp313-macosx_10_15_x86_64.whl (259.3 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

disco_engine-0.0.6-cp312-cp312-win_amd64.whl (255.6 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_engine-0.0.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_engine-0.0.6-cp312-cp312-macosx_11_0_arm64.whl (248.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_engine-0.0.6-cp312-cp312-macosx_10_15_x86_64.whl (259.2 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

disco_engine-0.0.6-cp311-cp311-win_amd64.whl (254.9 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_engine-0.0.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_engine-0.0.6-cp311-cp311-macosx_11_0_arm64.whl (248.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_engine-0.0.6-cp311-cp311-macosx_10_15_x86_64.whl (258.2 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

File details

Details for the file disco_engine-0.0.6.tar.gz.

File metadata

  • Download URL: disco_engine-0.0.6.tar.gz
  • Upload date:
  • Size: 604.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for disco_engine-0.0.6.tar.gz
Algorithm Hash digest
SHA256 5375cb22d49dbed6fd124bf89bc6ce2f95029975a8b5b545c0f365d255a9ad27
MD5 0a89e077ef5bbd2f7e5d974f17c024c1
BLAKE2b-256 0020316ec33a16a55ef760fecc3d4eed4b6fe0caf19e43ae2fe33b5d10e393a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6.tar.gz:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 769ae2b2b61b65857100006bb9c5bd322e0759459a07842444c74dbbdecf5675
MD5 f6868446e2b77d85699b0d6a81544f72
BLAKE2b-256 6915b93b2201b737ba2ff46464bb91a387f832a3d6ce83eeb292e54459f86556

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp313-cp313-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c95027fa9cbc01001ab3a7a3664cfc545f55e78b19a3337c187c5ddb2a1b3904
MD5 90003a78c5bd9b6c8516fec6f99ef953
BLAKE2b-256 21a2577e54c88f830478a8643e0ec79faff3a908d23c12c5a58f52c6f127da7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32bd99f8966e59eeb2e9dcf316917038fb48684b2c2f839c49d46c74fa843497
MD5 e4853d6f23f7576727404dfc63232134
BLAKE2b-256 9d9bfe9ad1e7b0da9b9bddec5f8b90f133747c7d59f420119c7b29c6a162c3e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3082e5928ded51de3988ba7ec17082a1c7d6a82206e60f5143087e9cefa6337a
MD5 ecc44bfde9a23cf5b50954c608c5d4de
BLAKE2b-256 72e3daa2e9187a53fa137511e02e00453f90c8da51f9d48233723ca9301fce3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp313-cp313-macosx_10_15_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 054fc22c4278fa1a8820bd4cbfece36220a88fb77f9c0c6b163e55239826f8e3
MD5 131fa8b4f9625bb5168a7ff922531cd1
BLAKE2b-256 9a366b634157843d640b863f18096f11d2ac1e807f3d9e85b9f1c514757e4cf4

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp312-cp312-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc8c5b13fa2af544623da475ca0aea16fd3d2767ba30266e245c6a0f76f82085
MD5 1b23b95dd6a124e2ab92c1de8c6423c3
BLAKE2b-256 8f1bdb4e7bff1f4e9460564baca3148a24985f4e191c745d37911b53a2e9e4e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8de449d47609cb62c5167a287f424d988bf514eab83e50136e4059bb376a27d
MD5 a00dea951cd4bbcd1ffb7f62895ea065
BLAKE2b-256 61838fb2b4127d8692472203e3a1564cad1ee67b27fa7e3ac81ba2cc9957c8e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7ca7294ad14edcc2e62ff828a9a0531d5ddf5d6577bc2f6daaed110e45a26671
MD5 b6e30676583e664db086459580f7299d
BLAKE2b-256 45f4e3f790a2b10f8db9c62dac55f804d857fba8b16b358dc2b17c2629e4e582

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp312-cp312-macosx_10_15_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ecae14ef3659c7e1e1242e3078c3f7098ca822e5242b45d29a7ae148fa99619f
MD5 e363070d42933dcc0813833e578b5dbf
BLAKE2b-256 0729c6e2f8540131355db1e3da3cd7ee81e6e345fa8197c3e40c617d9e1a654c

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp311-cp311-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c72d0f43046902dac5f28035e7d7bad37507ad8c7262c33265c2162040d0e1e9
MD5 5e3de1f47b072544f05585c8014bd40c
BLAKE2b-256 f2db5a58f43f284a8ed585d0be0d00a4894dd28706594fc388b97f30ef0f13b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d01e8270203b2e00c7df9f98e34e083ddcb4923ed2570ef7e4d87e6ca5e9cdaa
MD5 4de7c8d448036211e305c4008421f60f
BLAKE2b-256 b1ce6dcf05ab994a10e665fd53c2228b17d138ff88c4fba2f5e107d88d164195

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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

File details

Details for the file disco_engine-0.0.6-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.6-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cca9f6844fef3259127bf9c3076633a6028f8ec4aba14ce08a84ff70461e5776
MD5 4c3bc7aa7c894a57a6da4962eea74a73
BLAKE2b-256 42e629487f85275d5e432cb6ef1f66c49b404aaccdbd043c908b7e7c80347627

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.6-cp311-cp311-macosx_10_15_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

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