pr4xis_runtime/lib.rs
1//! # pr4xis-runtime — load a `.prx` ontology as data, interpret it
2//!
3//! The data-driven half of the North Star "praxis = `.prx` files + a runtime".
4//! Where `pr4xis` is the COMPILE-TIME ontology model (the `ontology!` macro and
5//! the `Category` / `Functor` / `FreeCategory` traits) and `pr4xis-domains` holds
6//! the compiled-in ontologies, this crate is the RUNTIME: it loads a `.prx` —
7//! the serialized ontology — as DATA and interprets it, without the ontology
8//! being compiled in.
9//!
10//! ## The load/store cycle is the free ⊣ forgetful adjunction
11//!
12//! - A `.prx` is a free-category presentation: generators + relations +
13//! connections-as-action-on-generators — open-world-generic by construction.
14//! - **Load** deserializes the bytes into that free form — always possible, no
15//! compiled types required.
16//! - **Rebind** uses each connection's serialized action-on-generators as the
17//! interpretation a `FreeExtension` needs to map the free generators into a
18//! closed-world `Category`: partially (unknown generators stay free —
19//! graceful open-world) and faithfully (a generator rebinds to a concept only
20//! when their content [addresses](crate::address) agree).
21//!
22//! ## The runtime grounds only the hash
23//!
24//! Everything the runtime knows about the `.prx` FORMAT it learns from the
25//! meta-`.prx` (the ontology that defines the format). The one thing it cannot
26//! learn by reference — because it is what reference MEANS — is the
27//! content-address primitive ([`address`]). Identity bottoms out there.
28//!
29//! ## Status
30//!
31//! Scaffolding the runtime kernel. First primitive: [`address`] (the hash
32//! ground). The loader (bytes → free category), the rebind (`FreeExtension` →
33//! closed world), the canonical codec, and the meta-`.prx` interpreter land on
34//! top of it, per the consolidated build spine.
35
36pub mod address;
37pub mod apply;
38pub mod archive;
39pub mod codec;
40pub mod connection;
41pub mod definition;
42#[cfg(feature = "emit")]
43pub mod emit;
44pub mod grounding;
45pub mod load;
46pub mod meta;
47#[cfg(feature = "emit")]
48pub mod ontology;
49pub mod rebind;
50pub mod recursive_address;