[package]
name = "file-engine"
version = "1.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, sync, watch, and compress 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 = ["dep:walkdir", "dep:libc", "dep:windows-sys", "dep:unicode-normalization"]
analyze = ["dep:walkdir", "dep:infer"]
checksum = ["analyze", "dep:blake3"]
watch = ["dep:notify"]
compress = ["operations", "dep:zip", "dep:flate2"]
permissions = ["operations"]
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 }
unicode-normalization = { version = "0.1", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
tempfile = "3"
filetime = "0.2"
[[example]]
name = "basic_copy"
required-features = ["operations"]
[[example]]
name = "basic_move"
required-features = ["operations"]
[[example]]
name = "basic_sync"
required-features = ["sync"]
[[example]]
name = "basic_watch"
required-features = ["watch"]
[[example]]
name = "basic_compress"
required-features = ["compress"]
[target."cfg(unix)".dependencies]
libc = { version = "0.2", optional = true }
[target."cfg(windows)".dependencies]
windows-sys = { version = "0.61", features = ["Win32_Storage_FileSystem", "Win32_Foundation", "Win32_System_SystemServices"], optional = true }