Skip to main content

rvf_types/
lib.rs

1//! Core types for the RuVector Format (RVF).
2//!
3//! This crate provides the foundational types shared across all RVF crates:
4//! segment headers, type enums, flags, error codes, and format constants.
5//!
6//! All types are `no_std` compatible by default.
7
8#![cfg_attr(not(feature = "std"), no_std)]
9
10#[cfg(feature = "alloc")]
11extern crate alloc;
12
13// Tests always need alloc (for Vec, format!, etc.) even without the feature.
14#[cfg(all(test, not(feature = "alloc")))]
15extern crate alloc;
16
17pub mod checksum;
18pub mod compression;
19pub mod constants;
20pub mod cow_map;
21pub mod data_type;
22pub mod delta;
23pub mod ebpf;
24pub mod error;
25pub mod filter;
26pub mod flags;
27pub mod kernel;
28pub mod kernel_binding;
29pub mod manifest;
30pub mod membership;
31pub mod profile;
32pub mod quant_type;
33pub mod refcount;
34pub mod segment;
35pub mod segment_type;
36pub mod signature;
37pub mod attestation;
38pub mod lineage;
39pub mod quality;
40pub mod qr_seed;
41pub mod security;
42pub mod sha256;
43#[cfg(feature = "ed25519")]
44pub mod ed25519;
45pub mod wasm_bootstrap;
46pub mod witness;
47pub mod agi_container;
48
49pub use attestation::{AttestationHeader, AttestationWitnessType, TeePlatform, KEY_TYPE_TEE_BOUND};
50pub use ebpf::{
51    EbpfAttachType, EbpfHeader, EbpfProgramType, EBPF_MAGIC,
52};
53pub use kernel::{
54    ApiTransport, KernelArch, KernelHeader, KernelType, KERNEL_MAGIC,
55    KERNEL_FLAG_SIGNED, KERNEL_FLAG_COMPRESSED, KERNEL_FLAG_REQUIRES_TEE,
56    KERNEL_FLAG_MEASURED, KERNEL_FLAG_REQUIRES_KVM, KERNEL_FLAG_REQUIRES_UEFI,
57    KERNEL_FLAG_HAS_NETWORKING, KERNEL_FLAG_HAS_QUERY_API, KERNEL_FLAG_HAS_INGEST_API,
58    KERNEL_FLAG_HAS_ADMIN_API, KERNEL_FLAG_ATTESTATION_READY, KERNEL_FLAG_RELOCATABLE,
59    KERNEL_FLAG_HAS_VIRTIO_NET, KERNEL_FLAG_HAS_VIRTIO_BLK, KERNEL_FLAG_HAS_VSOCK,
60};
61pub use lineage::{
62    DerivationType, FileIdentity, LineageRecord, LINEAGE_RECORD_SIZE,
63    WITNESS_DERIVATION, WITNESS_LINEAGE_MERGE, WITNESS_LINEAGE_SNAPSHOT,
64    WITNESS_LINEAGE_TRANSFORM, WITNESS_LINEAGE_VERIFY,
65};
66pub use cow_map::{CowMapEntry, CowMapHeader, MapFormat, COWMAP_MAGIC};
67pub use delta::{DeltaEncoding, DeltaHeader, DELTA_MAGIC};
68pub use kernel_binding::KernelBinding;
69pub use membership::{FilterMode, FilterType, MembershipHeader, MEMBERSHIP_MAGIC};
70pub use refcount::{RefcountHeader, REFCOUNT_MAGIC};
71pub use checksum::ChecksumAlgo;
72pub use compression::CompressionAlgo;
73pub use constants::*;
74pub use data_type::DataType;
75pub use error::{ErrorCode, RvfError};
76pub use filter::FilterOp;
77pub use flags::SegmentFlags;
78pub use manifest::{
79    CentroidPtr, EntrypointPtr, HotCachePtr, Level0Root, PrefetchMapPtr, QuantDictPtr, TopLayerPtr,
80};
81pub use profile::{DomainProfile, ProfileId};
82pub use quant_type::QuantType;
83pub use segment::SegmentHeader;
84pub use segment_type::SegmentType;
85pub use signature::{SignatureAlgo, SignatureFooter};
86pub use quality::{
87    BudgetReport, BudgetType, DegradationReason, DegradationReport, FallbackPath,
88    IndexLayersUsed, QualityPreference, ResponseQuality, RetrievalQuality,
89    SafetyNetBudget, SearchEvidenceSummary, derive_response_quality,
90};
91pub use qr_seed::{
92    HostEntry, LayerEntry, SeedHeader, SEED_MAGIC, QR_MAX_BYTES,
93    SEED_HEADER_SIZE, SEED_HAS_MICROKERNEL, SEED_HAS_DOWNLOAD,
94    SEED_SIGNED, SEED_OFFLINE_CAPABLE, SEED_ENCRYPTED, SEED_COMPRESSED,
95    SEED_HAS_VECTORS, SEED_STREAM_UPGRADE,
96};
97pub use security::{HardeningFields, SecurityError, SecurityPolicy};
98pub use sha256::{sha256, hmac_sha256, Sha256};
99#[cfg(feature = "ed25519")]
100pub use ed25519::{
101    Ed25519Keypair, ed25519_sign, ed25519_verify, ct_eq_sig,
102    PUBLIC_KEY_SIZE as ED25519_PUBLIC_KEY_SIZE,
103    SECRET_KEY_SIZE as ED25519_SECRET_KEY_SIZE,
104    SIGNATURE_SIZE as ED25519_SIGNATURE_SIZE,
105};
106pub use witness::{
107    GovernanceMode, PolicyCheck, Scorecard, TaskOutcome,
108    WitnessHeader, WITNESS_MAGIC, WITNESS_HEADER_SIZE,
109    WIT_SIGNED, WIT_HAS_SPEC, WIT_HAS_PLAN, WIT_HAS_TRACE,
110    WIT_HAS_DIFF, WIT_HAS_TEST_LOG, WIT_HAS_POSTMORTEM,
111    WIT_TAG_SPEC, WIT_TAG_PLAN, WIT_TAG_TRACE, WIT_TAG_DIFF,
112    WIT_TAG_TEST_LOG, WIT_TAG_POSTMORTEM,
113};
114#[cfg(feature = "alloc")]
115pub use witness::{ToolCallEntry, TOOL_CALL_FIXED_SIZE};
116pub use wasm_bootstrap::{
117    WasmHeader, WasmRole, WasmTarget, WASM_MAGIC,
118    WASM_FEAT_SIMD, WASM_FEAT_BULK_MEMORY, WASM_FEAT_MULTI_VALUE,
119    WASM_FEAT_REFERENCE_TYPES, WASM_FEAT_THREADS, WASM_FEAT_TAIL_CALL,
120    WASM_FEAT_GC, WASM_FEAT_EXCEPTION_HANDLING,
121};
122pub use agi_container::{
123    AgiContainerHeader, ContainerSegments, ContainerError, ExecutionMode,
124    AuthorityLevel, ResourceBudget, CoherenceThresholds,
125    AGI_MAGIC, AGI_HEADER_SIZE, AGI_MAX_CONTAINER_SIZE,
126    AGI_HAS_KERNEL, AGI_HAS_WASM, AGI_HAS_ORCHESTRATOR, AGI_HAS_WORLD_MODEL,
127    AGI_HAS_EVAL, AGI_HAS_SKILLS, AGI_HAS_WITNESS, AGI_SIGNED,
128    AGI_REPLAY_CAPABLE, AGI_OFFLINE_CAPABLE, AGI_HAS_TOOLS, AGI_HAS_COHERENCE_GATES,
129    AGI_HAS_DOMAIN_EXPANSION,
130    AGI_TAG_AUTHORITY_CONFIG, AGI_TAG_DOMAIN_PROFILE,
131    AGI_TAG_TRANSFER_PRIOR, AGI_TAG_POLICY_KERNEL,
132    AGI_TAG_COST_CURVE, AGI_TAG_COUNTEREXAMPLES,
133};