Skip to main content

blut_graph_core/
lib.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2//! Deterministic semantic graph compilation for ABIR-compatible module seams.
3//!
4//! This crate deliberately contains no filesystem, network, async-runtime, or
5//! biosignal-format dependency. A graph describes semantic nodes; compilation
6//! selects compatible kernels, validates all contracts, allocates bounded
7//! buffers, and emits one canonical plan for MCU, host, or durable execution.
8
9#![cfg_attr(not(feature = "std"), no_std)]
10#![forbid(unsafe_code)]
11
12extern crate alloc;
13
14mod compile;
15mod config;
16mod execute;
17mod mcu;
18mod model;
19mod plugin;
20mod wire;
21
22pub use compile::{CompileError, CompileLimits, Compiler, KernelRegistry, subgraph_identity};
23pub use config::{ConfigError, ConfigField, ConfigSchema, ConfigType, ConfigValue};
24pub use execute::{
25    ExecutionAttempt, ExecutionError, ExecutionFailure, ExecutionReceipt, ExecutionResult,
26    FailureEvidence, GapReceipt, KernelExecution, KernelExecutor, KernelGap, PlanExecutor,
27    StructuredFailure, TransactionalSink,
28};
29pub use mcu::{
30    MAX_STATIC_STEP_INPUTS, McuArenaRequirements, McuPlanError, StaticArenas, StaticExecutionError,
31    StaticExecutor, StaticKernel, StaticReceipt,
32};
33pub use model::{
34    AuthorizedPlan, BufferId, BufferPlan, Capability, CheckpointContract, CheckpointMode,
35    CompiledNode, CompiledPlan, CompiledPortContract, DelayContract, DelayInitial, Determinism,
36    DomainToken, DomainType, Edge, Effect, ExecutionRealm, ExtentContract, FailureContract,
37    FeedbackEdge, FeedbackId, FeedbackPlan, FidelityContract, Graph, GraphId, ImplementationId,
38    InputBinding, KernelDescriptor, KernelId, Layout, LayoutConversion, LeaseAccess, LeaseContract,
39    LeaseLifetime, MaterializedSubgraph, NodeDescriptor, NodeId, NodeInstance, NodeTypeRef,
40    OutputBinding, Partiality, PlanId, PolicyContract, PortDescriptor, PortMap, PortRef,
41    ProofContract, ResourceEnvelope, SessionContract, StateContract, StateScope, StepId,
42    SubgraphConfigMap, SubgraphId, SubgraphInterfacePort, SubgraphLowering, SubgraphNode,
43    SubgraphSchema, Target,
44};
45pub use plugin::{
46    ExecutableDigestAlgorithm, PLUGIN_PROTOCOL_VERSION, PluginControlFrame, PluginControlLimits,
47    PluginError, PluginFailure, PluginHost, PluginLifecycle, PluginManifest, PluginRequest,
48    PluginResponse, ProcessContract, TeardownPolicy, executable_digest,
49};
50pub use wire::{PlanAuthorization, PlanDecodeError, PlanLimits};