Warum dieses Projekt?

Bei großen Datenmengen kann schon das Einlesen teuer werden. Textformate wie JSON sind gut lesbar, müssen aber meist zerlegt und in neue Datenstrukturen übertragen werden. vBuf ist für Fälle gedacht, in denen Programme vorhandene Daten möglichst direkt verwenden sollen – etwa Messwerte, Simulationen oder Modellbausteine.

Daten lesen, ohne alles neu aufzubauen

Stell dir eine Datei mit einer Million Messwerten vor. Für eine Summe braucht das Programm vor allem die Zahlen, nicht für jede Zeile ein neues Objekt mit Feldnamen. vBuf beschreibt, wo zusammengehörige Werte liegen und wie sie gelesen werden können.

Die Lesesoftware prüft unter anderem Größen und Bereichsgrenzen, bevor sie passende Ansichten auf diese Bytes freigibt. Zero-Copy bedeutet dabei: Die Nutzdaten müssen für diesen Zugriff nicht noch einmal in einen zweiten Puffer kopiert werden. Prüfungen und die eigentliche Rechnung bleiben trotzdem nötig.

Was es von einer bloßen Byte-Datei unterscheidet

Eine rohe Zahlenfolge kann sehr schnell sein, sagt für sich allein aber wenig über ihre Struktur aus. vBuf verbindet ein beschriebenes Layout mit direktem Zugriff. Anders als ein universeller Objekt-Serializer steht nicht das Wiederherstellen beliebiger Sprachobjekte im Mittelpunkt.

Das Format ist nicht auf KI festgelegt. vBuf-ML ergänzt die Bedeutung von Modellbestandteilen und deren Laden; Bloom nutzt vBuf als gemeinsamen Datenaustausch für Werkzeuge. Die Grundlage bleibt ein allgemeines Datenformat.

Benchmark: direkter Zugriff fast auf dem Niveau nativer Arrays

Im dokumentierten Rust-Test wurden eine Million Datensätze verarbeitet. Jeder Datensatz besteht aus einer Kennnummer und einem Zahlenwert. Verglichen wurden native Rust-Arrays mit echten vBuf-Daten im gleichen spaltenweisen Aufbau.

Eine Million Zahlenwerte summieren Vorbereiteter Lesezugriff · kürzer ist besser

Vorbereiteter Scan

Native Arrays0,756 ms
vBuf0,754 ms

Alle Balken verwenden dieselbe lineare Skala von 0 bis 1 ms. Gleicher spaltenweiser Datenaufbau in Rust; mittlere Werte aus 150 Messungen je Variante. Erstellen und Vorbereiten der Daten nicht mitgemessen.

Beim Summieren der Zahlenwerte lagen die mittleren Laufzeiten bei rund 0,756 Millisekunden für native Arrays und 0,754 Millisekunden für vBuf. Die sinnvolle Aussage ist nicht ein spektakulärer Vorsprung, sondern der sehr geringe Unterschied in diesem vorbereiteten Lesetest.

Die Datenansichten standen vor Beginn der Zeitmessung bereit. Das Schreiben der Datei und die Vorbereitung sind nicht in diesen Balken enthalten. Der Bericht trennt diese Schritte ausdrücklich; die Schreibtests benötigen mehrere Millisekunden. Die Ergebnisse stammen aus fünf Läufen mit zusammen 150 Messwerten je Variante und sind kein Vergleich mit JSON oder anderen Dateiformaten.

Messaufbau und Ergebnisse auf GitHub (Englisch) →

Quellcode & Dokumentation

Quellcode und die verfügbare Projektdokumentation findest du auf GitHub. Dort stehen auch die Hinweise zum Bauen, zur Nutzung und zur Lizenz.

vBuf auf GitHub ↗

Weiter entdecken