diff options
author | Aspen Smith <root@gws.fyi> | 2024-02-23T19·42-0500 |
---|---|---|
committer | aspen <root@gws.fyi> | 2024-03-11T11·35+0000 |
commit | 54609e8c17e60c1a3feaea5430887a6cc6bdce0f (patch) | |
tree | 1ab4cad26f28e4656b0b461b8edce886e1b486d0 /tvix/glue/Cargo.toml | |
parent | de727bccf99a1dcce2bb335e56af02f80e462dbc (diff) |
feat(tvix/glue): Add AsyncRead wrapper to decompress streams r/7679
Add a new AsyncRead wrapper, DecompressedReader, that wraps an underlying AsyncRead, but sniffs the magic bytes at the start of the stream to determine which compression format is being used out of the three that are supported by builtins.fetchTarball, and switches to the correct decompression algorithm adapter dynamically. This will be used in the implementation of builtins.fetchTarball Change-Id: I892a4683d5c93e67d4c173f3d21199bdc6605922 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11019 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/glue/Cargo.toml')
-rw-r--r-- | tvix/glue/Cargo.toml | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tvix/glue/Cargo.toml b/tvix/glue/Cargo.toml index f4ebfe490688..1ec3832d917f 100644 --- a/tvix/glue/Cargo.toml +++ b/tvix/glue/Cargo.toml @@ -9,7 +9,9 @@ bstr = "1.6.0" bytes = "1.4.0" data-encoding = "2.3.3" futures = "0.3.30" +magic = "0.16.2" nix-compat = { path = "../nix-compat" } +pin-project = "1.1" reqwest = { version = "0.11.22", features = ["rustls-tls-native-roots"], default-features = false } tvix-build = { path = "../build", default-features = false, features = []} tvix-eval = { path = "../eval" } @@ -17,6 +19,7 @@ tvix-castore = { path = "../castore" } tvix-store = { path = "../store", default-features = false, features = []} tracing = "0.1.37" tokio = "1.28.0" +tokio-tar = "0.3.1" tokio-util = { version = "0.7.9", features = ["io", "io-util", "compat"] } thiserror = "1.0.38" serde = "1.0.195" @@ -24,6 +27,10 @@ serde_json = "1.0" sha2 = "0.10.8" walkdir = "2.4.0" +[dependencies.async-compression] +version = "0.4.6" +features = ["tokio", "gzip", "bzip2", "xz"] + [dependencies.wu-manber] git = "https://github.com/tvlfyi/wu-manber.git" |