fv-compute
The transform contract for FusionVault Kinetics. A
transform is a typed function over Arrow data, declared once in a transform.toml, discovered by
a registry, and run by whichever backend its impl names. This crate defines the manifest and
its validation, the typed signature, the capability envelope, the registry, the Runtime, and
the two traits a backend implements. It links no execution engine: fv-compute-wasm and
fv-compute-container are the backends that ship, and you can add your own.
Validate a manifest
use ;
let manifest = parse_and_validate.unwrap;
assert_eq!;
assert!; // the default envelope: pure, CPU, batch
Run transforms
use Runtime;
# use ;
# ;
#
#
let runtime = builder
.root // every <dir>/transform.toml under it
.backend // e.g. fv_compute_wasm::WasmBackend::new()?
.build?; // every manifest validated here
let out = runtime.run?; // loaded once, cached, run per batch
# Ok::
What is here
manifest:TransformManifest,parse_and_validate, theimplkinds.types:FvType,ColumnSpec,SchemaSpecand their Arrow bindings.capability:CapabilityEnvelope,Binding, and the singleBinding::acceptsrule.registry:Registry, roots (DirRoot,MemoryRoot, theRoottrait), precedence, a serializable index.runtime:Runtime, the registry plus backends plus a cache of loaded transforms.contract: theTransformBackendandComputetraits.catalog: UI-friendly descriptors of what a registry holds, with no backend linked.
The repository README explains the concepts, walks through writing a transform in Rust and Python, and shows how transforms run inside pipelines and streams. Apache-2.0.