External Dependencies

Qupled uses a compiled native extension. Some external libraries are needed to run that extension, while headers and build tools are only needed when building qupled from source.

Runtime Dependencies

These libraries must be available when importing and running qupled.native:

Package names for these runtime libraries vary by operating system and release. If you need to install them manually, use your system package manager to install the packages that provide the libraries listed above.

Common package-manager commands look like:

sudo apt-get update
sudo apt-get install -y libgsl-dev libomp-dev libsqlite3-dev libsqlitecpp-dev
sudo apt-get install -y openmpi-bin libopenmpi-dev  # only for MPI-enabled installs
brew install gsl libomp sqlite sqlitecpp
brew install open-mpi  # only for MPI-enabled installs

Source-Build Dependencies

Building qupled from source requires the runtime dependencies plus the headers and build tools used by the native extension:

Preferred Installation

When installing from a cloned repository, prefer the foga system dependency target for your platform. Run these commands from the repository root:

curl -LsSf https://astral.sh/uv/install.sh | sh
uvx foga install --target apt-get   # Ubuntu or Debian-based systems
uvx foga install --target brew      # macOS

These targets intentionally install a project-oriented superset of dependencies, including tools used for development, documentation, and tests.

Manual Installation

If foga does not provide a target for your package manager, install the source-build dependencies manually. For example, on Fedora you need something like:

sudo dnf install -y cmake gsl-devel libgomp python3-devel sqlite-devel
cd /tmp
git clone https://github.com/SRombauts/SQLiteCpp.git
cd SQLiteCpp
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
sudo ldconfig

Add openmpi and openmpi-devel to build with MPI support.