Quick Start Installation
This page provides streamlined installation instructions to get started quickly. For detailed explanations of what each dependency does and why it's needed, see Building Dependencies.
Before installing, consider what you want to build:
- Native builds: Server-side proving, CLI tools (requires Dawn for GPU acceleration)
- Web builds: Browser-based applications (requires Emscripten)
- SDK development: Custom C++ or Rust applications (requires Emscripten and/or Rust toolchain)
See Building Dependencies for a complete breakdown of which dependencies are needed for each target.
Core Dependencies
Install essential system packages for native builds:
- macOS
- Ubuntu
Prerequisites
Install Homebrew if you haven't already:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
macOS uses Clang (clang and clang++) as the default compiler, which is installed with Xcode Command Line Tools. This is the recommended and tested compiler for Ligetron on macOS.
Verify it's installed:
clang++ --version
If not installed, run:
xcode-select --install
Install Core Dependencies
brew install cmake gmp boost openssl git
Next Steps
- Build Dawn (WebGPU) - see Building Dependencies: WebGPU
- Build wabt - see Building Dependencies: wabt
- (Optional) For web builds, install Emscripten - see Building Dependencies: Emscripten
- Proceed to Building Ligetron
System Requirements
- Ubuntu 22.04 or newer (24.04 preferred)
- GCC 13 or newer (required for C++20 support)
Update System
sudo apt-get update && sudo apt-get upgrade -y
Install Core Dependencies
# Essential build tools and libraries
sudo apt-get install -y cmake git g++-13 libgmp-dev libboost-all-dev libssl-dev
# X11 libraries (required for Dawn)
sudo apt install -y libx11-dev libxrandr-dev libxinerama-dev \
libxcursor-dev libxi-dev libx11-xcb-dev \
xorg-dev
# Graphics libraries (for GPU acceleration)
sudo apt install -y libvulkan1 vulkan-tools mesa-common-dev libgl1-mesa-dev
Set GCC 13 as Default
# If GCC 13 is not already installed
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-13 -y
# Set as default
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 20
sudo update-alternatives --set g++ "/usr/bin/g++-13"
Next Steps
- Build Dawn (WebGPU) - see Building Dependencies: WebGPU
- Build wabt - see Building Dependencies: wabt
- (Optional) For web builds, install Emscripten - see Building Dependencies: Emscripten
- (Optional) Install NVIDIA drivers if applicable - see Building Dependencies: NVIDIA Drivers
- Proceed to Building Ligetron
Additional Setup for Specific Build Targets
For Web Builds
Web builds require Emscripten in addition to the core dependencies:
- macOS
- Ubuntu
# Clone and install Emscripten
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
# Clone and install Emscripten
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
See Building Dependencies: Emscripten for more details.
For Rust SDK Development
- macOS
- Ubuntu
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add WebAssembly target
rustup target add wasm32-wasip1
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add WebAssembly target
rustup target add wasm32-wasip1
See Building Dependencies: Rust Toolchain for more details.
Verify Installation
After installing dependencies, verify key tools are available:
# Check versions
cmake --version # Should be 3.24+
git --version
g++ --version # Should be 13+ on Ubuntu
For native builds:
# Verify GPU libraries (Ubuntu)
vulkaninfo | head -20
# Verify Dawn was installed (both platforms)
ls /usr/local/include/dawn # Should exist
For web builds:
# Verify Emscripten (after sourcing emsdk_env.sh)
emcc --version
em++ --version
What's Next?
Once dependencies are installed:
- Building Ligetron - Build the SDK, native prover/verifier, or web version
- Building Custom Applications - Create your own ZK applications
Need Help?
- Detailed dependency explanations: See Building Dependencies
- Build issues: Check the troubleshooting section (coming soon)
- Architecture confusion: The Building Dependencies guide explains the difference between native and WebAssembly builds