Node codecs

exception larch.codec.CodecError(msg)
class larch.codec.NodeCodec(key_bytes)

Encode and decode nodes from their binary format.

Node identifiers are assumed to fit into 64 bits.

Leaf node values are assumed to fit into 4 gibibytes.

decode(encoded)

Decode node of any type.

decode_index(encoded)

Decode an index node from its encoded byte string.

decode_leaf(encoded)

Decode a leaf node from its encoded byte string.

encode(node)

Encode a node of any type.

encode_index(node)

Encode an index node as a byte string.

encode_leaf(node)

Encode a leaf node as a byte string.

format = 1
index_size(keys, values)

Return size of an index node with the given pairs.

leaf_size(keys, values)

Return size of a leaf node with the given pairs.

leaf_size_delta_add(old_size, value)

Return size of node that gets a new key/value pair added.

old_size is the old size of the node. The key must not already have existed in the node.

leaf_size_delta_replace(old_size, old_value, new_value)

Return size of node that gets a value replaced.

max_index_pairs(node_size)

Return number of index pairs that fit in a node of a given size.

size(node)

Return encoded size of a node, regardless of type.