Skip to main content

limen_runtime/
lib.rs

1// Copyright © 2025–present Arlo Louis Byrne (idky137)
2// SPDX-License-Identifier: Apache-2.0
3//
4// Licensed under the Apache License, Version 2.0.
5// See the LICENSE-APACHE file in the project root for license terms.
6
7#![cfg_attr(not(feature = "std"), no_std)]
8#![warn(missing_docs)]
9#![deny(unsafe_code)]
10//! # limen-runtime
11//!
12//! **Limen Runtime** provides concrete runtime and scheduler implementations
13//! for executing Limen graphs. Runtimes implement the [`LimenRuntime`] trait
14//! defined in `limen-core`; schedulers implement [`DequeuePolicy`] (sequential)
15//! or [`WorkerScheduler`] (concurrent).
16//!
17//! > **Status: skeleton.** Module structure and scheduling algorithms are
18//! > designed and partially implemented (see commented code). Full activation
19//! > is tracked by the `RS1` runtime lifecycle and `Q1` test overhaul planned
20//! > items. The `limen-examples` integration tests drive the currently active
21//! > test runtimes (`TestNoStdRuntime`, `TestScopedRuntime`) defined in
22//! > `limen-core::runtime::bench`.
23//!
24//! ## Modules
25//!
26//! - [`runtime`] — P2 single-thread and concurrent runtime implementations.
27//! - [`scheduler`] — EDF and throughput `DequeuePolicy` implementations.
28//!
29//! ## Feature Flags
30//!
31//! | Flag | Effect |
32//! |------|--------|
33//! | *(default)* | `no_std`, no heap; single-thread runtime |
34//! | `alloc` | enables `alloc`-backed runtime variants |
35//! | `std` | implies `alloc`; enables `ScopedGraphApi`-based concurrent runtime |
36//!
37//! [`LimenRuntime`]: limen_core::runtime::LimenRuntime
38//! [`DequeuePolicy`]: limen_core::scheduling::DequeuePolicy
39//! [`WorkerScheduler`]: limen_core::scheduling::WorkerScheduler
40
41#[cfg(feature = "alloc")]
42extern crate alloc;
43
44pub mod runtime;
45pub mod scheduler;