Skip to main content

murk_engine/
lib.rs

1//! Simulation engine orchestrating Murk environments.
2//!
3//! Provides [`LockstepWorld`] for synchronous simulation and
4//! [`RealtimeAsyncWorld`] for background-threaded simulation with
5//! concurrent observation extraction.
6//!
7//! Both modes are backed by the internal [`TickEngine`] that manages the
8//! simulation loop, coordinating arenas, spaces, propagators, and
9//! observation extraction.
10
11#![deny(missing_docs)]
12#![deny(rustdoc::broken_intra_doc_links)]
13#![forbid(unsafe_code)]
14
15pub mod config;
16pub mod egress;
17pub mod epoch;
18pub mod ingress;
19pub mod lockstep;
20pub mod metrics;
21mod overlay;
22pub mod realtime;
23pub mod ring;
24pub mod tick;
25pub(crate) mod tick_thread;
26
27pub use config::{AsyncConfig, BackoffConfig, ConfigError, WorldConfig};
28pub use epoch::{EpochCounter, WorkerEpoch, EPOCH_UNPINNED};
29pub use ingress::{DrainResult, DrainedCommand, IngressQueue};
30pub use lockstep::{LockstepWorld, StepResult};
31pub use metrics::StepMetrics;
32pub use realtime::{RealtimeAsyncWorld, ShutdownReport, SubmitError};
33pub use ring::SnapshotRing;
34pub use tick::{TickEngine, TickError, TickResult};