FlatBuffers Integration¶
zLMDB integrates FlatBuffers as a core component for high-performance, zero-copy data serialization. This section documents the architecture, design decisions, and technical implementation details.
Overview¶
FlatBuffers is central to zLMDB’s design, not incidental. The key insight is:
FlatBuffers schemas serve as the single source of truth for data representation — across both storage (data-at-rest) and transport (data-in-transit).
This enables a unified data model where:
zLMDB handles persistent storage with memory-mapped access
Autobahn|Python handles WAMP messaging and transport
Both operate on the same FlatBuffers data model
The result is a schema-first, zero-copy, end-to-end data plane for WAMP applications.
Why FlatBuffers?¶
FlatBuffers was chosen for several key properties:
Zero-copy access — Read structured data directly from memory without deserialization overhead
Schema evolution — Forward and backward compatibility without breaking existing data
Cross-language support — Same schema works in Python, C++, JavaScript, and other languages
Memory efficiency — No intermediate representation; data is accessed in-place
Reflection support — Runtime schema introspection via
.bfbsfiles enables dynamic tooling
Documentation Pages¶
- WAMP Zero-Copy Data Plane
Architecture and design of the FlatBuffers-based zero-copy data plane for WAMP, explaining how data flows from storage through transport without serialization overhead.
- Vendoring Design and Native Binaries
Technical details on native binaries, manylinux compliance, ISA compatibility, and PyPy support — explaining how and why FlatBuffers and flatc are bundled in Python wheels.