Installation¶
We have rigorously designed the package to have a light dependency footprint to keep the package as portable as possible. sqsgenerator can be used in three different ways
Web Assembly: a multi-threaded web-assembly module of sqsgenerator with JS bindings. browser
Python package: the python package comes with a command line interface (CLI) and a Python API
Native application: a compiled binary that can be used on high-performance computing (HPC) where Python might not be available at all. This is the way to go if you want to use sqsgenerator in large scale using MPI. You can
Web Assembly¶
Just open sqsgen.gehringer.tech in your browser and start using sqsgenerator right away.
Python package¶
the python package comes with a command line interface (CLI) and a Python API. The python packages’ API can be used to analyse the output generated by the native application and web-application also.
from pip¶
You can install the latest release of sqsgenerator from PyPI using pip:
pip install sqsgenerator
Pre-built wheels are available for Linux (x86-64, aarch64), MacOS (universal2), and Windows (amd64). Currently supported Python versions are 3.9 - 3.13.
from conda¶
You can install sqsgenerator from the conda-forge channel using conda:
conda install -c conda-forge sqsgenerator
On conda for version >= 0.4 we support Linux (x86-64), MacOS (x86-64, arm64), and Windows (amd64). Currently supported Python versions are 3.9 - 3.13.
from source¶
Python¶
A Python interpreter 3.9+ is required. To build the bindings
C++ toolchain¶
The core of sqsgenerator is written in C++. Therefore, a C++ compiler with support for C++20 standard is required. We have tested compilation across different platforms with the following compilers: vcpkg is used to manage the dependencies
Git
CMake (3.25+)
C++20 compatible compiler
Linux
g++ (13+)
clang++ (19.0+)
MacOS
Apple clang++* (15.0+)
Windows
MSVC (19.29+)
Build instructions¶
If you want to install the package directly into your current Python environment, you can use the following commands
git clone --recursive https://github.com/dgehringer/sqsgenerator.git
cd sqsgenerator
pip install python/ -v
to build a wheel file, use the following commands
git clone --recursive https://github.com/dgehringer/sqsgenerator.git
cd sqsgenerator
pip install build
python -m build python/ --wheel -v
The wheel file can be found in the python/dist folder and can be installed using pip install python/dist/sqsgenerator-*.whl.
shell completion¶
sqsgenerator uses pallets/click to implement its CLI. click supports automatically generated shell completion. A guide on how to enable shell completion for your shell can be found in the click documentation
Native application¶
Ensure you have installed the C++ toolchain as described above. For building the native application no Python interpreter is required. Most likely you will want to use MPI when choosing the native application.
git clone --recursive https://github.com/dgehringer/sqsgenerator.git
cd sqsgenerator
./scripts/build-cli-mpi.sh build
This will create a build folder containing the compiled binary sqsgen folder. Please run the script from the
root folder of the repository. You can specify a different build folder by changing the second argument of the script.
Feel free to modify the script to your needs e.g. to change the compiler CMake flags
(DCMAKE_CXX_COMPILER or DCMAKE_C_COMPILER) accordingly.