snix/tvix/docs/src/nix-daemon/handshake.md
Brian Olsen 18da8a205e docs: More documentation of nix daemon protocol
Uses `Set` to mark that the given list is actually a set.
The format on stream is no different from `List` but is nice to
know.

Best effort document string formats.

Documents default values for fields not used in old protocol
versions.

Document handshake, AddMultipleToStore format, Export format and
Import paths format.

Change-Id: I6cbe4c7de3770cc5caafc26229f99a07353ee3e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11984
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Autosubmit: Brian Olsen <me@griff.name>
2024-07-20 15:33:04 +00:00

740 B

client -> server

  • 0x6e697863 :: Int (hardcoded, 'nixc' in ASCII)

server -> client

  • 0x6478696f :: Int (hardcoded, 'dxio' in ASCII)
  • protocolVersion :: Int

client -> server

  • clientVersion :: Int

If clientVersion is 1.14 or later

  • sendCpu :: Bool (hardcoded to false in client)

If sendCpu is true

  • cpuAffinity :: Int (obsolete and ignored)

If clientVersion is 1.11 or later

  • reserveSpace :: Bool (obsolete, ignored and set to false)

server -> client

If clientVersion is 1.33 or later

  • nixVersion :: String

If clientVersion is 1.35 or later

  • trusted :: OptTrusted

server -> client