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

@ -46,6 +46,8 @@ async-process = "2.2.4"
async-stream = "0.3.5"
async-tempfile = "0.4.0"
axum = "0.7.5"
axum-extra = "0.9.3"
axum-range = "0.4.0"
# https://github.com/liufuyang/bigtable_rs/pull/86
bigtable_rs = { git = "https://github.com/liufuyang/bigtable_rs", rev = "1818355a5373a5bc2c84287e3a4e3807154ac8ef" }
bitflags = "2.6.0"