Skip to content

Latest commit

 

History

History
 
 

README.md

Feather core C++ library

Build and install

libfeather is mainly designed for linking with some other application, like a Python or R extension. To build the dependencies and install a release build, run (see further below for Windows instructions):

./thirdparty/download_thirdparty.sh
./thirdparty/build_thirdparty.sh

# Sets the thirdparty build environment variables
source develop_env.sh

mkdir release-build
cd release-build
export FEATHER_HOME=$HOME/local
cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=$FEATHER_HOME ..
make -j4
make install

Now, make sure that $FEATHER_HOME is used for building with your thirdparty application.

Development info

The core libfeather library is implemented in C++11.

We use Google C++ coding style with a few changes:

  • Long lines are permitted up to 90 characters
  • We do not encourage anonymous namespaces

We do not use C++ exceptions as handling them in Python extensions adds a lot of library complexity. Instead return a Status object. This also makes it simpler to make libfeather accessible to other C users.

Style is checked with cpplint, after generating the make files you can veryify the style with

make lint

Explicit memory management and non-trivial destructors are to be avoided. Use smart pointers to manage the lifetime of objects and memory, and generally use RAII whenever possible.

Windows

thirdparty\win_download_and_build.cmd

# Sets the thirdparty build environment variables
win_develop_env.cmd

mkdir release-build
cd release-build

cmake -G "Visual Studio 14 Win64" -DCMAKE_BUILD_TYPE=release ..
# `feather.sln` can be opened and built in Visual Studio or built from the command line with
cmake --build . --config Release