inapt 0.2.0

A minimal Debian/Ubuntu APT repository proxy written in Rust. Exposes a valid APT repo structure over HTTP, sourcing .deb packages from GitHub Releases.
Documentation
[[bin]]
name = "inapt"
path = "src/main.rs"

[[bin]]
name = "inapt-genkey"
path = "src/bin/genkeys.rs"

[dependencies.anyhow]
version = "1.0"

[dependencies.ar]
version = "0.9"

[dependencies.async-trait]
version = "0.1"

[dependencies.axum]
default-features = false
features = ["http2", "tokio"]
version = "0.8"

[dependencies.chrono]
default-features = false
features = ["now", "serde"]
version = "0.4"

[dependencies.flate2]
version = "1"

[dependencies.futures]
version = "0.3"

[dependencies.hex]
version = "0.4"

[dependencies.http]
version = "1.4"

[dependencies.md-5]
version = "0.10"

[dependencies.opentelemetry]
default-features = false
version = "0.31"

[dependencies.opentelemetry-appender-tracing]
default-features = false
version = "0.31"

[dependencies.opentelemetry-otlp]
features = ["grpc-tonic", "tls-roots"]
version = "0.31"

[dependencies.opentelemetry-semantic-conventions]
default-features = false
version = "0.31"

[dependencies.opentelemetry_sdk]
default-features = false
features = ["logs", "metrics", "rt-tokio", "trace"]
version = "0.31"

[dependencies.reqwest]
default-features = false
features = ["json", "rustls-tls", "stream"]
version = "0.12"

[dependencies.reqwest-middleware]
version = "0.4"

[dependencies.reqwest-retry]
version = "0.7"

[dependencies.reqwest-tracing]
version = "0.5"

[dependencies.sequoia-openpgp]
default-features = false
features = ["allow-experimental-crypto", "allow-variable-time-crypto", "crypto-rust"]
version = "2.1"

[dependencies.serde]
features = ["derive"]
version = "1.0"

[dependencies.serde_json]
version = "1.0"

[dependencies.sha2]
version = "0.10"

[dependencies.tar]
version = "0.4"

[dependencies.temp-file]
version = "0.1"

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
default-features = false
features = ["fs", "macros", "net", "rt-multi-thread"]
version = "1.48"

[dependencies.toml]
version = "0.9.8"

[dependencies.tower-http]
features = ["trace"]
version = "0.6"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-opentelemetry]
default-features = false
features = ["metrics"]
version = "0.32"

[dependencies.tracing-subscriber]
features = ["env-filter", "fmt", "registry"]
version = "0.3"

[dependencies.xz2]
version = "0.1"

[dependencies.zstd]
version = "0.13"

[dev-dependencies.mockall]
version = "0.14"

[dev-dependencies.similar-asserts]
version = "1.7"

[lib]
name = "inapt"
path = "src/lib.rs"

[package]
authors = ["Jeremie Drouet <jeremie.drouet@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["command-line-utilities", "network-programming", "web-programming::http-server"]
default-run = "inapt"
description = "A minimal Debian/Ubuntu APT repository proxy written in Rust. Exposes a valid APT repo structure over HTTP, sourcing .deb packages from GitHub Releases."
documentation = "https://docs.rs/inapt"
edition = "2024"
keywords = ["apt", "debian", "ubuntu", "proxy", "github"]
license = "AGPL-3.0"
name = "inapt"
readme = "readme.md"
repository = "https://github.com/jdrouet/inapt"
version = "0.2.0"

[package.metadata.cargo-machete]
ignored = ["md-5"]

[package.metadata.deb]
assets = [["target/release/inapt", "/usr/bin/", "755"], ["package/systemd/inapt.default", "/etc/default/inapt", "600"], ["package/config.toml", "/etc/inapt/config.toml.example", "600"]]
conf-files = ["/etc/default/inapt"]
maintainer-scripts = "package/scripts"
name = "inapt"

[package.metadata.deb.systemd-units]
enable = true
restart-after-upgrade = true
start = true
unit-scripts = "package/systemd/"