Vixen
02b45cc4
csharp
public static class BundleFormat

The layout of a .bundle, shared by the reader and the writer.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

A header, an index sorted by ObjectId, and one contiguous payload region. Sorted so that a lookup is a binary search over sixteen-byte keys with no allocation and no dictionary to build at load time — a bundle can be opened, one chunk read out of two thousand, and closed, without touching the other one thousand nine hundred and ninety-nine.

The CRC covers the payload region only, and checking it is the caller's choice. Verifying a two-hundred-megabyte bundle on every open costs a full read of a file whose whole point is that it is read lazily; docs/plan/08 puts the check on cached and remote content, where the bytes arrived over a network, and not on content that shipped inside the application package.

Fields and properties (4)

  • public static ReadOnlySpan<byte> Magic

    The eight bytes a bundle starts with.

  • public const int Version

    The layout version.

  • public const int HeaderSize

    Bytes before the index.

  • public const int EntrySize

    Bytes per index entry: the id, then a 32-bit offset and length.

Used by (2)

  • BundleOdbBackendVixen.Core.Serialization
  • BundleWriterVixen.Core.Serialization