[package]
name = "paperless-api-client"
description = "Paperless-ngx API client"
version = "6.0.1"
documentation = "https://docs.rs/paperless-api-client"
readme = "README.md"
edition = "2021"
license = "GPL-3.0-only"
[dependencies]
anyhow = "1"
async-trait = { version = "^0.1.53", optional = true }
base64 = "0.22"
bigdecimal = { version = "0.4", features = ["serde"] }
bytes = { version = "1", features = ["serde"] }
clap = { version = "4.2.4", features = ["cargo", "derive", "env", "unicode"], optional = true }
data-encoding = "^2.3.2"
dirs = { version = "^5.0.1", optional = true }
format_serde_error = { version = "^0.3.0", optional = true }
futures = { version = "0.3.26", optional = true }
http = { version = "1", optional = true }
itertools = "0.13.0"
log = { version = "^0.4", features = ["serde"], optional = true }
mime_guess = "2.0.4"
parse-display = "0.10.0"
phonenumber = "0.3.5"
rand = { version = "0.9", optional = true }
getrandom = { version = "0.3" }
reqwest = { version = "0.12.14", default-features = false, features = ["json", "multipart", "rustls-tls"], optional = true }
reqwest-conditional-middleware = { version = "0.4", optional = true }
reqwest-middleware = { version = "0.4", optional = true, features = ["json", "multipart", "http2", "rustls-tls"] }
reqwest-retry = { version = "0.7", optional = true }
reqwest-tracing = { version = "0.5.4", features = ["opentelemetry_0_24"], optional = true }
schemars = { version = "0.8.17", features = ["bigdecimal04", "bytes", "chrono", "url", "uuid1"] }
serde = { version = "1", features = ["derive"] }
serde_bytes = "0.11"
serde_json = "1"
serde_urlencoded = { version = "^0.7", optional = true }
tabled = { version = "0.18.0", features = ["ansi"], optional = true }
thiserror = "2"
tracing = { version = "^0.1", optional = true }
url = { version = "2", features = ["serde"] }
uuid = { version = "1", features = ["serde", "v4", "v7"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
chrono = { version = "0.4", default-features = false, features = ["now", "serde", "std"] }
tokio = { version = "1.38.0", features = ["rt", "macros"] }
[target.'cfg(target_arch = "wasm32")'.dependencies]
chrono = { version = "0.4", default-features = false, features = ["serde", "std"] }
[dev-dependencies]
expectorate = "1"
futures-util = "^0.3.26"
pretty_assertions = "1"
rand = "0.9"
tokio = { version = "1.38.0", features = ["rt", "macros"] }
tokio-tungstenite = "0.24"
[features]
default = ["requests", "retry"]
clap = ["dep:clap"]
tabled = ["dep:tabled"]
requests = ["dep:async-trait", "dep:format_serde_error", "dep:futures", "dep:http", "dep:log", "dep:rand", "dep:reqwest", "dep:serde_urlencoded", "dep:tracing"]
retry = ["dep:reqwest-conditional-middleware", "dep:reqwest-retry", "dep:reqwest-middleware", "dep:reqwest-tracing"]
js = ["uuid/js", "getrandom/wasm_js"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]