Expand description
mkit object types.
Spec reference: docs/SPEC-OBJECTS.md §1–§9. Briefly:
- Every stored object begins with the 6-byte v1 prologue
[u8 object_type][4B "MKT1"][u8 0x01]. - Hashes are 32-byte BLAKE3.
- Integers are little-endian. Timestamps are
u64(widened fromu32in the mkit-era). - Tree entry names are 1..=255 bytes, forbid
\0 / \\and the names./.., and MUST be lex-sorted with no duplicates. - Identity is a tagged union
[u8 kind][u16 LE len][payload];lenis 1..=IDENTITY_MAX_LEN, ed25519 MUST havelen == 32.
Structs§
- Blob
- Blob: raw bytes, no interpretation. Max 1 GiB at the storage layer.
- Chunked
Blob - Chunked-blob manifest. See
SPEC-OBJECTS.md§7. - Commit
- Commit object. See
SPEC-OBJECTS.md§5. - Delta
- Delta object (pack-only). See
SPEC-OBJECTS.md§8. - Identity
- Tagged-union identity. Owned bytes, cheap to clone — payload is at
most
IDENTITY_MAX_LEN= 4 KiB. - Remix
- Remix object. See
SPEC-OBJECTS.md§6. - Remix
Source - Remix source provenance.
upstream_idis opaque 32-byte caller- chosen content (e.g.BLAKE3(repo_url)); core never interprets it. - Tag
- Annotated / signed tag object. See
SPEC-OBJECTS.md§6a andSPEC-SIGNING.md§4a. - Tree
- Tree: lex-sorted list of entries.
- Tree
Entry - A single entry in a
Treeobject.
Enums§
- Entry
Mode - Tree entry mode (1 byte).
- Identity
Kind - Tagged-union author identity. See
SPEC-OBJECTS.md§9. - Mkit
Error - All decode / validation errors raised by the serialize module, plus a small number of construction-time errors.
- Object
- Unified object union.
- Object
Type - Object type tag (1 byte, at offset 0 of the v1 prologue).
Constants§
- IDENTITY_
MAX_ LEN - Upper bound on
Identitypayload length. Rejected at decode time asIdentityTooLargefor anything greater. - MAGIC
- Fixed 4-byte magic at offset 1 of every v1 object.
- SCHEMA_
VERSION - Current (and only) v1 schema version byte.
- TAG_
NAME_ MAX_ LEN - Upper bound on a
Tagnamepayload. Rejected at decode time asMkitError::TagNameInvalidfor anything outside1..=TAG_NAME_MAX_LEN.