Skip to content

thomasmoelhave/tpie

Repository files navigation

TPIE - The Templated Portable I/O Environment

LGPL-3.0 License unit tests documentation

The TPIE (Templated Portable I/O Environment) library is a tool box providing efficient and convenient tools to ease the implementation of algorithms and data structures on very large sets of data.

Project status

As of 2021, this project does not see much development, but it is used heavily in production. There has not been a TPIE release for a long time, but the master branch is very stable and is unlikely to see major breaking changes.

Table of Contents

Documentation

For help, installation, usage and documentation, visit the TPIE homepage; the API documentation is also hosted there and on GitHub pages.

Dependencies

TPIE has a mandatory dependency on the Boost library and requires a C++ compiler that supports the 14 standard (e.g. GNU 7+ and Clang 10+). Furthermore, optionally TPIE can use the Snappy, LZ4, and ZSTD compression algorithms, if available.

Usage

Building TPIE is done entirely with CMake.

In your project

Assuming this repository is cloned into the external/tpie folder of your project, then add TPIE as a subdirectory in your own CMakeLists.txt.

add_subdirectory (external/tpie tpie)

TPIE is then linked to each target executable of choice.

add_executable(<target> <source>)
target_link_libraries(<target> tpie)
set_target_properties(<target> PROPERTIES CXX_STANDARD 14)

Then build your project with CMake. For other ways to install TPIE, see Compiling and installing TPIE in the documentation.

Unit tests

To compile the entire project and run the unit tests execute the following commands.

# Compile entire TPIE project
mkdir build
cd build
cmake -D CXX_STANDARD 14 ..

# Compile tests
make

# Run unit tests
ctest

Examples

The example/helloworld.cpp provides a rudementary example for how to use TPIE, assuming it has been installed. The apps/ folder includes multiple non-trivial examples. To compile and run any of the CMake enabled examples in apps execute the following commands

# CMake
mkdir build
cd build
cmake -D CXX_STANDARD 14 ..

# Compile
cd apps/<app>/
make

# Run
./<app>

License

The software and documentation files in this repository are provided under the LGPL 3.0 License.