29 Punkte von xguru 2025-12-12 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Zero-Copy-Binärserialisierungsformat, entwickelt, um die Grenze zwischen Daten-Parsing und Serialisierung aufzuheben
  • Kodiert Daten in einer B-Baum-Struktur innerhalb eines einzelnen zusammenhängenden Puffers, sodass der Zugriff auf und die Änderung von beliebigen Feldern in O(log n) möglich sind
  • Das Speicherformat ist zugleich das Übertragungsformat, sodass Senden und Empfangen sofort ohne separates Parsing oder erneute Serialisierung möglich sind
    • Direkt nach dem Empfang können Schlüsselabfragen, Wertänderungen und das erneute Senden vollständig nur per Speicherkopie (memcpy) verarbeitet werden
  • Schemafreie (self-describing) Struktur, nutzbar ohne IDL oder Schemadefinition
    • Unterstützt wechselseitige Konvertierung mit JSON und stellt damit Kompatibilität mit bestehenden APIs und Datensätzen sicher
    • Für Debugging und Nachrichteninspektion ist die Ausgabe im JSON-Format möglich
  • Leistungsorientiertes Design
    • Besteht aus einer cachefreundlichen B-Baum-Struktur und einer minimalen C-Implementierung von 9,3 kB
    • Bis zu 120-mal schneller als die schnellsten JSON-Bibliotheken mit SIMD und bis zu 242-mal schneller als Google Flatbuffers
    • Gehört zu den schnellsten schemafreien Datenformaten der Welt
  • Technische Merkmale
    • Unterstützung für Zero-Copy-Lesen/Schreiben, alle I/O-Operationen mit Komplexität O(log n)
    • Eingebaute Pointer-Validierung und Laufzeit-Typsicherheit
    • Kein Einsatz von malloc(), der Aufrufer stellt den Puffer direkt bereit
    • Vorhersagbare Latenzzeiten und geringer Speicherverbrauch
    • Basierend auf C11 (GNU-C-Syntax), ohne externe Abhängigkeiten
    • Optional Nutzung von yyjson als Unterabhängigkeit für JSON-Konvertierung
  • API-Aufbau
    • Buffer API: basiert auf vom Nutzer bereitgestellten Puffern, maximale Speicherkontrolle
    • Context API: abstrahiert Speicherverwaltung und bietet eine einfache Schnittstelle
  • Vergleiche und Benchmark-Ergebnisse
    • Gegenüber Textformaten wie JSON, BSON und MessagePack überragende Verarbeitungsgeschwindigkeit
    • Bietet gegenüber Binärformaten wie Cap’n Proto und Flatbuffers mehr Flexibilität und bessere Änderbarkeit
    • Erzielt Spitzenwerte in der Performance mit realen Twitter-API-Daten, Kostya JSON, C++-Serialisierungs-Benchmarks usw.
  • Sicherheitsdesign
    • Enthält Bounds-Checks zum Overflow-Schutz, generationsbasierte Pointer-Makros, Rekursionsbegrenzung und Laufzeit-Typprüfung
    • Geeignet für die Verarbeitung nicht vertrauenswürdiger Eingabedaten
  • Einsatzkontext
    • Maximiert CPU-Effizienz in Hochleistungs-Netzwerk-Messaging, Echtzeit-Datenverarbeitung, Embedded-Umgebungen usw.
    • Sofort einsetzbar in Systemen auf Basis von C-Schnittstellen
  • Lizenz und Erweiterbarkeit
    • Als MIT-Lizenz veröffentlicht, eigenständige C-Implementierung
    • Es gibt eine zusätzliche Roadmap mit Sprach-Bindings, Kompressions-Benchmarks und einer offiziellen Spezifikation
  • Ursprung und Hintergrund
    • Unabhängig neu implementiertes Projekt auf Basis des im 2024 veröffentlichten Papers Lite² vorgeschlagenen Konzepts
    • Der Name Lite³ bedeutet, dass es noch leichter als Lite² ist

Noch keine Kommentare.

Noch keine Kommentare.