[package]
license = "MIT"
name = "runmat-snapshot"
version = "0.2.6"
edition = "2021"
authors = ["Dystr Team"]
description = "High-performance snapshot creator for preloading RunMat standard library"
license-file = "LICENSE"
keywords = ["matlab", "octave", "snapshot", "serialization", "performance"]
categories = ["science", "development-tools", "compilers"]

[features]
default = ["compression", "validation"]
compression = ["lz4", "zstd"]
validation = ["sha2", "blake3", "crc32fast"]
blas-lapack = ["runmat-runtime/blas-lapack"]

[dependencies]
runmat-builtins = { workspace = true }
runmat-runtime = { workspace = true }
runmat-hir = { workspace = true }
runmat-ignition = { workspace = true }
runmat-parser = { workspace = true }
runmat-gc = { workspace = true }
serde = { version = "1.0", features = ["derive"] }
bincode = "1.3"
anyhow = "1.0"
log = "0.4"
thiserror = "1.0"

# Compression support
lz4 = { version = "1.24", optional = true }
zstd = { version = "0.13", optional = true }

# Validation support  
sha2 = { version = "0.10", optional = true }

# Memory mapping for efficient loading
memmap2 = "0.9"

# Atomic operations for thread safety
parking_lot = "0.12"

# Progress reporting
indicatif = "0.17"

# CLI framework
clap = { version = "4.4", features = ["derive"] }

# Logging and time utilities
chrono = { version = "0.4", features = ["serde"] }
env_logger = "0.10"

# Additional hash algorithms
blake3 = { version = "1.5", optional = true }
crc32fast = { version = "1.3", optional = true }

# System information
libc = "0.2"

# Async runtime
tokio = { version = "1.0", features = ["full"] }

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
tempfile = "3.8"
env_logger = "0.10"



[[bin]]
name = "runmat-snapshot-tool"
path = "src/bin/tool.rs"

[lib]
name = "runmat_snapshot"
