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.5.tar.gz (274.2 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.5-cp313-cp313-win_amd64.whl (255.1 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_engine-0.0.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.0 kB view details)

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

disco_engine-0.0.5-cp313-cp313-macosx_11_0_arm64.whl (247.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_engine-0.0.5-cp313-cp313-macosx_10_15_x86_64.whl (258.8 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

disco_engine-0.0.5-cp312-cp312-win_amd64.whl (255.1 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_engine-0.0.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.0 kB view details)

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

disco_engine-0.0.5-cp312-cp312-macosx_11_0_arm64.whl (247.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_engine-0.0.5-cp312-cp312-macosx_10_15_x86_64.whl (258.8 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

disco_engine-0.0.5-cp311-cp311-win_amd64.whl (254.6 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_engine-0.0.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.1 kB view details)

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

disco_engine-0.0.5-cp311-cp311-macosx_11_0_arm64.whl (247.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_engine-0.0.5-cp311-cp311-macosx_10_15_x86_64.whl (257.7 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: disco_engine-0.0.5.tar.gz
  • Upload date:
  • Size: 274.2 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.5.tar.gz
Algorithm Hash digest
SHA256 5b87d36bb076d3a4f2160ddab909e16ab7dd26d64329f4bc6d91daaaeb1ed020
MD5 2e44f1f635843bdbb5169c57f031af55
BLAKE2b-256 c0e84198c7952a3c3e325db145080c83e8aee930c8be6d6f615e7ba3b2e6729a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c070e89ecc3e7af9434449fdd5cefcf2f1e676032bc285461b79baf0966bdb0a
MD5 7ecdfffc4c528f6cbbfe4439a7958673
BLAKE2b-256 ff62380789b1f6005284cb40a6430d79ade494d969e505fc034acfee04df36a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e0ca167615804e78a237b36af801ed860a7a5edd24ed8a910590087e49c7d2a
MD5 8ece6f372ac74084cdc3430311f56a40
BLAKE2b-256 87fec637675083e58d490f7df5934bc01c984a2e8bc6414dcbd37d34d26db1f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e17505735402b4c82efc40b989ce718c681cb66a676d881fcbf0970e21021419
MD5 ed7eef93a0aed0603a0a26e9466f505f
BLAKE2b-256 e88eb58962024cc133ab64bc7740c50e8044bd01ce455d886d7cb97dc038ab22

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1704245e13d6a97dbda0aca7380d42ea7aab8d3201ddca8db112f89dea9d57df
MD5 ec2043ab1800899c334d419a04abbaf9
BLAKE2b-256 d62a046105805551e49a60bd4096b621482d4767a6b577ae6b71adca88733ed6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5ff896992749176e383d9622e2ccf04ea4103201244079fec916978bd5f22fdc
MD5 ff5c45546fcfb5507ab775e2c97a7b02
BLAKE2b-256 261ef11670bc69e71e50537381bdab6750001036794254a884f8a632b51c1b82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2bc9b5f10908567ba28287cb6950b1475a1e15e31fd074893275bfac8354015
MD5 c990bbae7db2db0130c4fc96e69124d7
BLAKE2b-256 d854d91be8485fa6a19bfbc72a0d7fb2d772833ea8a729335736ae7019595ae2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 671dc2f1c648004dbd75d043e503c24eabdd9f3e26dcf33588bd0d159feb54f3
MD5 1f34e3bb85e50af8a740ff94288d1fd8
BLAKE2b-256 ac33a2b5427539e2dfbd8bb90e53e74b52cc3cb2d5a8339bbf92c92b64af2cba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 10c965302fc4d1c7a0444fe63feb22f6df4ccc75e3dc2623e66fc77025bbcefa
MD5 b2b41e43a79b6ddc4f49f63475c64056
BLAKE2b-256 6dbfad8d05f971a0724d76b6603ab60263b54ebdb9a45f1b0350c75fd0cf75a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8a0aefb761f49ae0bf4b1dea55823b1eca57a7cc141fcb0e4c9e17df4555e8e4
MD5 719d834cc1a2ba171d123da6c7741478
BLAKE2b-256 9aceb33437d8d54448db21200a5a90588078ff4ce5f77ac31b50d009d1032f6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ee0558b292ba5b0406d922fa0a6745d2fd556994f34a3d2f3e23c1f25284826
MD5 9026ac704ca778ece5ceef32e46ccc1e
BLAKE2b-256 87d8366bc4751141731dc5dba1b1f83f804c839853ff04fe36a52100eaaf1a56

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 058624ee6972f7cae5c8229e953e120e36578e9006ab3e596ab7d26cda730f70
MD5 8bd09ee2ef3cb86a15f0c1d3a028f191
BLAKE2b-256 446ba837de5f6ee512fa63dab1477a868869de177e4c089b957276b4cf53ccd0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.5-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c185dbae61d6942eef973070f6532a430580438651824703955fd341e7f8f203
MD5 bc85cb1b8df2db65bb368063a3a85e1d
BLAKE2b-256 720bdd7f6dbcc7318bd33a19e77683e913b2572cad9f1a96f1cae1fbf1dc6b3b

See more details on using hashes here.

Provenance

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