XBUP - eXtensible Binary Universal Protocol - Documentation
[Up]

# Project Motivation

Project should provide new binary format applicable to wide range use cases, including:

- Multimedia and data streaming
- Long-term data storage
- Highly structured data
- Huge data streaming (with terabytes in size or more)
- Representation of segmented, fragmented or indexed data

## Use Cases

Few examples of situation are included, where results of the project should provide some new possibilities or advantages.

### Browseable Binary Content

Case here is to provide more flexible picture format as an alternative to GIF, PNG, JPEG or WebP.

Let's have RGB encoded bitmap picture stored in XBUP format with header defining picture dimensions and used compression and pixel format followed by binary blob of actual data.

Basic editor should provide following functions:

- Allow to edit picture data in its native form using hexadecimal editor (not very useful, but still available)
- Transform compressed data to raw data and allow to edit it in hexadecimal editor
- Transform raw data to matrix of pixels and allow to edit it as a table
- Allow to edit each pixel using color selection dialog or editing RGB values directly
- Provide documentation for each form of data and each transformation and meaning of every value

### Data Tables

Case here is to provide more flexible data tables format as an alternative to CSV or XML table formats.

Let's have table data file. In header row structure is defined as a sequence of columns optionally with names, where each column has particular type with corresponding representation in bytes. Header is then followed by raw data, optionally compressed.

Basic editor should provide following functions:

- Allow to edit compressed or raw data or raw data after decompression using hexadecimal editor
- Transform data to table and allow to edit it as a table
- Allow to change and or convert column type
- Allow to add/remove/copy columns or rows
- For each type allow to edit it in proper textual/graphical form (for example date format with calendar dialog or internationalized string)
- Allow to edit data as a textual data using some markup syntax

### Flexible Modular Applications

Case here is to provide more flexible software framework as an alternative to DirectShow, GStreamer or system libraries.

Let's have simple bitmap editor capable editing RAW RGB bitmap data supporting XBUP framework.

Framework should provide following functions:

- Allow application to open various bitmap formats (PNG, JPEG…) as supported by framework by decompressing pictures to RAW RGB
- Allow application to save in various bitmap formats as supported by framework by compressing RAW RGB to given format
- Preserve additional information (for example EXIF data) if appropriate
- Provide additional methods to show/edit additional information if available
- Provide additional export or import methods from different formats if available

Homepage: http://xbup.org
License: GNU Free Documentation License (FDL)