This is the new backend for bfio
, using Tensorstore
and other high-throughput IO library
bfiocpp
uses Tensorstore
for reading and writing OME Tiff and OME Zarr files. So Tensorstore
build requirements are needed to be satisfied for bfiocpp
also.
For Linux, these are the requirements:
GCC
10 or laterClang
8 or laterPython
3.8 or laterCMake
3.24 or laterPerl
, for building libaom from source (default). Must be inPATH
. Not required if-DTENSORSTORE_USE_SYSTEM_LIBAOM=ON
is specified.NASM
, for building libjpeg-turbo, libaom, and dav1d from source (default). Must be inPATH
.Not required if-DTENSORSTORE_USE_SYSTEM_{JPEG,LIBAOM,DAV1D}=ON
is specified.GNU Patch
or equivalent. Must be inPATH
.
Since Tensorstore
requires MACOSX_DEPLOYMENT_TARGET
to be 10.14
or higher (to support sized/aligned operator new
/delete
.), bfiocpp
needs the same.
Here is an example of building and installing bfiocpp
in a Python virtual environment.
python -m venv build_venv
source build_venv/bin/activate
git clone https://github.com/PolusAI/bfiocpp.git
cd bfiocpp
mkdir build_deps
cd build_deps
../ci-utils/install_prereq_linux.sh
cd ..
export BFIOCPP_DEP_DIR=./build_deps/local_install
python setup.py install -vv