User Tools

Site Tools

Site » About 


About the XBUP project * [[this>?about|Introduction to the project]] * [[en:about:goals|Project goals]] * [[en:about:architecture|Architecture and principles]] * [[this>?about/videos|Video presentations]] Download * [[this>?download|Current release]] * [[this>?download/screenshots|Screenshots]] Documentation * [[en:doc|Project's documentation]] * [[en:doc:protocol:overview|Protocol's specification]] * [[en:doc:impl:java|Implementation in Java]] Get involved * [[en:devel|How to join]] * [[en:devel:status|Status of the development]] * [[en:devel:related_projects|Related projects]] Services * [[|Catalog of types]] * [[|Catalog of types (PHP)]] Tools * [[|Cont. Integration (Jenkins)]] * [[|Issue Tracking (BugGenie)]] Follow us on * [[|XBUP on GitHub]] * [[|XBUP on Twitter]] * [[|XBUP on OpenHUB]] * [[|XBUP on SourceForge]]


====== Project Introduction ====== XBUP is binary data protocol and file format for communication, data storage and application interfaces. ===== Key Features ===== * **Unified block-tree structure** - Allows to combine different data together into single unit * **Build-in and custom data types** - Catalog of types and support for external definitions * **Transformations framework** - Data processing for compression, encryption, compatibility and data handling ===== Motivation ===== Project should provide universal protocol as a more feature-rich alternative to currently used binary protocols. It should provide general methods for handling various types of data including: * **Multimedia files** - Audio, Video, Animation * **Filesystem structure** - Allow to represent data in the form of filesystem or as compressed archive * **Application API** - Remote or local methods execution supporting parameters and result passing * **Serialization protocol** - Provide ability to serialize structured data * **Long-term data storage** - Provide way to define data with separate or integrated specification * **Huge data** - Use dynamic numeric values to allow support for data in terabytes range or more * **Representation of segmented, fragmented or indexed data** The protocol is also intended to bring advantages of modern markup languages like XML into binary world. It's a ground-up designed alternative focused on binary data, yet providing similar techniques like XML Schema, XML Namespaces, XSLT and so on. Where applicable, project should also include concepts from other similar protocols, like for example: * **RIFF** - Resource Interchange File Format * **HDF5/CDF** - Hierarchical Data Format / Common Data Format * **ASN.1** - Abstract Syntax Notation One * **Matroska/EBML** - Extensible Binary Meta Language * **Protocol Buffers** - Serialization protocol for binary data exchange ===== Design Principles ===== Project is using bottom-up approach with layers building on top of each other adding gradually new functionality. Some of the design principles: * **Small steps** - Project should be build and evolve by adding small and independent functionality * **Universaility first** - Focus should be on support of wide range of use-cases and provide extensibility instead of fixed and compact structure * **Abstraction** - Data should be defined using abstraction instead of vague description only ===== More ===== You can learn more about this project by reading following sections: * [[en:about:use_cases|Use Cases]] * [[en:about:goals|Goals]] * [[en:about:project_scope|Scope]] * [[en:about:logo|Project Logo]]

en/about.txt · Last modified: 2017/07/08 12:43 by hajdam