[package]
name = "pict-rs"
description = "A simple image hosting service"
version = "0.3.1"
authors = ["asonix <asonix@asonix.dog>"]
license = "AGPL-3.0"
readme = "README.md"
repository = "https://git.asonix.dog/asonix/pict-rs"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["object-storage"]
object-storage = ["reqwest", "rust-s3"]
io-uring = [
  "actix-rt/io-uring",
  "actix-server/io-uring",
  "tokio-uring",
  "sled/io_uring",
]

[dependencies]
actix-form-data = "0.6.0"
actix-rt = { version = "2.7.0", default-features = false }
actix-server = "2.0.0"
actix-web = { version = "4.0.0", default-features = false }
anyhow = "1.0"
async-trait = "0.1.51"
awc = { version = "3.0.0", default-features = false, features = ["rustls"] }
base64 = "0.13.0"
config = "0.13.0"
console-subscriber = "0.1"
dashmap = "5.1.0"
futures-util = "0.3.17"
mime = "0.3.1"
num_cpus = "1.13"
once_cell = "1.4.0"
opentelemetry = { version = "0.17", features = ["rt-tokio"] }
opentelemetry-otlp = "0.10"
pin-project-lite = "0.2.7"
reqwest = { version = "0.11.5", default-features = false, features = [
  "rustls-tls",
  "stream",
], optional = true }
rust-s3 = { version = "0.29.0", default-features = false, features = [
  "fail-on-err",
  "with-reqwest",
], optional = true, git = "https://github.com/asonix/rust-s3", branch = "asonix/generic-client" }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = "0.10.0"
sled = { version = "0.34.7" }
storage-path-generator = "0.1.0"
structopt = "0.3.14"
thiserror = "1.0"
time = { version = "0.3.0", features = ["serde"] }
tokio = { version = "1", features = ["full", "tracing"] }
tokio-uring = { version = "0.3", optional = true, features = ["bytes"] }
tokio-util = { version = "0.7", default-features = false, features = ["codec"] }
tracing = "0.1.15"
tracing-error = "0.2.0"
tracing-futures = "0.2.4"
tracing-log = "0.1.2"
tracing-opentelemetry = "0.17"
tracing-subscriber = { version = "0.3.0", features = [
  "env-filter",
  "fmt",
  "tracing-log",
] }
url = { version = "2.2", features = ["serde"] }
uuid = { version = "0.8.2", features = ["v4", "serde"] }

[dependencies.tracing-actix-web]
version = "0.5.0"
default-features = false
features = ["emit_event_on_error", "opentelemetry_0_17"]

[dependencies.tracing-awc]
version = "0.1.0"
default-features = false
features = ["emit_event_on_error", "opentelemetry_0_17"]
