knolo-core-rust
Compatibility status: legacy v1–v3 Rust reader/query profile plus the V5 read-only Knowledge Image verifier and deterministic migration foundation. The TypeScript runtime remains the V4 retrieval reference, while this crate is the native V5 byte-contract foundation.
The shared implementation roadmap is ../../docs/ROADMAP.md.
Native Rust runtime support for Knolo .knolo packs.
V5 Knowledge Image foundation
The crate also exposes a dependency-free, read-only V5 verifier:
use ;
let migration = migrate_v4_to_v5?;
let verification = inspect_knowledge_image?;
assert_eq!;
V5 uses deterministic CBOR, SHA-256 domain-separated roots, A/B superblocks,
immutable object/event/commit segments, and fail-closed validation. The V4
reader and lexical query API remain compatible and unchanged. The crate also
implements bounded V5 EQL v1 with deterministic plan_root and result_root
values matching the TypeScript runtime.
Policy evaluation is also policy-root-bound and produces matching authorization roots. The crate exposes canonical authority-envelope roots and injected verifier callbacks; cryptographic algorithms and external identity resolution remain host responsibilities. Optional key IDs are included in canonical envelope payloads for rotation parity.
Native inspection consumers can use inspect_knowledge_runtime_v5 and
inspect_knowledge_studio_management_v5 for the verified base diagnostics and
KIP-0026 management snapshot. Their diagnostics and management roots match the
shared TypeScript fixture; optional query, history, run, and replay panels stay
host/runtime extensions until their native contracts are added.
use ;
let image = mount_knowledge_image?;
let result = query_knowledge_image_v5?;
println!;
Included in this initial release
mount_pack_from_bytes(&[u8]) -> Packquery(&Pack, &str, QueryOptions) -> Vec<Hit>- Pack parsing support for:
metalexiconpostingsblocks(legacy string array and v3 object array)
Example
use ;
let bytes: = read?;
let pack = mount_pack_from_bytes?;
let hits = query;
for hit in hits
# Ok::