ips/pkg6depotd/Cargo.toml
Till Wegmueller 81f00a0624
Add caching headers, admin routes, and configurable cache max-age support
- Introduced caching headers (`Cache-Control`, `ETag`, `Last-Modified`) for file responses to improve client-side caching.
- Added HTTP admin routes for health check and authentication validation.
- Made `cache_max_age` configurable via server configuration with a default of 3600 seconds.
- Enhanced file handler with metadata-based `Last-Modified` computation.
- Updated integration tests to cover new functionality and ensure correctness.
2025-12-09 20:23:00 +01:00

57 lines
1.8 KiB
TOML

[package]
name = "pkg6depotd"
description = "The repository server for IPS written in rust"
version.workspace = true
authors.workspace = true
edition.workspace = true
license-file.workspace = true
repository.workspace = true
readme.workspace = true
keywords.workspace = true
[dependencies]
# Async Runtime & Web Framework
tokio = { version = "1.47", features = ["full"] }
axum = { version = "0.8", features = ["macros"] }
hyper = { version = "1", features = ["full"] }
tower = { version = "0.5", features = ["util", "timeout", "limit", "load-shed"] }
tower-http = { version = "0.6", features = ["trace", "fs", "cors", "compression-full", "timeout", "request-id", "util"] }
rustls = "0.23"
tokio-rustls = "0.26"
axum-server = { version = "0.8", features = ["tls-rustls"] } # Simplifies TLS with Axum
socket2 = "0.6"
bytes = "1"
http-body-util = "0.1"
# CLI & Config
clap = { version = "4.5", features = ["derive", "env"] }
knuffel = "3.2.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
dirs = "6"
nix = { version = "0.30", features = ["signal", "process", "user", "fs"] }
sha1 = "0.10"
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
flate2 = "1"
httpdate = "1"
# Telemetry
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
opentelemetry = "0.31"
opentelemetry_sdk = { version = "0.31", features = ["rt-tokio"] }
opentelemetry-otlp = { version = "0.31", features = ["grpc-tonic"] } # Check compatibility with otel 0.22
tracing-opentelemetry = "0.32"
# Error Handling
thiserror = "2"
miette = { version = "7.6.0", features = ["fancy"] }
# Project Dependencies
libips = { path = "../libips" }
[dev-dependencies]
reqwest = { version = "0.12", features = ["blocking", "json"] }
assert_cmd = "2"
predicates = "3"
tempfile = "3"