snix/tvix/glue/src
Aspen Smith 3107961428 feat(tvix/eval): Implement builtins.fetchTarball
Implement a first pass at the fetchTarball builtin.

This uses much of the same machinery as fetchUrl, but has the extra
complexity that tarballs have to be extracted and imported as store
paths (into the directory- and blob-services) before hashing. That's
reasonably involved due to the structure of those two services.

This is (unfortunately) not easy to test in an automated way, but I've
tested it manually for now and it seems to work:

    tvix-repl> (import ../. {}).third_party.nixpkgs.hello.outPath
    => "/nix/store/dbghhbq1x39yxgkv3vkgfwbxrmw9nfzi-hello-2.12.1" :: string

Co-authored-by: Connor Brewster <cbrewster@hey.com>
Change-Id: I57afc6b91bad617a608a35bb357861e782a864c8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11020
Autosubmit: aspen <root@gws.fyi>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-04-20 14:58:04 +00:00
..
builtins feat(tvix/eval): Implement builtins.fetchTarball 2024-04-20 14:58:04 +00:00
tests feat(tvix/eval): contextful JSON operations 2024-04-13 10:11:18 +00:00
.skip-subtree refactor(tvix): move tvix glue code into glue crate 2023-11-04 15:18:44 +00:00
decompression.rs chore(tvix/glue): migrate from test_case to rstest 2024-04-19 19:22:10 +00:00
fetchurl.nix refactor(tvix): move tvix glue code into glue crate 2023-11-04 15:18:44 +00:00
known_paths.rs refactor(nix-compat/store_path): take [u8;32] for outer fingerprint 2024-03-14 16:52:42 +00:00
lib.rs feat(tvix/glue): Add AsyncRead wrapper to decompress streams 2024-03-11 11:35:18 +00:00
refscan.rs refactor(tvix): move tvix glue code into glue crate 2023-11-04 15:18:44 +00:00
tvix_build.rs feat(tvix/nix-compat): Use StorePath in Output 2024-02-21 11:38:03 +00:00
tvix_io.rs fix(tvix): Avoid buffering file into memory in builtins.hashFile 2024-04-09 17:31:58 +00:00
tvix_store_io.rs feat(tvix/eval): Implement builtins.fetchTarball 2024-04-20 14:58:04 +00:00