[package] name = "keep" version = "0.1.0" edition = "2024" rust-version = "1.85" description = "Keep and manage temporary files with automatic compression and metadata generation" readme = "README.md" license = "MIT" repository = "https://gitea.gt0.ca/asp/keep" keywords = ["cli", "files", "compression", "metadata"] categories = ["command-line-utilities"] [dependencies] anyhow = "1.0" axum = { version = "0.8", optional = true } derive_more = { version = "2.0", features = ["full"] } smart-default = "0.7" thiserror = "2.0" base64 = "0.22" chrono = { version = "0.4", features = ["serde"] } clap = { version = "4.6", features = ["derive", "env"] } clap_complete = "4" command-fds = "0.3" config = "0.15" ctor = "0.2" directories = "6.0" dns-lookup = "3.0" enum-map = "2.7" flate2 = { version = "1.0", features = ["zlib-ng-compat"], optional = true } futures = "0.3" gethostname = "1.0" humansize = "2.1" async-stream = "0.3" hyper = { version = "1.0", features = ["full"] } http-body-util = "0.1" inventory = "0.3" is-terminal = "0.4" libc = "0.2" local-ip-address = "0.6" log = "0.4" lz4_flex = { version = "0.12", optional = true } zstd = { version = "0.13", optional = true } magic = { version = "0.13", optional = true } infer = { version = "0.19", optional = true } tree_magic_mini = { version = "3.2", optional = true } nix = { version = "0.30", features = ["fs", "process"] } comfy-table = "7.2" pwhash = "1.0" regex = "1.10" ringbuf = "0.4" rusqlite = { version = "0.37", features = ["bundled", "array", "chrono"] } rusqlite_migration = "2.3" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "0.9" sha2 = "0.10" md5 = "0.7" subtle = "2.6" env_logger = "0.11" strfmt = "0.2" strum = { version = "0.27", features = ["derive"] } term = "1.2" tokio = { version = "1.0", features = ["full"] } tokio-stream = "0.1" tokio-util = "0.7" tower = { version = "0.5", optional = true } tower-http = { version = "0.6", features = ["cors", "fs", "trace"], optional = true } utoipa = { version = "5.4", features = ["axum_extras"], optional = true } utoipa-swagger-ui = { version = "9.0", features = ["axum"], optional = true } uzers = "0.12" which = "8.0" xdg = "2.5" strip-ansi-escapes = "0.2" tar = "0.4" pest = "2.8" pest_derive = "2.8" dirs = "6.0" similar = { version = "2.7", default-features = false, features = ["text"] } html-escape = "0.2" ureq = { version = "3", features = ["json"], optional = true } os_pipe = { version = "1", optional = true } axum-server = { version = "0.8", features = ["tls-rustls"], optional = true } jsonwebtoken = { version = "10", optional = true, features = ["aws_lc_rs"] } tiktoken-rs = { version = "0.9", optional = true } tempfile = "3.3" [features] # Default features include core compression engines and swagger UI default = [ "client", "gzip", "infer", "lz4", "tokens", "tree_magic_mini", "zstd" ] # Server feature (includes axum and related dependencies) server = ["dep:axum", "dep:tower", "dep:tower-http", "dep:utoipa", "dep:jsonwebtoken"] # Compression features gzip = ["flate2"] lz4 = ["lz4_flex"] bzip2 = [] xz = [] zstd = ["dep:zstd"] # Plugin features (meta and filter) all-meta-plugins = ["dep:magic", "dep:infer", "dep:tree_magic_mini"] all-filter-plugins = [] # Individual plugin features magic = ["dep:magic"] infer = ["dep:infer"] tree_magic_mini = ["dep:tree_magic_mini"] # Swagger UI feature swagger = ["dep:utoipa-swagger-ui"] # Client feature (HTTP client for remote server) client = ["dep:ureq", "dep:os_pipe"] # TLS feature (HTTPS server support) tls = ["dep:axum-server"] # Token counting feature (LLM token support via tiktoken) tokens = ["dep:tiktoken-rs"] [dev-dependencies] rand = "0.9"