Installation
============
.. highlight:: console
Precompiled Wheels
------------------
The ``fastobo`` Python module is implemented in Rust, but the Rust compiler
is only required if your platform does not have precompiled wheels available.
Currently, we provide `wheels `_ for the following
platforms and implementations:
* **Linux x86-64**: CPython 3.5, 3.6, 3.7, 3.8, and PyPy3 7.1.0, 7.2.0, 7.3.0
* **OSX x86-64**: CPython 3.5, 3.6, 3.7, 3.8, and PyPy3 7.3.0
* **Windows x86-64**: CPython 3.5, 3.6, 3.7, 3.8
If your platform and implementation is not listed above, you will need to build
from source (see next section). Feel free to
`open an issue `_ as well!
Downloading and installing from a wheel is then as simple as::
$ pip install fastobo --user
Bioconda package
----------------
``fastobo`` is also available in the
`Bioconda `_ channel of the ``conda``
package manager::
$ conda install -c bioconda fastobo
Note that only Linux x86-64 is supported.
Building from source
--------------------
In order to build the code from source, you will need to have
the Rust compiler installed and available in your ``$PATH``. See
`documentation on rust-lang.org `_
to learn how to install Rust on your machine.
Then installing with ``pip`` will build the pacakge::
$ pip install fastobo --user
**Be patient, it can take a long time on lower-end machine!**
Note that this will install a static library that have been built with most
feature flags disabled for compatibility purposes. If you wish to build the
optimized library from source, with all feature flags enabled, make sure to
have ``-C target-cpu=native`` in your ``$RUSTFLAGS`` environment while building::
$ RUSTFLAGS="-Ctarget-cpu=native" pip install fastobo --user --no-binary :all: