[package]
name = "file-engine"
version = "0.1.0"
edition = "2021"
rust-version = "1.88"
license = "MIT"
description = "Async, cross-platform file operations engine for desktop apps and developer tools: copy, move, analyze, watch, compress, and sync files with progress reporting and cancellation."
repository = "https://github.com/<author>/file-engine"
readme = "README.md"
keywords = ["filesystem", "io", "async", "tokio", "copy"]
categories = ["filesystem", "asynchronous"]
[features]
default = ["operations", "analyze"]
operations = []
analyze = ["dep:walkdir", "dep:infer"]
checksum = ["analyze", "dep:blake3"]
watch = ["dep:notify"]
compress = ["dep:zip", "dep:flate2", "dep:walkdir"]
permissions = ["operations", "dep:nix"]
sync = ["operations", "analyze"]
diagnostics = ["dep:error-engine"]
[dependencies]
tokio = { version = "1", features = ["fs", "rt", "rt-multi-thread", "macros", "sync", "io-util"] }
tokio-stream = "0.1"
tokio-util = { version = "0.7", features = ["rt"] }
thiserror = "1"
walkdir = { version = "2", optional = true }
infer = { version = "0.16", optional = true }
blake3 = { version = "1", optional = true }
notify = { version = "6", optional = true }
zip = { version = "2", optional = true }
flate2 = { version = "1", optional = true }
error-engine = { version = "0.2", optional = true }
[target.'cfg(unix)'.dependencies]
nix = { version = "0.29", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
tempfile = "3"