Skip to main content

ai_model_vault/
lib.rs

1//! AI Model Vault - Universal secure vault for AI model formats
2//!
3//! A cross-platform, XDG-compliant secure storage system for Neural and Neurosymbolic AI models with:
4//! - FIPS 140-3 compliant encryption
5//! - CVE scanning and compliance
6//! - MITRE ATT&CK framework alignment
7//! - CMMC 2.0 compliance
8//! - Version control with complete checkpoint history
9//! - Format conversion capabilities
10
11pub mod access_control;
12#[cfg(feature = "api")]
13pub mod api;
14pub mod audit;
15pub mod benchmark;
16pub mod blockchain;
17pub mod cloud_envelope;
18pub mod compliance;
19pub mod config;
20pub mod conversion;
21pub mod crypto;
22pub mod diff;
23pub mod download;
24pub mod error;
25pub mod evaluation;
26pub mod federation;
27pub mod federation_transport;
28pub mod formats;
29pub mod gc;
30pub mod gguf;
31pub mod interop;
32pub mod kms;
33pub mod license_scan;
34pub mod lineage_graph;
35pub mod model_card;
36pub mod multi_vault;
37pub mod permissions;
38pub mod plugins;
39pub mod policies;
40pub mod profiles;
41pub mod quantization;
42pub mod rag;
43pub mod scanning;
44pub mod scheduler;
45pub mod signing;
46pub mod storage;
47pub mod tags;
48pub mod telemetry;
49/// OTLP export transport for telemetry events.
50#[cfg(feature = "otel")]
51pub mod telemetry_otlp;
52pub mod traits;
53pub mod tui;
54pub mod utils;
55pub mod validation;
56pub mod vault;
57pub mod vault_bundle;
58pub mod version;
59#[cfg(feature = "sqlite")]
60pub mod version_sqlite;
61pub mod webhooks;
62
63#[cfg(feature = "python")]
64mod python;
65
66pub use config::VaultConfig;
67pub use conversion::{
68    ConversionOptions, ConversionPipeline, ConversionProgress, ConversionResult, Converter,
69    ValidationCheck, ValidationReport,
70};
71pub use crypto::streaming::{
72    decrypt_chunked, encrypt_chunked, is_chunked_format, StreamHeader, DEFAULT_CHUNK_SIZE,
73    HEADER_SIZE, STREAM_MAGIC, STREAM_VERSION,
74};
75pub use error::{ConversionError, CryptoError, Result, StorageError, VaultError};
76pub use error::{
77    EXIT_AUTH, EXIT_COMPLIANCE, EXIT_CONFIG, EXIT_GENERAL, EXIT_INTEGRITY, EXIT_INVALID_INPUT,
78    EXIT_NOT_FOUND, EXIT_PERMISSION, EXIT_SUCCESS,
79};
80pub use model_card::{
81    CaveatsAndRecommendations, EnvironmentalImpact, EthicalConsiderations, Evaluation, IntendedUse,
82    Metric, ModelCard, ModelDetails, TrainingData,
83};
84pub use rag::{
85    Database, Document, DocumentStore, InMemoryDatabase, KnowledgeBase, KnowledgeBaseConfig,
86    MCPServer, MCPTool, RetrievalCache, Rule, RuleAction, RuleCondition, RuleEngine, ToolContext,
87    ToolExecutor, ToolResult,
88};
89pub use traits::{
90    AimvUri, AsyncBlobStore, AsyncBlobStoreAdapter, AuditLogSubscriber, AuditSink, BlobInfo,
91    BlobReceipt, BlobStore, BlobStoreStats, CryptoProvider, EventBus, EventSubscriber,
92    MetricsSnapshot, MetricsSubscriber, NullAuditSink, VaultEvent, VaultMetrics, VaultState,
93    VersionRepo,
94};
95pub use utils::{
96    CompressionAnalyzer, CompressionReport, ModelAnalysis, ModelAnalyzer, ModelArchive,
97    ModelDeduplicator, ModelExporter, PruningInfo, PruningMethod, QuantizationInfo,
98    QuantizationSavings, RetrievalOptimizer,
99};
100pub use vault::{Vault, VaultBuilder, VersionBackend};
101pub use version::{ModelVersion, VersionControl};
102#[cfg(feature = "sqlite")]
103pub use version_sqlite::SqliteVersionRepo;
104
105// Benchmark exports
106pub use benchmark::{BenchmarkRecord, BenchmarkResult, BenchmarkStore};
107
108// Diff exports
109pub use diff::{DiffSummary, ModelDiff, ModelDiffer, TensorChange, TensorInfo};
110
111// Download exports
112pub use download::{ModelDownloader, ModelSource};
113
114// Interop exports
115pub use interop::{
116    register_lm_studio, register_ollama, InferenceEngine, LmStudioOptions, OllamaOptions,
117    RegistrationResult,
118};
119
120// License scanning exports
121pub use license_scan::{
122    DetectedLicense, LicenseClass, LicenseScanReport, LicenseScanner, LicenseSource,
123};
124
125// Pickle scanning exports
126pub use scanning::{PickleScanner, ScanFinding, ScanReport, Severity};
127
128// Signing exports
129pub use signing::{ModelSignature, ModelSigner, SignatureVerification, SigningKeyPair};
130
131// Blockchain audit exports
132pub use blockchain::{
133    AuditBlock, AuditProof, BlockchainAudit, ChainVerification, MerkleProof, MerkleTree,
134    ProofVerification,
135};
136
137// Federation exports
138pub use federation::{
139    ConflictResolution, FederationConfig, FederationManager, FederationStatus, PeerConfig,
140    SyncConflict, SyncManifest, SyncResult, VectorClock,
141};
142
143// Access control exports
144pub use access_control::{AclEntry, AclGuard, Role};
145
146// GC exports
147pub use gc::GcReport;
148
149// KMS exports
150pub use kms::{is_kms_uri, KmsBackend, KmsRequest, KmsUri};
151
152// Lineage graph exports
153pub use lineage_graph::{DerivationKind, LineageEdge, LineageGraph};
154
155// Plugin exports
156pub use plugins::{PluginInfo, PluginManifest, PluginRegistry};
157
158// Policy exports
159pub use policies::{PolicyReport, PolicyStore, RetentionPolicy};
160
161// Profile exports
162pub use profiles::{Profile, ProfileStore};
163
164// Tag exports
165pub use tags::{SearchQuery, SearchResult, TagStore};
166
167// Validation exports
168pub use validation::{ValidationProbe, ValidationResult, ValidationStore};
169
170// Vault bundle exports
171pub use vault_bundle::{BundleManifest, ExportReport, ImportReport};
172
173// Webhook exports
174pub use webhooks::{WebhookPayload, WebhookStore, WebhookTarget};
175
176// Quantization exports
177pub use quantization::{
178    BatchQuantReport, QuantMethod, QuantProfile, QuantProfileStore, QuantResult,
179};
180
181// Evaluation exports
182pub use evaluation::{EvalComparison, EvalRun, EvalStore, MetricDelta, MetricResult};
183
184// Scheduler exports
185pub use scheduler::{BackupFrequency, BackupManager, BackupRecord, BackupReport, BackupSchedule};
186
187// Multi-vault exports
188pub use multi_vault::{VaultEntry, VaultRegistry, VaultSummary};
189
190/// Library version
191pub const VERSION: &str = env!("CARGO_PKG_VERSION");