TileDB has been tested on Ubuntu Linux (v.14.04+), CentOS Linux (v.7+), macOS El Capitan (v.10.11) and Windows (7+), but TileDB should work with any reasonably recent version of Ubuntu, CentOS, macOS or Windows with an installed compiler supporting C++11.
Once you build TileDB, visit the Usage page to see how to use TileDB in your programs.
TileDB requires a recent version (3.3 or later) of the CMake build system, and a compiler supporting C++11. For compression, TileDB relies on the following libraries:
When building from source, TileDB will locate these dependencies if already installed on your system, and locally install (not system-wide) any of them that are missing.
Some TileDB internals are parallelized using the Intel Threaded Building Blocks library. The TileDB build system will install this library if it is not already present on your system. You can disable the TBB dependency when configuring the TileDB build, in which case TileDB will fall back on serial implementations of several algorithms. As a part of the TileDB installation process, the TBB dynamic library will also be installed in the same destination as the TileDB dynamic library. The TBB headers are not installed with TileDB.
Backend support for S3 stores requires the AWS C++ SDK. Similarly to the required dependencies, the TileDB build system will install the SDK locally if it is not already present on your system (when the S3 build option is enabled).
TileDB also integrates well with the S3-compliant minio object store.
During the build process the following environmental variables must be set:
JAVA_HOME: Path to the location of the Java installation.
HADOOP_HOME: Path to the location of the HDFS installation.
CLASSPATH: The Hadoop jars must be added to the
CLASSPATH before interacting with
Consult the HDFS user guide for installing, setting up, and using the distributed Hadoop file system.
If any dependencies are not found pre-installed on your system, the TileDB build process will download and build them automatically. Preferentially, any dependencies built by this process will be built as static libraries, which are statically linked against the TileDB shared library during the build. This simplifies usage of TileDB, as it results in a single binary object, e.g.
libtiledb.so that contains all of the dependencies. When installing TileDB, only the TileDB include files and the dynamic object
libtiledb.so will be copied into the installation prefix.
If TileDB is itself built as a static library (using the
TILEDB_STATIC=ON CMake variable or corresponding
bootstrap flag), the dependency static libraries must be installed alongside the resulting static
libtiledb.a object. This is because static libraries cannot be statically linked together into a single object (at least not in a portable way). Therefore, when installing TileDB all static dependency libraries will be copied into the installation prefix alongside