Module nix_compat::wire

source ·
Expand description

Module parsing and emitting the wire format used by Nix, both in the nix-daemon protocol as well as in the NAR format.

Modules§

Structs§

  • Reads a “bytes wire packet” from the underlying reader. The format is the same as in crate::wire::bytes::read_bytes, however this structure provides a AsyncRead interface, allowing to not having to pass around the entire payload in memory.
  • Writes a “bytes wire packet” to the underlying writer. The format is the same as in crate::wire::bytes::write_bytes, however this structure provides a AsyncWrite interface, allowing to not having to pass around the entire payload in memory.
  • Protocol versions are represented as a u16. The upper 8 bits are the major version, the lower bits the minor. This is not aware of any endianness, use [crate::wire::read_u64] to get an u64 first, and the try_from() impl from here if you’re receiving over the Nix Worker protocol.

Functions§

  • Read a “bytes wire packet” from the AsyncRead. Rejects reading more than allowed_size bytes of payload.
  • Read a “bytes wire packet” of from the AsyncRead and tries to parse as string. Internally uses read_bytes. Rejects reading more than allowed_size bytes of payload.
  • Writes a “bytes wire packet” to a (hopefully buffered) AsyncWriteExt.