murk-arena
Arena-based generational allocation for the Murk simulation engine.
- Double-buffered ping-pong arenas alternate between staging (writable) and published (readable) roles
- Three field mutability classes: Static (generation-0 forever), PerTick (fresh each tick), Sparse (copy-on-write)
- Zero-copy snapshots via generation-tracked buffer swaps
- Deterministic memory lifetimes with no GC pauses and no
Box<dyn>per cell
This is an internal crate. Most users should depend on the top-level
murk crate instead.
Installation
Most users should depend on the top-level murk crate,
which re-exports this as murk::types.
When to use directly
Depend on this crate directly only if building custom crates outside the Murk workspace or need minimal dependencies.
Usage
murk-arena is used internally by the engine. Users rarely interact
with it directly. The primary types are PingPongArena (the
double-buffered allocator), Snapshot (read-only view of published
state), and ArenaConfig (capacity tuning):
use ArenaConfig;
let config = new;
assert_eq!;
assert_eq!;
PingPongArena is constructed by the engine with field definitions
and a shared static arena. See murk-engine for the user-facing API.
Documentation
- Murk Book — concepts and guides
- API Reference — rustdoc
- Examples — complete working projects