Skip to main content

Installation

Prerequisites

  • Rust 1.70 or higher
  • Git (for submodule dependencies)
  • Stoffel CLI (optional, for project scaffolding)

Installation Methods

Add to your Cargo.toml:
[dependencies]
stoffel-rust-sdk = { git = "https://github.com/Stoffel-Labs/stoffel-rust-sdk" }
Then run:
cargo build

Using Stoffel CLI Template

The easiest way to start a new Rust MPC project:
# Install Stoffel CLI first (see Getting Started)
stoffel init my-mpc-app --template rust
cd my-mpc-app
cargo build
This creates a complete project with:
  • Rust application with SDK integration
  • StoffelLang program in stoffel/src/program.stfl
  • Example code demonstrating the SDK API
  • Ready-to-run configuration

From Source

For development or customization:
git clone https://github.com/Stoffel-Labs/stoffel-rust-sdk.git
cd stoffel-rust-sdk

# Initialize submodules (required)
git submodule update --init --recursive

cargo build
cargo test

Verifying Installation

Create a simple test program:
use stoffel_rust_sdk::prelude::*;

fn main() -> Result<()> {
    let source = r#"
        main main() -> int64:
            return 42
    "#;

    let result = Stoffel::compile(source)?
        .execute_local()?;

    println!("Result: {:?}", result);
    Ok(())
}
Run it:
cargo run
Expected output:
Result: I64(42)

Dependencies

The SDK depends on several Stoffel components (managed as git submodules):
ComponentPurpose
stoffellangStoffelLang compiler
stoffel-vmVirtual machine runtime
stoffelmpc-mpcHoneyBadger MPC protocol
stoffelnetQUIC networking
These are automatically fetched when you add the SDK as a dependency.

Platform Support

PlatformStatus
Linux (x86_64)✅ Fully supported
macOS (x86_64, ARM64)✅ Fully supported
Windows (WSL2)✅ Supported
Windows (native)⚠️ Experimental

Troubleshooting

Submodule Issues

If you see errors about missing dependencies:
git submodule update --init --recursive

Build Failures

Ensure you have the latest Rust:
rustup update stable

Linking Errors

On Linux, you may need:
sudo apt-get install build-essential pkg-config libssl-dev
On macOS:
xcode-select --install

Next Steps