Files
euzuandGitHub c592411409 Fix/provider priority (#856)
Bug Fixes

    Improved provider capacity management and reservation handling for shared connections.
    Added support for excluding providers during connection allocation.
    Improved grace-period expiration and concurrent access handling.
    Preserved reserved capacity during fallback and preemptive allocations.

Chores

    Improved unused-dependency checks and command configuration.
    Removed unused dependencies across multiple components.
    Added exceptions for dependencies used indirectly through macros or renamed packages.

Tests

    Added coverage for provider reservations, fallback allocation, grace-period expiry, and concurrent grace access.
2026-09-04 10:49:45 +02:00

56 lines
1.9 KiB
TOML

[package]
name = "tuliprox-hls"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
description = "HLS proxy: session and lease lifecycle, manifest refresh, segment cache and terminal tails"
[lints]
workspace = true
[features]
# Exposes helpers that are otherwise `#[cfg(test)]`, so the backend's own tests
# can drive the proxy. Enabled only from `[dev-dependencies]`; never in a build.
# Some of those helpers build `HlsTsSpliceEvidence` values, so they need the same
# feature on `tuliprox-mpegts`; forwarding it here keeps the feature self-contained
# instead of relying on the consumer to enable both.
test-support = ["tuliprox-mpegts/test-support"]
[dependencies]
shared = { workspace = true }
tuliprox-core = { workspace = true }
tuliprox-mpegts = { workspace = true }
tuliprox-parser = { workspace = true }
tuliprox-session = { workspace = true }
arc-swap.workspace = true
axum = { version = "0.8.9", features = ["macros", "default", "ws"] }
bytes.workspace = true
chrono.workspace = true
base64.workspace = true
blake3.workspace = true
fastrand.workspace = true
sha2.workspace = true
thiserror.workspace = true
zeroize.workspace = true
rand = "0.9.5"
futures.workspace = true
log.workspace = true
lru = "0.16.4"
reqwest = { version = "0.13.4", features = ["json", "stream", "rustls", "socks", "form", "query"] }
serde.workspace = true
serde_json.workspace = true
tokio = { workspace = true, features = ["rt-multi-thread", "fs", "time", "macros", "sync"] }
tokio-util = { version = "0.7.19", features = ["io", "io-util"] }
url.workspace = true
http-body-util = "0.1.5"
[dev-dependencies]
rand = "0.9.5"
tempfile = "3.27.0"
tuliprox-mpegts = { workspace = true, features = ["test-support"] }
tokio = { workspace = true, features = ["test-util"] }
async-compression = { version = "0.4.43", features = ["tokio", "brotli", "deflate", "gzip", "zlib", "zstd"] }
filetime = "0.2.29"
flate2 = "1.1.9"
brotli.workspace = true