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 batched;
16pub mod config;
17pub mod egress;
18pub mod epoch;
19pub mod ingress;
20pub mod lockstep;
21pub mod metrics;
22mod overlay;
23pub mod realtime;
24pub mod ring;
25pub mod tick;
26pub(crate) mod tick_thread;
27
28pub use batched::{BatchError, BatchResult, BatchedEngine};
29pub use config::{AsyncConfig, BackoffConfig, ConfigError, WorldConfig};
30pub use epoch::{EpochCounter, WorkerEpoch, EPOCH_UNPINNED};
31pub use ingress::{DrainResult, DrainedCommand, IngressQueue};
32pub use lockstep::{LockstepWorld, StepResult};
33pub use metrics::StepMetrics;
34pub use realtime::{RealtimeAsyncWorld, RealtimePreflight, ShutdownReport, SubmitError};
35pub use ring::SnapshotRing;
36pub use tick::{TickEngine, TickError, TickResult};