exip  Alpha 0.5.4
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
EXIP - Embeddable EXI Processor in C

EXIP provides a general purpose EXI processing library that is efficient and easy to use for both: embedded platforms and desktop/server applications.The project strives to build large user community as well as committed and eager development team. The purpose of this development documentation is to help the C developers interested in the project to easy get the knowledge they need to work and enhance the code of the library. If you are only interested in using the library see the EXIP User Guide available from the project web site.

Please use the project forums to ask questions, submit a proposal or search for help.

For discussions and information connected to the code of the library and various development topics subscribe to the exip-develop mailing list.

Starting from the Alpha release the development of the library is entirely open - all the changes are committed to the public SVN repository and available to everyone. The goal is to make releases as often as possible - optimally every three months.

The main feature of the code is its modularity. Below are listed the main components of the codebase (each has a separate Makefile builds and use Check Unit Testing Framework for testing):

  Modules dependencies:
  ==========================================================================================
  |             Module              |                      Dependencies                    |
  ==========================================================================================
  |         Common module           |                           N/A                         
  ------------------------------------------------------------------------------------------
  |      Stream I/O module          |                         common                       
  ------------------------------------------------------------------------------------------
  |     String tables module        |                         common                       
  ------------------------------------------------------------------------------------------
  |        Grammar module           |             common, streamIO, stringTables            
  ------------------------------------------------------------------------------------------
  |      Content I/O module         |         common, streamIO, stringTables, grammar       
  ------------------------------------------------------------------------------------------
  |    Grammar generator module     |   common, streamIO, stringTables, grammar, contentIO  
  ------------------------------------------------------------------------------------------
 

More information about Efficient XML Interchange format can be found at - http://www.w3.org/TR/exi/

How do I get involved in the EXIP development?

The code of the library is still in development stage and unless you use it for trivial EXI processing the chances are that you will come across a bug. Filing a detailed bug report is just one way to help yourself and the project. The culture of the EXIP development is based on "Help yourself and others will help you" principle so if you need your problem fixed soon try trace the source of the error yourself first before looking for help.

Getting started

Here are some basics steps for developers interested in contributing to the project:

  1. Read the EXIP User Guide
  2. Start using the library in your applications
  3. Identify bugs, flaws in the design and improvements you would like to see in the library.
  4. Browse through the EXIP development documentation (i.e. the Doxygen pages) and try to get deeper knowledge on the details of the problem
  5. Implement the fix and create a patch
  6. Email the patch to the project administrators. If the patch is following the project coding rules and is approved by the EXIP administrators you will get a write access to the EXIP SVN repository and become a part of the EXIP development team. Note that your contribution will be distributed under the same BSD license used for EXIP (see below)
  7. Being part of the project development will allow you to influence the direction of the project, set priorities on fixes and improvements and get answers to your code related questions on time.

Contributions, copyrights and licenses

All contributions are licensed under the same BSD license used by the EXIP project although the project does not require explicitly signing Contributor License Agreement (CLA) by each and every developer. Instead a simple Developer Certificate Of Origin as the one used for the Linux kernel development is applied. See License page for more details.

Date
Sep 14, 2010
Author
Rumen Kyusakov
Version
0.5
[Revision] $Id: README.txt 328 2013-10-30 16:00:10Z kjussakov $