Installation
The only way to install powdr currently is to build it from source. There are two binaries,
powdr
compiles powdr-asm files to powdr-PIL and generates witnesses and proofs.powdr-rs
compiles Rust crates to powdr-asm via RISCV, and executes powdr-asm code with given inputs.
Prerequisites
You will need the Rust compiler and Cargo, the Rust package manager.
The easiest way to install both is with rustup.rs
.
On Windows, you will also need a recent version of Visual Studio, installed with the "Desktop Development With C++" Workloads option.
If you want to enable the estark-polygon
feature, you also need the following
runtime dependencies:
gcc
nlohmann-json3-dev
You will also need the following build time dependencies:
make
pkg-config
libpqxx-dev
(Ubuntu) |libpqxx
(Arch Linux)nasm
Building powdr
Using a single Cargo command, enabling the Halo2 and Plonky3 backends:
cargo install --git https://github.com/powdr-labs/powdr --features halo2,plonky3 powdr-cli
With SIMD support for the provers that support it:
RUSTFLAGS='-C target-cpu=native' cargo install --git https://github.com/powdr-labs/powdr --features halo2,plonky3,plonky3-simd powdr-cli
Or, by manually building from a local copy of the powdr repository:
# clone the repository
git clone https://github.com/powdr-labs/powdr.git
cd powdr
# install powdr-cli
cargo install --features halo2,plonky3 --path ./cli
# install powdr-cli with SIMD support (only for the crates that support it)
RUSTFLAGS='-C target-cpu=native' cargo install --features halo2,plonky3,plonky3-simd --path ./cli
Building powdr-rs
Using a single Cargo command:
cargo install --git https://github.com/powdr-labs/powdr powdr-rs-cli
Or, by manually building from a local copy of the powdr repository:
# clone the repository
git clone https://github.com/powdr-labs/powdr.git
cd powdr
# install powdr-rs-cli
cargo install --path ./cli-rs