[package]
name = "mcraw-tui"
version = "0.2.0"
edition = "2021"
description = "Cross-platform TUI for browsing and exploring MotionCam (.mcraw) files"
authors = ["Terminal Developer"]
license = "Apache-2.0"
repository = "https://github.com/Yoganshbhatt/mcraw-tui"

[dependencies]
# TUI framework
ratatui = "0.29"
crossterm = "0.28"

# CLI & error handling
clap = { version = "4.5", features = ["derive"] }
anyhow = "1.0"
thiserror = "2.0"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-appender = "0.2"

# Async runtime (for future file I/O)
tokio = { version = "1", features = ["full"] }

# Parallel iteration for pixel processing
rayon = "1.10"

# Multi-producer multi-consumer channels for pipeline stages
crossbeam-channel = "0.5"

# Pure-Rust MotionCam decoder (replaces C++ FFI)
motioncam-decoder = { version = "0.1", features = ["parallel"] }

# GPU compute (WGSL compute shaders for RCD demosaicing)
wgpu = { version = "24", features = ["wgsl"] }
bytemuck = { version = "1", features = ["derive"] }
pollster = "0.4"

# UUID for internal tracking
uuid = { version = "1", features = ["v4"] }

# TIFF/DNG writing
tiff = "0.9"

# Platform-specific directories
dirs = "5"

# URI percent-decoding for drag-drop file:// paths
percent-encoding = "2.3"

# Global allocator (D1) — mimalloc is faster than glibc malloc for
# the large bursts the export path does (18MB + 9MB + 73MB allocs).
mimalloc = "0.1"
