[package] name = "keep" version = "0.1.0" edition = "2024" description = "Keep and manage temporary files with automatic compression and metadata generation" readme = "README.md" categories = ["command-line-utilities"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [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"] } 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" lazy_static = "1.5" libc = "0.2" local-ip-address = "0.6" log = "0.4" lz4_flex = { version = "0.12", optional = true } magic = { version = "0.13", optional = true } nix = "0.30" once_cell = "1.21" 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" 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" 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 } [features] # Default features include core compression engines and swagger UI default = ["magic", "lz4", "gzip", "client", "tokens"] # Full #default = ["server", "magic", "lz4", "swagger"] # 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 = [] # Plugin features (meta and filter) all-meta-plugins = ["dep:magic"] all-filter-plugins = [] # Individual plugin features magic = ["dep:magic"] # 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] tempfile = "3.3" rand = "0.9"