guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Nix Daemon protocol post / Tvix


From: Ludovic Courtès
Subject: Re: Nix Daemon protocol post / Tvix
Date: Thu, 16 Nov 2023 16:14:20 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Hi Florian,

Florian Klink <flokli@flokli.de> skribis:

> I stumbled across your post
> https://guix.gnu.org/blog/2023/a-build-daemon-in-guile/.
>
> I'm working on Tvix (https://tvix.dev/), a reimplementation of Nix in
> Rust.

Neat, thanks for reaching out to us!

[...]

> For example, tvix-store is using a content-addressed merkle storage DAG
> (tvix-castore) under the hood, allowing partial substitution and store
> path subtree sharing.
>
> However we can still provide a Nix-compatible view into all this, so can
> synthesize NAR Archives and NARInfo files for a given store path on
> demand, if we want to. We currently use the HTTP Binary cache protocol
> as a store interface for Nix (via `nar-bridge`, which spins up a
> webserver).
>
> At some point, we now also want to implement the daemon protocol - both
> a client and server, to allow talking to Nix more directly - be it a
> "remote store", or just querying the local Nix store for certain
> information. This is so far mostly oriented towards store operations (as
> we didn't do too much work on the Builder interface yet)

All this sounds nice.

> Nevertheless, I think we should collaborate.
>
> Be that:
>  - just a simple exchange of notes about the behaviour of the protocol
>        and certain operations
>  - discussions about designing new protocols, ensuring interop between
>        tvix-store and guix stores (there's some ideas for P2P substitution)
>  - or even collaboration and work on getting tvix-store (and tvix-build,
>        once it's there) to work with a Guile frontend :-)
>
> I think we're sharing a lot of common interest and would like to start
> having these conversations :-)

That’s a good idea!

My take is that the daemon rewrite in Guix will aim for 100%
compatibility at the protocol level (in fact part of what’s needed is
already available as (guix …) modules), probably with just the same
feature set.  Christopher Baines may have clearer ideas.

I’m interested in hearing how you view content-addressing and its use.
In Guix there’s one proposal based on ERIS:

  https://issues.guix.gnu.org/52555#8

Previously there was an experiment to implement what you described at
“partial substitution”:

  https://lists.gnu.org/archive/html/guix-devel/2021-01/msg00080.html

Hot topics! :-)

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]