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

[profile.release]
strip = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = []
io-uring = ["dep:tokio-uring", "sled/io_uring", "actix-web/experimental-io-uring"]

[dependencies]
actix-form-data = "0.7.0-beta.6"
actix-web = { version = "4.0.0", default-features = false }
async-trait = "0.1.51"
barrel = { version = "0.7.0", features = ["pg"] }
base64 = "0.21.0"
clap = { version = "4.0.2", features = ["derive"] }
color-eyre = "0.6"
config = { version = "0.13.0", default-features = false, features = ["json", "ron", "toml", "yaml"] }
console-subscriber = "0.2"
dashmap = "5.1.0"
deadpool = { version = "0.9.5", features = ["rt_tokio_1"] }
diesel = { version = "2.1.1", features = ["postgres_backend", "serde_json", "time", "uuid"] }
diesel-async = { version = "0.4.1", features = ["postgres", "deadpool"] }
diesel-derive-enum = { version = "2.1.0", features = ["postgres"] }
flume = "0.11.0"
futures-core = "0.3"
hex = "0.4.3"
md-5 = "0.10.5"
metrics = "0.21.1"
metrics-exporter-prometheus = { version = "0.12.1", default-features = false, features = ["http-listener"] }
mime = "0.3.1"
opentelemetry_sdk = { version = "0.21", features = ["rt-tokio"] }
opentelemetry = { version = "0.21" }
opentelemetry-otlp = "0.14"
pin-project-lite = "0.2.7"
refinery = { version = "0.8.10", features = ["tokio-postgres", "postgres"] }
reqwest = { version = "0.11.18", default-features = false, features = ["json", "rustls-tls", "stream"] }
reqwest-middleware = "0.2.2"
reqwest-tracing = { version = "0.4.5" }
rusty-s3 = "0.5.0"
serde = { version = "1.0", features = ["derive"] }
serde-tuple-vec-map = "1.0.1"
serde_json = "1.0"
serde_urlencoded = "0.7.1"
sha2 = "0.10.0"
sled = { version = "0.34.7" }
storage-path-generator = "0.1.0"
streem = "0.2.0"
subtle = { version = "2.5.0", default-features = false }
thiserror = "1.0"
time = { version = "0.3.0", features = ["serde", "serde-well-known"] }
tokio = { version = "1", features = ["full", "tracing"] }
tokio-postgres = { version = "0.7.10", features = ["with-uuid-1", "with-time-0_3", "with-serde_json-1"] }
tokio-uring = { version = "0.4", optional = true, features = ["bytes"] }
tokio-util = { version = "0.7", default-features = false, features = [
  "codec",
  "io",
] }
toml = "0.8.0"
tracing = "0.1.15"
tracing-error = "0.2.0"
tracing-log = "0.2.0"
tracing-opentelemetry = "0.22"
tracing-subscriber = { version = "0.3.0", features = [
  "ansi",
  "env-filter",
  "fmt",
  "json",
  "registry",
  "tracing-log",
] }
url = { version = "2.2", features = ["serde"] }
uuid = { version = "1", features = ["serde", "std", "v4", "v7"] }

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

[dev-dependencies]
tokio-uring = { version = "0.4", features = ["bytes"] }
