tvl-depot/users/picnoir/tvix-daemon
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
..
src feat(tvix/nix-compat/nix_daemon/version): add ProtocolVersion 2024-04-18 12:22:08 +00:00
vm-test feat(users/picnoir/tvix-daemon) add small VM integration test 2024-03-19 16:51:58 +00:00
Cargo.lock refactor(tvix/nix-compat): reorganize wire and bytes 2024-04-13 10:09:35 +00:00
Cargo.nix feat(tvix/eval): Implement builtins.fetchTarball 2024-04-20 14:58:04 +00:00
Cargo.toml refactor(tvix/nix-compat): reorganize wire and bytes 2024-04-13 10:09:35 +00:00
default.nix feat(tvix/nix-compat): introduce write_bytes 2024-04-03 11:25:14 +00:00
README.md docs(users/picnoir/tvix-daemon): update readme shell 2024-03-22 05:58:49 +00:00
shell.nix

Tvix-daemon

A super incomplete implementation of a Nix-compatible daemon. Same as the original except it's backed by Tvix-Store.

For now, this is mostly used as a playground to implement the Nix daemon wire format in nix-compat.

On the long run, I hope this to be useful to get some real-world usage experience of tvix-store.

Build

When inside this directory:

mg shell :shell
cargo build