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.1.tar.gz (234.0 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.1-cp313-cp313-win_amd64.whl (239.9 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_engine-0.0.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (255.9 kB view details)

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

disco_engine-0.0.1-cp313-cp313-macosx_11_0_arm64.whl (232.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_engine-0.0.1-cp313-cp313-macosx_10_15_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

disco_engine-0.0.1-cp312-cp312-win_amd64.whl (239.9 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_engine-0.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (255.8 kB view details)

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

disco_engine-0.0.1-cp312-cp312-macosx_11_0_arm64.whl (232.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_engine-0.0.1-cp312-cp312-macosx_10_15_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

disco_engine-0.0.1-cp311-cp311-win_amd64.whl (239.4 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_engine-0.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (255.9 kB view details)

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

disco_engine-0.0.1-cp311-cp311-macosx_11_0_arm64.whl (232.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_engine-0.0.1-cp311-cp311-macosx_10_15_x86_64.whl (242.5 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

File details

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

File metadata

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

File hashes

Hashes for disco_engine-0.0.1.tar.gz
Algorithm Hash digest
SHA256 0ff9b7b53ec2bb66703160f976a21d3c6da60c324aa524c811f4eff3013d1e70
MD5 a0bc3936d4fde784b14a4a41db181606
BLAKE2b-256 17254b0090d1a7de9d4d6e48c1df69dbe0907ac54f07b47e562c309a49724905

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1.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.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fe843e40072be2369f9c31b68a09fcf77f36ef69c3a4ae59ca873002bf2b3235
MD5 e27e175df7e6f6712f1e66e9e531beca
BLAKE2b-256 8b927e77a13ad4f3c83126956760fccc93bb8cc1401d724a4743c3588b6385e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ff1ed0c393fd811a0092ba9647d3e7fd89e5772e9069b5cd560750834ad3409
MD5 582cbe5b22e5eb1a7e6f622810a9d44f
BLAKE2b-256 6036860636ec745dd2a9161c338c9704fa43c403b77f16fb73fa7aadb0b52f3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 59c61a60f53a91f04dbe46c852c39430f87d74e50afd39bfd718f7821d88f497
MD5 3dcbd6c61639fbb84175920c65ee2139
BLAKE2b-256 272cdaa87ba3eb4d4c1923b109c29b25f8f14f687886fc7228a165c704c08901

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e413196552dc0a74b6cb4009d4195c56f1f5686c4f1dd19ba7c73159ef232266
MD5 2be09231df91ad6ce1d358b52be39476
BLAKE2b-256 938dce442c25384de5a28bff7120dce5a1cfa645267e906bb690a83ea5e7d6f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2abbd57fc70b3ea73fa3a41cf2863a68c433a735535054f8b12ca1a4617a4bc3
MD5 0f99c91c58395335f7c6a85e7cb9dbc4
BLAKE2b-256 6750ab41837c17e0f6df3e128d9df2182e5f230f010b706779dd361139d2c220

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 598dacbf68fe65f77515fc9edfcde93aa5d507c1d21f1dedb36dfafa9ffd99d4
MD5 0dc1c04edbc1ea859718926e5a0a1861
BLAKE2b-256 7a01b806949405a89b44e3fa6f1292ecac4b964b5cda11ad7d7320ef01e75091

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba578433d9dfec03b75aba3e23549da102ac883fc84ecdb35ae6cbcaf1b688f5
MD5 def402028a30a4272a450e5482a1c10e
BLAKE2b-256 442592781b1707ea4b3a322139db63d05c8c9fcdbd37bc215a4bc029843e12b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 224c93dcdc574ef552206c48080894eea351c24c283979f0c44408592ab38b68
MD5 6d4f791716444a742878239bef4db405
BLAKE2b-256 c6325ca9948a586f73f58f5b2487f4b24fc8de56d8d94ae79538ca020cadd85d

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b1ee650b599633661992092c66787b0355d283b8a10acba716839605f997eaf9
MD5 e575896d9d45835cee0cb7c6f4ff074d
BLAKE2b-256 4ae8362481030fcc9a8fc0644543609f92c5c93333ab210d09d8b6fb0bb96f57

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 35bba461085da508618b24d720b1a34969ae6ca30765aa6bd0a917edf07b04b2
MD5 21498cda7f005c27ba355dcada6a1c4e
BLAKE2b-256 f37715ca86b3ca85013f60483ef1d23f4ea3ba591c2e289095d27145307641a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 711f4a3c655ad5078e60c802e030fad19fc65df091f39b01a142a264995c293b
MD5 7e1026c4566a3a24725fdeca1fe70fe0
BLAKE2b-256 470148307960b3efbea556146f4979fbdc8dffe7f5b52335798caac2a8fd9877

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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.1-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8f5c113114d6d3b146a9442212e66bc1d3f78a6654f57c9272e8a4df48240fe6
MD5 e2c0a9c4cffa5af82a6e75371f5c2a1a
BLAKE2b-256 9d13f92215e9f7889d822384f741ce849bcb4b94b86bc5df9eda2194ef9f70ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1-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