macOS & iOS Requirements
Build Requirements
Non-FIPS Builds (aws-lc-sys)
For non-FIPS builds on macOS and iOS:
- C/C++ Compiler: Required
- CMake: Never required
- Bindgen: Never required (universal pre-generated bindings are provided)
- Go: Never required
FIPS Builds (aws-lc-fips-sys)
For FIPS builds on macOS:
- C/C++ Compiler: Required
- CMake: Always required
- Go: Always required
- Bindgen: Required unless target has pre-generated bindings (see list below)
Note: FIPS is not supported on iOS targets.
Targets with Pre-generated FIPS Bindings
The following macOS targets have pre-generated bindings for aws-lc-fips-sys:
aarch64-apple-darwinx86_64-apple-darwin
Summary Table
| Platform | default | fips |
|---|---|---|
aarch64-apple-darwin | C/C++ Compiler | C/C++ Compiler, CMake & Go |
x86_64-apple-darwin | C/C++ Compiler | C/C++ Compiler, CMake & Go |
aarch64-apple-ios | C/C++ Compiler | Not Supported |
x86_64-apple-ios | C/C++ Compiler | Not Supported |
C/C++ Compiler
Install Command Line Tools for Xcode which provides a C/C++ compiler environment (LLVM).
CMake
CMake is only required for FIPS builds on macOS.
MacPorts
sudo port install cmake
Homebrew
brew install cmake
Go
Go is only required for FIPS builds.
MacPorts
sudo port install go
Homebrew
brew install go
Bindgen (FIPS only)
Bindgen is only required for FIPS builds on platforms that do not have pre-generated bindings.
On most platforms, bindgen requires libclang or llvm package to be installed.
See the requirements page in
The bindgen User Guide for instructions.
MacPorts
sudo port install clang
Homebrew
brew install llvm
bindgen-cli
cargo install --force --locked bindgen-cli
FIPS Build Note
Building with the "fips" feature on macOS will result in the creation of shared libraries (named like
libaws_lc_fips_0_xx_yy_crypto.dylib and libaws_lc_fips_0_xx_yy_rust_wrapper.dylib). These shared libraries will
likely need to be distributed alongside any executable that depends on aws-lc-rs.
Troubleshooting
See our troubleshooting section.