mirror of
https://codeberg.org/Toasterson/ips.git
synced 2026-04-10 13:20:42 +00:00
- Implemented `DepotRepo` for repository access, including methods for catalog path, file path, and manifest retrieval. - Introduced foundational HTTP routes for catalog, manifest, file, and package info retrieval. - Added integration tests to validate repository setup and basic server functionality. - Modularized HTTP handlers for better maintainability and extended them with new implementations like `info` and `manifest` handling. - Refactored `main` function to simplify initialization and leverage reusable `run` logic in a new `lib.rs`. - Updated `Cargo.toml` and `Cargo.lock` to include new dependencies: `walkdir` and updated testing utilities.
54 lines
1.7 KiB
TOML
54 lines
1.7 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"] }
|
|
|
|
# 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"
|
|
walkdir = "2.5.0"
|