Skip to main content

appcore_core/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/05/29 20:47:35 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/07/24 16:07:49 by dnettoRaw
8//      ###########      S: 1.0.1-rc.8
9// =============================================================================
10
11//! Public contracts for the `AppCore` runtime foundation.
12//! This crate defines generic types and traits only.
13
14#![deny(missing_docs)]
15
16/// Versioned, implementation-independent manifest contracts.
17pub use appcore_contracts as contracts;
18
19pub mod audit;
20mod audit_bounds;
21pub mod builder;
22pub mod bus;
23pub mod clock;
24pub mod command;
25pub mod context;
26pub mod controller;
27pub mod decision;
28pub mod envelope;
29pub mod error;
30pub mod event;
31pub mod event_bus;
32pub mod handler;
33pub mod idempotency;
34mod idempotency_encoding;
35mod idempotency_file;
36pub mod identity;
37pub mod ids;
38pub mod lifecycle;
39pub mod manifest;
40pub mod operational;
41mod operational_journal;
42mod operational_journal_encoding;
43pub mod plugin;
44pub mod redaction;
45pub mod registry;
46pub mod runtime;
47pub mod state;
48pub mod trace;
49
50pub use audit::{
51    AuditCategory, AuditEntriesSnapshot, AuditEntry, AuditLog, AuditLogStats, AuditOutcome,
52    AuditRecord, AuditRecordsSnapshot, DEFAULT_AUDIT_LOG_MAX_BYTES,
53};
54pub use builder::RuntimeBuilder;
55pub use bus::CommandBus;
56pub use clock::{Clock, SystemClock};
57pub use command::{CommandRegistry, RuntimeCommand};
58pub use context::RuntimeContext;
59pub use controller::RuntimeController;
60pub use decision::{DecisionEngine, DecisionNode, DecisionOutcome, DecisionRegistry};
61pub use envelope::{CommandEnvelope, EventEnvelope};
62pub use error::{RuntimeError, RuntimeResult};
63pub use event::{EventRegistry, RuntimeEvent};
64pub use event_bus::{EventBus, EventBusSnapshot, EventBusStats, DEFAULT_EVENT_BUS_MAX_BYTES};
65pub use handler::{CommandHandler, CommandResult};
66pub use idempotency::{
67    FileIdempotencyStore, IdempotencyStore, InMemoryIdempotencyStore, IDEMPOTENCY_FORMAT_V1,
68};
69pub use identity::{
70    CompatibilityStatus, CoreCompatibilityPolicy, CoreCompatibilityStatus, CoreIdentity, CoreKind,
71    RuntimeIdentity,
72};
73pub use ids::{
74    validate_distributed_identifier, validate_identifier, AppFamily, AppId, CapabilityName,
75    ClusterId, CommandName, CoreId, EventName, InstanceId, NodeId, ProtocolVersion, QueryName,
76    RuntimeContractVersion, StateName, SyncGroup, TenantId,
77};
78pub use lifecycle::{RuntimeLifecycle, RuntimeLifecycleEvent, RuntimeLifecycleState};
79pub use manifest::{
80    CapabilityDescriptor, CapabilityMode, CapabilityRequirements, CapabilityVisibility,
81    DistributedCoreManifest, PeerEndpoint,
82};
83pub use operational::RuntimeOperationalMode;
84pub use operational_journal::{
85    FileOperationalJournal, OperationalJournalRecord, OPERATIONAL_JOURNAL_FORMAT_V1,
86};
87pub use plugin::AppPlugin;
88pub use redaction::{redact_text, redact_text_with_limit, MAX_OPERATIONAL_TEXT_BYTES};
89pub use runtime::RuntimeInstance;
90pub use state::{RuntimeState, StateMachine, StateRegistry, StateTransition};
91pub use trace::TraceContext;