Skip to main content

Crate phon_engine

Crate phon_engine 

Source
Expand description

The backend-blind baseline engine.

Compact (schema-driven) encode/decode, compatibility planning that turns a (writer schema, reader schema, descriptor) triple into IR, and the interpreter that runs that IR. The interpreter always works, on every platform, including those where a JIT cannot run (r[exec.interpreter-baseline]). Like phon-ir, this crate is binding-free: it consumes descriptors and an IR and reaches for no reflection (r[crates.engine-is-binding-free]).

Spec: docs/content/spec.md — “Compact mode”, “Compatibility”, “Decoding”, “Decoding untrusted input”, and r[crates.concern-separation].

Re-exports§

pub use compact::CompactError;
pub use compact::Registry;
pub use plan::Plan;
pub use interp::run;

Modules§

compact
The compact (schema-driven) codec for the dynamic Value.
interp
The IR interpreter: run a lowered Program against a reader to produce a Value. The reference semantics a JIT must match exactly (r[exec.interpreter-baseline]).
plan
Compatibility planning: translate a writer schema with a reader schema into a Plan, then decode the writer’s compact bytes into a reader-shaped Value.
typed
The typed path: lower a Descriptor (which carries its schema) into a flat MemProgram, then run it to encode or decode a value living in this process’s memory.
validate
The hostile-input validation discipline every decode path enforces: length and dimension bounds, depth limits, tag/text checks, set/map uniqueness, and schema-bundle verification.