Skip to main content

Module layout

Module layout 

Source
Expand description

Where everything sits in the file.

+--------------------------------------------------+ 0
| header, 16 bytes                                 |
+--------------------------------------------------+ 16
| sections, back to back, each 8 byte aligned      |
+--------------------------------------------------+ footer_offset
| footer, a run of iris-abi records                |
+--------------------------------------------------+ len - 56
| trailer, 56 bytes                                |
+--------------------------------------------------+ len

The directory lives at the end rather than the front, because a writer that streams a large dataset does not know how long a section is until it has finished writing it, and the alternative is either buffering the whole thing or seeking back over it. The magic appears at both ends so that a file truncated in the middle is distinguishable from a file that was never an iris container in the first place.

Modules§

tag
The footer record tags.

Enums§

DecoderLocation
Where the decoder module for a dataset lives.
SchemaEncoding
How the schema bytes are encoded.
SectionKind
What a section holds.

Constants§

DIGEST_SIZE
How wide a digest is, in bytes.
FORMAT_MAJOR
The format major version this build writes and reads.
FORMAT_MINOR
The format minor version this build writes.
HEADER_SIZE
How wide the header is, in bytes.
MAGIC
The first eight bytes of every container, and the last eight.
MIN_SIZE
The smallest a container can possibly be, which is a header, an empty footer and a trailer.
TRAILER_SIZE
How wide the trailer is, in bytes.