Skip to main content

TOOLING_ELEMENT_MEMORY_LIMIT

Constant TOOLING_ELEMENT_MEMORY_LIMIT 

Source
pub const TOOLING_ELEMENT_MEMORY_LIMIT: usize = _; // 1_073_741_824usize
Expand description

Element-memory bound buffa’s build tooling applies to a descriptor set — the protoc plugins to a CodeGeneratorRequest, buffa-build to a FileDescriptorSet.

Much higher than buffa::DEFAULT_ELEMENT_MEMORY_LIMIT, which is sized for untrusted input: a build’s descriptors come from a compiler the caller invoked, or a file the caller named. It is deliberately not unbounded, so a truncated or corrupt descriptor set still fails with an error rather than exhausting memory.

1 GiB is roughly twice what the largest schemas need. Descriptor types are wide structs, so the element footprint runs several times the encoded size — around 6x in practice, making this about 160 MB of descriptors.