https://github.com/polusai/bfiocpp
https://github.com/polusai/bfiocpp
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/polusai/bfiocpp
- Owner: PolusAI
- License: mit
- Created: 2024-04-09T19:15:20.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-04T03:16:57.000Z (over 1 year ago)
- Last Synced: 2025-08-18T02:50:04.248Z (10 months ago)
- Language: C++
- Size: 214 KB
- Stars: 2
- Watchers: 6
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
This is the new backend for `bfio`, using `Tensorstore` and other high-throughput IO library
## Build Requirements
`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 later
- `Clang` 8 or later
- `Python` 3.8 or later
- `CMake` 3.24 or later
- `Perl`, for building *libaom* from source (default). Must be in `PATH`. Not required if `-DTENSORSTORE_USE_SYSTEM_LIBAOM=ON` is specified.
- `NASM`, for building *libjpeg-turbo*, *libaom*, and *dav1d* from source (default). Must be in `PATH`.Not required if `-DTENSORSTORE_USE_SYSTEM_{JPEG,LIBAOM,DAV1D}=ON` is specified.
- `GNU Patch` or equivalent. Must be in `PATH`.
Since `Tensorstore` requires `MACOSX_DEPLOYMENT_TARGET` to be `10.14` or higher (to support sized/aligned operator `new`/`delete`.), `bfiocpp` needs the same.
## Building and Installing
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
```