Skip to content

ekrich/exip

Repository files navigation

EXIP - Embeddable EXI Processor in C

CI

EXIP Logo

Overview

The main objective of the EXIP project is to provide a C library for parsing and serialization of Efficient XML Interchange (EXI) streams which is a W3C standard. The focus is portability and efficiency for embedded systems development. The library features an efficient, typed, and low-level API. The library should also work for enterprises that want to use C or C++ languages.

Current status

We are working to improve this project so it can be used more widely. Quite a bit of work has been done to resurrect the project with documentation and code improvements. Contributions are encouraged but can be slow to adopt based on time available, level of effort, and knowledge of the code base.

Short History

The code was pulled from the SourceForge SVN repository with all commits and tags. There was one outstanding issue that has been fixed. The project originally supported the Contiki embedded IoT platform and now compiles on the next generation Contiki-ng project.

Formerly this project was not maintained on SourceForge. All historical information is found there as well as this original README.txt which is in HTML format.

Supported Platforms

The library is highly portable C code and supports the platforms using CI as shown in the next table.

OS Works Version(s) Arch(s) Compiler(s)
macOS 13.6.x arm64/aarch64 gcc (clang)
Linux Ubuntu 22.0.4 x86_64 gcc
Windows Visual Studio 2022 x86/x86_64 cl
Contiki-ng latest ARM Cortex-M3 (32-bit) gcc (c11)
  • The build system calls gcc.
  • macOS system compiler gcc is aliased to clang.
  • clang should also work on Linux.
  • Windows default creates a 32bit x86 executable.
  • We now use C99 standard since we refactored to use bool.
  • Contiki-ng build uses the C11 standard.

Users/Developers and Contributors

Please clone the repository or download a version by clicking on the Releases or Tags above.

All the documentation and the User Guide is available via the web site found at https://ekrich.github.io/exip/.

See the additional tool installation and setup documentation for Developers.

Licenses

Contributors

Languages