Streamingparser
Een parsetechniek die een bestand stapsgewijs in kleine stukken leest in plaats van het volledige bestand in één keer in het geheugen te laden, waarmee tools zeer grote MBOX-bestanden van tientallen of honderden gigabytes kunnen openen en indexeren met een laag geheugengebruik.
Een streamingparser verwerkt een bestand als een reeks bytes of regels, waarbij op elk moment slechts een kleine buffer en de huidige parsertoestand in het geheugen worden gehouden. Dit staat in contrast met een gebufferde aanpak die het volledige bestand in het geheugen laadt voordat het parseren begint. Voor MBOX-bestanden kan een streamingparser berichtgrenzen identificeren (de scheidingsregels "From "), kopteksten extraheren en byte-offsets vastleggen zonder ooit meer dan één bericht tegelijk in het geheugen te houden.
Het praktische voordeel is dat bestandsgrootte geen beperking meer is. Een MBOX-export van 50 GB uit een jarenlang Gmail-archief wordt op dezelfde manier geopend als een testbestand van 1 MB — de parser leest het bestand opeenvolgend, bouwt een lichtgewicht index van berichtposities op en springt direct naar elk bericht wanneer je het selecteert. Het geheugengebruik blijft ruwweg constant, ongeacht de archiefgrootte.
De streamingparser van Mbox Viewer is ontworpen voor dit gebruik. Bij de eerste opening van een MBOX-bestand stroomt het door het bestand om een binaire index op te bouwen met de byte-offset en de belangrijkste metadata voor elk bericht. Bij volgende openingen wordt de index in minder dan een seconde geladen, zodat de parser alleen berichten opnieuw hoeft te lezen die je daadwerkelijk opent.
Verwante begrippen
Een compact indexbestand dat Mbox Viewer naast een MBOX-archief schrijft na de eerste verwerking, waarin byte-offsets en metadata van berichten zijn opgeslagen voor een vrijwel direct heropenen zonder het volledige bestand opnieuw te scannen.
Een tekstbestand dat meerdere e-mailberichten achter elkaar opslaat, elk beginnend met een scheidingsregel "From ". Dit is het formaat dat Google Takeout produceert bij het exporteren van je Gmail-archief.