feat(tvix/nar-bridge): implement range request for NARs

With an implementation of AsyncRead + AsyncSeek, axum-range can answer
range requests.

We only use it if a range has been requested, as it uses more memory
than the linear variant.

Change-Id: I0072b0a09b328f3e932f14567a2caa3a49abcbf7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12509
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Reviewed-by: yuka <yuka@yuka.dev>
This commit is contained in:
Florian Klink 2024-09-25 22:05:04 +02:00 committed by clbot
parent 16a3b90125
commit 2e4a373a04
5 changed files with 350 additions and 19 deletions

View file

@ -5,6 +5,8 @@ edition = "2021"
[dependencies]
axum = { workspace = true, features = ["http2"] }
axum-extra = { workspace = true }
axum-range = { workspace = true }
tower = { workspace = true }
tower-http = { workspace = true, features = ["trace"] }
bytes = { workspace = true }