Skip to main content

Module format

Module format 

Source
Expand description

Aprender Model Format (.apr)

Binary format for ML model serialization with built-in quality (Jidoka):

  • CRC32 checksum (integrity)
  • Ed25519 signatures (provenance)
  • AES-256-GCM encryption (confidentiality)
  • Zstd compression (efficiency)
  • Quantization (Q8_0, Q4_0, Q4_1 - GGUF compatible)
  • Streaming/mmap (JIT loading)

§Format Structure

┌─────────────────────────────────────────┐
│ Header (32 bytes, fixed)                │
├─────────────────────────────────────────┤
│ Metadata (variable, MessagePack)        │
├─────────────────────────────────────────┤
│ Chunk Index (if STREAMING flag)         │
├─────────────────────────────────────────┤
│ Salt + Nonce (if ENCRYPTED flag)        │
├─────────────────────────────────────────┤
│ Payload (variable, compressed)          │
├─────────────────────────────────────────┤
│ Signature Block (if SIGNED flag)        │
├─────────────────────────────────────────┤
│ Checksum (4 bytes, CRC32)               │
└─────────────────────────────────────────┘

§Example

use aprender::format::{save, load, ModelType, SaveOptions};
use aprender::linear_model::LinearRegression;

let model = LinearRegression::new();
// ... train model ...

// Save with compression
save(&model, ModelType::LinearRegression, "model.apr", SaveOptions::default())?;

// Load with verification
let loaded: LinearRegression = load("model.apr", ModelType::LinearRegression)?;

Re-exports§

pub use golden::verify_logits;
pub use golden::GoldenTrace;
pub use golden::GoldenTraceSet;
pub use golden::GoldenVerifyReport;
pub use golden::LogitStats;
pub use golden::TraceVerifyResult;
pub use model_card::ModelCard;
pub use model_card::TrainingDataInfo;
pub use validation::AprHeader;
pub use validation::AprValidator;
pub use validation::Category;
pub use validation::CheckStatus;
pub use validation::TensorStats;
pub use validation::ValidationCheck;
pub use validation::ValidationReport;
pub use validation::no_validation_result;Deprecated
pub use validation::fail_no_validation_rules;
pub use validation::Gate;
pub use validation::PokaYoke;
pub use validation::PokaYokeResult;
pub use converter::apr_convert;
pub use converter::apr_export;
pub use converter::apr_import;
pub use converter::apr_merge;
pub use converter::AprConverter;
pub use converter::Architecture;
pub use converter::ConvertOptions;
pub use converter::ConvertReport;
pub use converter::ExportFormat;
pub use converter::ExportOptions;
pub use converter::ExportReport;
pub use converter::ImportError;
pub use converter::ImportOptions;
pub use converter::MergeOptions;
pub use converter::MergeReport;
pub use converter::MergeStrategy;
pub use converter::QuantizationType;
pub use converter::Source;
pub use converter::TensorExpectation;
pub use converter::ValidationConfig;
pub use lint::lint_apr_file;
pub use lint::lint_model;
pub use lint::LintCategory;
pub use lint::LintIssue;
pub use lint::LintLevel;
pub use lint::LintReport;
pub use lint::ModelLintInfo;
pub use lint::TensorLintInfo;
pub use sharded::estimate_shard_memory;
pub use sharded::get_shard_files;
pub use sharded::is_sharded_model;
pub use sharded::CacheStats;
pub use sharded::CachedShard;
pub use sharded::ImportPhase;
pub use sharded::ImportProgress;
pub use sharded::ImportReport;
pub use sharded::ShardCache;
pub use sharded::ShardIndex;
pub use sharded::ShardedImportConfig;
pub use sharded::ShardedImporter;
pub use rosetta::ConversionOptions;
pub use rosetta::ConversionPath;
pub use rosetta::ConversionReport;
pub use rosetta::FormatType;
pub use rosetta::InspectionReport;
pub use rosetta::RosettaStone;
pub use rosetta::TensorInfo;
pub use rosetta::VerificationReport;
pub use rosetta_ml::AndonLevel;
pub use rosetta_ml::AnomalyDetector;
pub use rosetta_ml::CanaryFile;
pub use rosetta_ml::CategorySummary;
pub use rosetta_ml::ConversionCategory;
pub use rosetta_ml::ConversionDecision;
pub use rosetta_ml::ConversionIssue;
pub use rosetta_ml::ErrorPattern;
pub use rosetta_ml::ErrorPatternLibrary;
pub use rosetta_ml::FixAction;
pub use rosetta_ml::HanseiReport;
pub use rosetta_ml::JidokaViolation;
pub use rosetta_ml::PatternSource;
pub use rosetta_ml::Priority;
pub use rosetta_ml::Regression;
pub use rosetta_ml::Severity;
pub use rosetta_ml::TarantulaTracker;
pub use rosetta_ml::TensorCanary;
pub use rosetta_ml::TensorFeatures;
pub use rosetta_ml::Trend;
pub use rosetta_ml::WilsonScore;

Modules§

compare
HuggingFace weight comparison module (GH-121).
converter
APR Converter Module - Import Pipeline
converter_types
APR Converter Types
gguf
GGUF Import/Export (spec §7.2)
golden
Golden Trace Verification
hexdump
Hex dump and data flow visualization for tensor inspection (GH-122).
lint
APR Format Lint Module - Best Practices & Conventions
model_card
Model Card for .apr format (spec §11)
rosetta
Rosetta Stone - Universal Model Format Converter
rosetta_ml
ML-Powered Rosetta Diagnostics (ROSETTA-ML-001)
sharded
Sharded model import module (GH-127).
v2
APR Format Module (GH-119)
validation
APR Format Validation Module - 100-Point QA Checklist

Structs§

DistillationInfo
Complete distillation provenance (spec §6.3.2)
DistillationParams
Distillation hyperparameters (spec §6.3.2)
Flags
Feature flags (bitmask) - spec §3.2
Header
File header (32 bytes)
LayerMapping
Layer mapping for progressive distillation (spec §6.3.2)
LicenseInfo
Commercial license information (spec §9.1)
Metadata
Model metadata (MessagePack-encoded)
ModelInfo
Model information (from inspection)
SaveOptions
Options for saving models
TeacherProvenance
Teacher model provenance for audit trails (spec §6.3.2)
TrainingInfo
Training information

Enums§

Compression
Compression algorithm
DistillMethod
Distillation method used (spec §6.3.1)
LicenseTier
License tier levels (spec §9.1)
ModelType
Model type identifiers

Constants§

FORMAT_VERSION
Current format version (1.0)
HEADER_SIZE
Header size in bytes
MAGIC
Magic number: “APRN” in ASCII (0x4150524E)
MAX_UNCOMPRESSED_SIZE
Maximum uncompressed size (1GB safety limit)
MMAP_THRESHOLD
Threshold for switching to mmap loading (1MB)

Functions§

inspect
Inspect a model file without loading the payload
inspect_bytes
Inspect model data without loading the payload (spec §1.1)
load
Load a model from .apr format
load_auto
Load a model with automatic strategy selection based on file size
load_from_bytes
Load a model from a byte slice (spec §1.1 - Single Binary Deployment)
load_mmap
Load a model using memory-mapped I/O (zero-copy where possible)
save
Save a model to .apr format