1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//! InnoDB binary format parsing.
//!
//! This module contains types and functions for reading the on-disk structures
//! used by MySQL's InnoDB storage engine, including page headers/trailers,
//! B+Tree index pages, checksum validation, SDI metadata, redo log records,
//! undo log pages, LOB (large object) pages, and tablespace-level metadata.
//!
//! Start with [`tablespace::Tablespace`] to open a `.ibd` file, then use
//! [`page::FilHeader`] to inspect individual pages.
//!
//! # Modules
//!
//! | Module | Purpose |
//! |--------|---------|
//! | [`tablespace`] | File I/O abstraction, page size auto-detection, page iteration |
//! | [`page`] | FIL header (38 bytes), FIL trailer (8 bytes), FSP header parsing |
//! | [`page_types`] | Page type enum mapping `u16` codes to names and descriptions |
//! | [`checksum`] | CRC-32C and legacy InnoDB checksum validation |
//! | [`corruption`] | Corruption pattern classification (bitrot, torn write, zero-fill) |
//! | [`export`] | Record export logic — column layout extraction and record decoding |
//! | [`index`] | INDEX page internals — B+Tree header, FSEG, system records |
//! | [`record`] | Row-level record parsing — compact format, variable-length fields |
//! | [`schema`] | Schema extraction and DDL reconstruction from SDI metadata |
//! | [`sdi`] | SDI metadata extraction from MySQL 8.0+ tablespaces |
//! | [`log`] | Redo log file header, checkpoints, and data block parsing |
//! | [`undo`] | UNDO log page header and segment header parsing |
//! | [`lob`] | Large object page headers (old-style BLOB and MySQL 8.0+ LOB) |
//! | [`compression`] | Compression algorithm detection and decompression (zlib, LZ4) |
//! | [`encryption`] | Encryption detection from FSP flags, encryption info parsing |
//! | [`keyring`] | MySQL `keyring_file` plugin format reader |
//! | [`decryption`] | AES-256-CBC page decryption using tablespace keys |
//! | [`vendor`] | Vendor detection (MySQL, Percona, MariaDB) and format variants |
//! | [`constants`] | InnoDB page/file structure constants from MySQL source headers |