# Rust AOFlagger Crate will be renamed to `aoflagger-sys`, see [issue #2](https://github.com/MWATelescope/rust-aoflagger/issues/2)

MacOS Tests Linix Tests Crates.io codecov codecov rust-reportcard Crates.io Libraries.io dependency status for GitHub repo Lines of code
Rust bindings for ## Installation ### Prerequisites `aoflagger_sys` itself only requires [`AOFlagger`](https://gitlab.com/aroffringa/aoflagger), version >= 3.0, but that requires many dependencies. On Ubuntu > 21.04, `apt install aoflagger-dev` is enough, but for OS-specific instructions, check out the [linux](https://github.com/MWATelescope/rust-aoflagger/blob/main/.github/workflows/linux_test.yml) and [macOS](https://github.com/MWATelescope/rust-aoflagger/blob/main/.github/workflows/macos_test.yml) CI Scripts and the [Makefile.toml](https://github.com/MWATelescope/rust-aoflagger/blob/main/Makefile.toml) as these are tested regularly. The instructions below may be updated less frequently, but are better documented. If `AOFlagger` is in a non-standard location, `AOFLAGGER_INCLUDE_DIR` and `AOFLAGGER_LIB` may be set to the include and library directories, respectively, which allows `aoflagger_sys` to find the correct files. ### (Debian/Ubuntu) Linux Setup ```bash # Prerequisites for rustup, cargo and cargo-make sudo apt install -y gcc libssl-dev pkg-config curl unzip wget # Run the Rustup install script, profile=default, toolchain=stable curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s -- -y # Cargo make uses Makefile.toml to automate development tasks cargo install --force cargo-make # Use multiple cores when compiling C/C++ libraries export MAKEFLAGS="-j $MAKEFLAGS" # Install prerequisite C/C++ libraries cargo make install_deps # Ensure that rust can find the C/C++ libraries. export LD_LIBRARY_PATH="/usr/local/lib/" ``` ### MacOS Setup ```bash # Install homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Run the Rustup install script, profile=default, toolchain=stable curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s -- -y # Cargo make uses Makefile.toml to automate development tasks cargo install --force cargo-make # Add the MWATelescope homebrew tap brew tap mwatelescope/tap # Install prerequisite libraries brew cask install mwatelescope/aoflagger # Ensure that rust can find the C/C++ libraries. export DYLD_FALLBACK_LIBRARY_PATH=/opt/homebrew/lib/ ``` ### Windows Setup Unfortunately most of the prerequisites aren't available on Windows. However, WSL is a thing.