libE57Format icon indicating copy to clipboard operation
libE57Format copied to clipboard

Library for reading & writing the E57 file format

libE57Format

Build Status

A library to provide read & write support for the E57 file format.

This is a fork of E57RefImpl v1.1.332. The original source is from E57RefImpl 1.1.332 and then everything was stripped out except the main implementation for reading and writing E57.

This version also removes the dependency on Boost and requires C++11.

Many, many other changes were made prior to the first release of this fork. See the CHANGELOG and git history for details.

Documentation

The doxygen-generated documentation may be found here. These docs are generated and saved in the libE57Format-docs repo.

Contributing

Please see CONTRIBUTING.

Why Fork?

The E57RefImpl code hasn't been touched in years and I wanted to make changes to compile this library with macOS. Forking it gives me a bit more freedom to update the code and make changes as required.

I changed the name of the project so that it is not confused with the E57RefImpl project.

I have also changed the main include file's name from E57Foundation.h to E57Format.h to make sure there is no inclusion confusion.

Versions of libE57Format started at 2.0.

E57Simple API

Since the original fork, Jiri Hörner has added the E57Simple API from the old reference implementation and updated it.

Tools

Ryan Baumann has updated the e57unpack and e57validate tools to work with libE57Format. You can find them in the e57tools repo.

Building

$ mkdir -p build && cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build --parallel

Dependencies

Xerces-C++ validating XML parser is needed at runtime and clang-format for checking C++ formatting.

Ubuntu 20.04 (bionic): $ sudo apt install libxerces-c-dev clang-format

License

This project as a whole is licensed under the BSL-1.0 license - see the LICENSE file for details.

Individual source files may contain the following tag instead of the full license text:

SPDX-License-Identifier: BSL-1.0

Some CMake files are licensed under the MIT license - see the LICENSE-MIT file for details.

These files contain the following tag instead of the full license text:

SPDX-License-Identifier: MIT

Using SPDX enables machine processing of license information based on the SPDX License Identifiers and makes it easier for developers to see at a glance which license they are dealing with.