Goals
The primary goal of this project is to create a communication protocol / data format with the following characteristics, ordered by priority:
- Universal - Capable of representation of any type of data, suitable for wide use including streaming, long-term storage and parallel accessing
- 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 the ability to build data types by combining existing ones
- 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
More details about what is project trying to achieve
Protocol Design
Protocol design should cover following areas:
- Data structure - How to store/stream data
- Data types - Declaration of data types and build-in types
- Data transformations - Support for data transformations, like compression, encryption and so on
Prototype Implementation
Free and open source prototype implementation in Java is currently underway. It should provide following outputs:
- Basic library - Library providing support for handling data encoded in the protocol itself
- Catalog of types - Catalog service providing access to declaration of types
- Framework - Local service providing various functions for applications
- Editor tool - Basic tool for viewing and edition
- Sample applications and files - Applications and files for demonstration purposes
More details about prototype implementation
More
You can learn more about this project by reading following sections: