About
Video presentation about project is recommended for the first time visitors.
The Extensible Binary Universal Protocol (XBUP) is prototype of general purpose multi-layer binary data protocol and file format with primary focus on abstraction and data transformation.
Key features:
- Unified block-tree structure - Minimalist tree structure based on integer and binary blob only
- Build-in and custom data types - Support for data type definitions and catalog of types
- Transformation framework - Automatic and manual data conversions and compatibility handling
Secondary features includes some capabilities inspired by markup languages like SGML/XML and data representation languages like YAML, JSON [RFC4627] and similar binary formats like ASN.1, HDF5, efficient XML or Protocol Buffers.
- Extensibility
- Unconstrained values
- Internal and external referencing
- Data life-cycle / definition evolution
Primary focus on abstraction makes this protocol somewhat different compare to other similar binary formats which focus on efficiency, serialization or binary representation of specific mark-up language. Please see "Formats comparison" section for more.
Goals
The primary goal of this project is to design a communication protocol / data format with the following characteristics, ordered by priority:
- Universal - Capable to represent any type of data, suitable for wide use including streaming, long-term storage and parallel access
- Independent - Not tightly linked to a particular spoken language, product, company, processing architecture or programming language
- Declarative - Self sufficient for data type definition and with ability to build data types on top of each other and to combine them together
- Normative - Providing reference form for data representation
- Flexible - Support for data transformations, compatibility and extensibility handling
- Efficient - Effective data compacting / compression support for plain binary and structured data