tvl-depot/users/picnoir/tvix-daemon
Picnoir c35a5ff611 feat(users/picnoir/tvix-daemon): parse up to the operation
Using all the primitives recently implemented to nix-compat to reach
the point where the Nix client start to send us operation requests.

Using a small integration test script (or the VM test, but let's face
it, it's too slow to be useful), we manage to reach the point where
we're able to read a store operation:

    2024-03-21T18:53:27.624876Z  INFO tvix_daemon: Incoming connection addr=unix
    2024-03-21T18:53:27.625312Z  INFO worker:perform_init_handshake: tvix_daemon: Trust sent conn=Connection(unix) conn=Connection(unix)
    2024-03-21T18:53:27.625406Z  INFO worker: tvix_daemon: Client hanshake succeeded conn=Connection(unix)
    2024-03-21T18:53:27.625488Z  INFO worker: tvix_daemon: Operation received op=SetOptions conn=Connection(unix)

We had to take some shortcuts wrt. stderr/log management. The CPP Nix
codebase is a bit confusing in that area. I'll need to spend more time
reading this to fully understand what's happening there. For now,
sending the STDERR_LAST command to the client does the trick.

Change-Id: I9b0e20a52d885e64fe29188496aac5334de61edd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11233
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-04-03 11:32:50 +00:00
..
src feat(users/picnoir/tvix-daemon): parse up to the operation 2024-04-03 11:32:50 +00:00
vm-test feat(users/picnoir/tvix-daemon) add small VM integration test 2024-03-19 16:51:58 +00:00
Cargo.lock feat(users/picnoir): drop tvix-store crate usage 2024-03-29 19:00:07 +00:00
Cargo.nix feat(users/picnoir): drop tvix-store crate usage 2024-03-29 19:00:07 +00:00
Cargo.toml feat(users/picnoir): drop tvix-store crate usage 2024-03-29 19:00:07 +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 feat(users/picnoir/tvix-daemon): introduce tvix-daemon 2024-03-19 16:51:43 +00:00

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