X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=Documentation%2Ftechnical%2Fdata_structures.txt;h=8776a67b969500db69bd858ef9e7da214f7d0566;hp=46d5acfff7122a83f4c9ef55be77f7bda5e586c1;hb=cc5d9ec286f758de07b57087cfd537759b93dabe;hpb=8b44e99ec009508d7e050ee44d34a1cf0f111dd5 diff --git a/Documentation/technical/data_structures.txt b/Documentation/technical/data_structures.txt index 46d5acff..8776a67b 100644 --- a/Documentation/technical/data_structures.txt +++ b/Documentation/technical/data_structures.txt @@ -28,14 +28,13 @@ Outside of tests, this is typically a singleton. Per-message classes ------------------- -* PublicInbox::MIME - Email::MIME subclass - Common abbreviation: $mime +* PublicInbox::Eml - Email::MIME-like class + Common abbreviation: $mime, $eml Used by: PublicInbox::WWW, PublicInbox::SearchIdx - An representation of an entire email, multipart or not. It's - a subclass of Email::MIME to workaround bugs in old - Email::MIME versions. An option to use libgmime or libmailutils - may be supported in the future for performance and memory use. + An representation of an entire email, multipart or not. + An option to use libgmime or libmailutils may be supported + in the future for performance and memory use. This can be a memory hog with big messages and giant attachments, so our PublicInbox::WWW interface only keeps @@ -47,6 +46,12 @@ Per-message classes Our PublicInbox::V2Writable class may have two objects of this type in memory at-a-time for deduplication. + In public-inbox 1.4 and earlier, Email::MIME and its subclass, + PublicInbox::MIME were used. Despite still slurping, + PublicInbox::Eml is faster and uses less memory due to + lazy header parsing and lazy subpart instantiation with + shorter object lifetimes. + * PublicInbox::Smsg - small message skeleton Used by: PublicInbox::{NNTP,WWW,SearchIdx} Common abbreviation: $smsg