[workspace.package] edition = "2021" authors = ["the organize-rs authors"] repository = "https://github.com/organize-rs/organize" license = "AGPL-3.0-or-later" categories = ["command-line-utilities"] keywords = ["cli", "file-management", "automation"] description = "organize - a file management automation tool" [package] name = "organize-rs" version = "0.4.1" documentation = "https://docs.rs/organize-rs" edition = { workspace = true } description = { workspace = true } authors = { workspace = true } repository = { workspace = true } license = { workspace = true } categories = { workspace = true } keywords = { workspace = true } include = [ "src/**/*", "LICENSE", "README.md", "CHANGELOG.md", "config/config_template.yaml", ] [workspace] members = ["crates/organize-rs_core", "crates/organize-rs_testing", "xtask"] [features] default = [] research_organize = [] [workspace.dependencies] organize-rs_core = { version = "0.2.0", path = "crates/organize-rs_core", features = [ "cli", ] } organize-rs_testing = { path = "crates/organize-rs_testing" } clap = { version = "4.3.0", features = ["derive", "env", "wrap_help"] } directories = "5.0.1" console = { version = "0.15.7", features = ["windows-console-colors"] } thiserror = "1.0.40" anyhow = "1.0.71" once_cell = "1.17.2" duct = "0.13.6" chrono = { version = "0.4.26", default-features = false, features = [ "serde", "clock", "std", "time", ] } jwalk = "0.8.1" regex = "1.8.3" abscissa_core = "0.7.0" itertools = "0.10.5" displaydoc = "0.2.4" clap_complete = "4.3.0" indicatif = "0.17.4" rayon = "1.7.0" trash = "3.0.2" dialoguer = "0.10.4" open = "4.1.0" crossbeam = { version = "0.8.2", features = ["crossbeam-channel"] } # parsing winnow = "0.4.6" byte-unit = "4.0.19" # date related filetime = "0.2.21" # infer file and MIME type by magic number infer = "0.13" mime = "0.3" # de-/serialisation serde = { version = "1.0.163", features = ["serde_derive"] } serde_with = "3.0.0" serde_yaml = "0.9.21" # config toml = "0.7.4" ron = "0.8.0" serde_json = "1.0.96" # deserr = { version = "0.6.0", default-features = false } # dev dependencies tempfile = "3.5.0" aho-corasick = "1.0" rstest = "0.17" quickcheck = "1" quickcheck_macros = "1" pretty_assertions = "1" insta = { version = "1.29.0", features = ["yaml", "ron", "json", "toml"] } # Scripting rhai = { version = "1.14.0", features = ["serde"] } # TODO: Needed Dependencies # czkawka_core = "4.1.0" # + Lazy-regex? # https://crates.io/crates/lazy-regex # lookup tables for extensions/modes # https://crates.io/crates/phf # Hashing # Read further: https://nnethercote.github.io/perf-book/hashing.html # blake3 = { version = "1.3.3", features = ["digest", "rayon"] } # Checksum # https://crates.io/crates/crc32fast/1.3.2 # Embed assets # https://crates.io/crates/rust-embed/6.6.1 # File size information in a human readable way # humansize = { version = "2.1.3", features = ["impl_style"] } # cross-platform file-size on disk # https://crates.io/crates/filesize/0.2.0 # detection of a file's MIME type by its extension # mime_guess = "2.0.4" # read/search in pdf files # pdf = "0.8.1" # global state / thread local state # state = { version = "0.5.3", features = ["tls"] } # duplicates # videos # https://crates.io/crates/vid_dup_finder_lib/0.1.1 # images # https://crates.io/crates/image_hasher/1.1.2 # RAW images # https://crates.io/crates/rawloader/0.37.1 # tui # ratatui = "0.20.1" # crossterm = "0.26.1" # or use # tui-realm-stdlib = "^1.2.0" # tuirealm = "^1.8.0" [dependencies] organize-rs_core = { workspace = true } clap = { workspace = true } directories = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } once_cell = { workspace = true } duct = { workspace = true } chrono = { workspace = true } regex = { workspace = true } jwalk = { workspace = true } serde_yaml = { workspace = true } toml = { workspace = true } abscissa_core = { workspace = true } itertools = { workspace = true } clap_complete = { workspace = true } indicatif = { workspace = true } winnow = { workspace = true } rhai = { workspace = true } anyhow = { workspace = true } dialoguer = { workspace = true } ron = { workspace = true } open = { workspace = true } serde_with = { workspace = true } console = { workspace = true } [dev-dependencies] abscissa_core = { workspace = true, features = ["testing"] } once_cell = { workspace = true } organize-rs_testing = { workspace = true } [[bin]] name = "organize" path = "src/bin/organize.rs" test = true bench = true doc = true harness = true edition = "2021" #required-features = [] [profile.dev] opt-level = 0 debug = true rpath = false lto = false debug-assertions = true codegen-units = 4 [profile.release] opt-level = 3 panic = "abort" debug = false # true for profiling rpath = false lto = "fat" debug-assertions = false codegen-units = 1 strip = true [profile.test] opt-level = 1 debug = true rpath = false lto = false debug-assertions = true codegen-units = 4 [profile.bench] opt-level = 3 debug = true # true for profiling rpath = false lto = true debug-assertions = false codegen-units = 1 [profile.dev.package.insta] opt-level = 3