=======
Install
=======

Latest release
==============

Install the package with pip:

.. code-block:: console

   $ pip install fastabx

fastabx requires Python 3.12 or later, and PyTorch 2.6.0 [#torch]_ (with CUDA 12.4 on Linux and Windows).
The pinned PyTorch version is the one available on PyPI.

fastabx is available on Linux x86-64 (with glibc 2.34 or later [#glibc]_), macOS arm64, and Windows x86-64.

Build from source
=================

1. Clone the repository:

.. code-block:: console

   $ git clone git@github.com:bootphon/fastabx.git
   $ cd fastabx

2. Run the following command to build a wheel with ``uv``:

.. code-block:: console

   $ uv build --wheel

.. note::
   On Linux and macOS, make sure to have ``CXX=g++``. If you want to build
   with CUDA support, you must have the CUDA toolkit installed and set the
   ``CUDA_HOME`` environment variable. If you are on a cluster with a module
   system, you can probably load the ``cuda/12.4`` module.

Footnotes
---------

.. [#torch] The DTW relies on the C++ API of PyTorch which has no API/ABI compatibility between releases.
   This means you have to have to use the exact version of PyTorch this package was compiled against.

.. [#glibc] The glibc constraint is due to the runners available in GitHub CI. If you build from source,
   you can use the lowest version of glibc supported by PyTorch.
