elips/docs
Start

Installation

ELIPS builds with CMake and ships its Python module through PyBind11. A single configure + build produces both the C++ static library and the Python extension.

Requirements

  • A C++23 compiler — Clang 16+, GCC 13+, or MSVC 19.36+.
  • CMake 3.26 or newer.
  • Ninja (recommended) or Make.
  • Python 3.10+ for the bindings.
  • On Linux, the standard development toolchain (glibc, libstdc++).

Building from source

terminal
git clone https://github.com/axiomchronicles/elips.git
cd elips

cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DELIPS_BUILD_PYTHON=ON
cmake --build build -j

The default configuration builds the runtime, the elips CLI, and the PyBind11 module. Toggle features through CMake variables:

VariableDefaultPurpose
ELIPS_BUILD_PYTHONOFFBuild the Python extension.
ELIPS_BUILD_CLIONBuild the elips command.
ELIPS_BUILD_TESTSONBuild the C++ test suite for ctest.
ELIPS_GPU_ENABLEDOFFCompile the GPU index family.

Python bindings

After the build completes, point Python at the bindings directory:

bash
export PYTHONPATH=$PWD/bindings/python
python3 -c "import elips; print(elips.__doc__)"

For an installable wheel, use the included setup.py under bindings/python/.

Verify

bash
ctest --test-dir build --output-on-failure
PYTHONPATH=bindings/python python3 tests/python/test_bindings.py

Optional GPU build

The GPU index family lives under src/gpu_engine/ and is compiled when -DELIPS_GPU_ENABLED=ON is set. Backend selection happens at runtime via the device manager; CUDA, Metal, and a portable fallback are supported. Domain code only ever talks to GpuPort, so the runtime falls back to CPU indexes when no GPU is available.