\begin{chapter}{Appendix}
  \begin{section}{Running the software}
    \begin{subsection}{Reaction Systems}
      The code is available at the repository\ \cite{ReactionSystemsGit}.
      To download the software the git\ \cite{git} utility is recommended.

      To run the CLI a rust installation is necessary. It is recommended to install rustup\ \cite{rustup} from the official site or via a package manager:

\begin{minted}{Bash}
sudo apt install rustup

sudo dnf install rustup

sudo pacman -S rustup

brew install rustup
\end{minted}

      After installation run \mintinline{bash}{rustup default stable} to install a target.

      To build the code into an executable run \mintinline{bash}{cargo build --release}; to run the executable \mintinline{bash}{cargo run --release}.
      The repository contains only one executable workspace, called \(\texttt{analysis}\), that provides the CLI.\ It expects a path to a file with structure described in section\ \ref{instructions_analysis}.
    \end{subsection}

    \begin{subsection}{Reaction Systems GUI}
      The code is available at the repository\ \cite{ReactionSystemsGUIGit}.
      To download the software the git\ \cite{git} utility is recommended.

      To run the GUI a rust installation is necessary. It is recommended to install rustup\ \cite{rustup} from the official site or via a package manager:

\begin{minted}{Bash}
sudo apt install rustup

sudo dnf install rustup

sudo pacman -S rustup

brew install rustup
\end{minted}

      After installation run \mintinline{bash}{rustup default stable} to install a target. To install the wasm32 target a script is provided in the folder \(\texttt{reaction\_systems\_gui/}\) named \(\texttt{setup\_web.sh}\).

      A script is provided to check for errors during development in the folder \(\texttt{reaction\_systems\_gui/}\) called \(\texttt{check.sh}\).

      To format the code in a uniform way run \mintinline{bash}{cargo +nightly fmt}.

      To run the program use \mintinline{bash}{cargo run --release --features "persistence"}. % chktex 18
      The option \(\texttt{--features "persistence"}\)% chktex 18
      enables file reading and saving.

      To run the web application a script is provided in the folder \(\texttt{reaction\_systems\_gui/}\) called \(\texttt{build\_web.sh}\).
      The binary generated by rust is optimized using wasm-opt\ \cite{binaryen_2025}. It can be installed using a package manager:

\begin{minted}{bash}
sudo apt install binaryen

sudo dnf install binaryen

sudo pacman -S binaryen

brew install binaryen
\end{minted}

      The optimization step can be skipped by providing the flag \(\texttt{--fast}\) to the script.

      To run locally serve the files in the folder \(\texttt{reaction\_systems\_gui/docs/}\). This can be done with any simple http server. For example one can be installed by running \mintinline{bash}{cargo install basic-http-server}.
      A script is provided to run the server in the folder \(\texttt{reaction\_systems\_gui/}\) named \(\texttt{start\_server.sh}\).
    \end{subsection}
  \end{section}
\end{chapter}
