Days

Nexosim

The discrete-event simulation engine that powers Days.

Days is built on top of Nexosim, a Rust discrete-event simulation engine (vendored under days/crates/nexosim).

At a high level, Nexosim provides:

  • an actor-like model API (trait Model)
  • mailboxes for delivering events/requests to models
  • typed output ports (Output<T>) for message passing
  • a scheduler + executor that advances simulation time in discrete steps

If you only want a conceptual picture, start with /docs/architecture/simulation-engine.

Where to read in the code

  • Core crate root: days/crates/nexosim/src/lib.rs
  • Simulation lifecycle + stepping: days/crates/nexosim/src/simulation.rs
  • Ports and message delivery: days/crates/nexosim/src/ports.rs
  • Executors (ST/MT): days/crates/nexosim/src/executor.rs
  • Time types: days/crates/nexosim/src/time.rs

Documentation

Upstream API docs are available on docs.rs (if you depend on Nexosim as a crate). The vendored version in this repo tracks the same conceptual API but may include local changes.

On this page