Installation

This guide covers adding Paladin to an existing Rust project or setting up the Paladin workspace for development.

Prerequisites

Required

RequirementMinimumRecommended
Rust1.88.0Latest stable (1.95+)
CargoIncluded with Rust-
Edition20242024
LLM API KeyAt least one-

Why Rust >= 1.88? Paladin uses edition 2024 features. Verify your toolchain:

rustc --version   # should print >= 1.88.0

Update with rustup update stable.

Optional (for Docker-based services)

  • Docker + Docker Compose v2 -- required for the built-in Redis, MinIO, and MySQL services (see Docker Guide)

Installing Rust

# Install rustup and the stable toolchain
curl --proto =https --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

# Build tools -- Linux (Ubuntu/Debian)
sudo apt-get install -y build-essential pkg-config libssl-dev

# Build tools -- macOS (via Homebrew)
brew install openssl pkg-config

Windows users should use rustup-init.exe or WSL 2.

Adding Paladin to a Rust Project

Cargo.toml -- choose your crates

Paladin v0.10.0 is published as a workspace of focused crates. Add only what you need:

[dependencies]
# Core framework -- always required
paladin-ai-core   = "0.10.0"
paladin-ports     = "0.10.0"

# LLM providers (pick one or more)
paladin-llm       = { version = "0.10.0", features = ["llm-openai"] }

# Multi-agent orchestration (optional)
paladin-battalion = "0.10.0"

# Memory / Garrison (optional)
paladin-memory    = "0.10.0"

# Storage adapters (optional)
paladin-storage   = "0.10.0"

# Async runtime (required)
tokio = { version = "1", features = ["full"] }

Umbrella crate

The paladin-ai umbrella crate (v0.10.0) re-exports everything and accepts workspace feature flags:

[dependencies]
paladin-ai = { version = "0.10.0", features = ["redis-queue", "s3-storage"] }
tokio      = { version = "1", features = ["full"] }

Feature Flag Profiles

A minimal profile for the common getting-started case -- the three default LLM providers plus the adapters most guides exercise:

FlagDefaultDescription
llm-openaiyesOpenAI GPT adapter
llm-anthropicyesAnthropic Claude adapter
llm-deepseekyesDeepSeek adapter
redis-queuenoRedis async task queue
s3-storagenoMinIO / AWS S3 file storage
openai-embeddingsnoOpenAI embedding API
qdrantnoQdrant vector database for Sanctum

Full feature inventory

Regenerated from the facade Cargo.toml [features] block -- every shipped flag, the crate it forwards into, and what it gates. default = ["llm-openai", "llm-anthropic", "llm-deepseek"].

FlagCrateGates
llm-openaipaladin-llmOpenAI adapter (default)
llm-anthropicpaladin-llmAnthropic adapter (default)
llm-deepseekpaladin-llmDeepSeek adapter (default)
llm-kimipaladin-llmKimi adapter
llm-qwenpaladin-llmQwen adapter
llm-grokpaladin-llmGrok adapter
llm-ollamapaladin-llmOllama adapter
llm-geminipaladin-llmGemini adapter
llm-openai-compatiblepaladin-llmGeneric OpenAI-compatible adapter
llm-allpaladin-llmAggregate: all nine LLM provider adapters above
visionpaladin-llmVision / multimodal support (forwards into paladin-llm/vision, requires llm-openai)
content-processingpaladin-content, paladin-memoryContent ingestion: PDF, HTTP, RSS, news, summarization, LLM bridge
web-serverpaladin-webHTTP/REST API surface (Axum)
notificationspaladin-notificationsEmail, push, and system notification adapters
storage-mysqlpaladin-storageMySQL repository adapters
storage-postgrespaladin-storagePostgreSQL WaypointPort adapter
storagepaladin-storageAggregate: storage-mysql + storage-postgres
redis-queuepaladin-storageRedis async task queue
redis-cachepaladin-storageRedis-backed NodeCachePort adapter
s3-storagepaladin-storageMinIO / AWS S3 file storage
openai-embeddingspaladin-llmOpenAI embedding API
qdrantpaladin-memoryQdrant vector database for Sanctum
otelfacade (paladin-ai)OTLP trace export
dev-uipaladin-webAdmin-only dev-ui run inspector page
clifacade, binary onlyBuilds the paladin-cli binary and its dependencies (clap, dialoguer, indicatif, ...)
integration-testsfacadeGate for integration test suites that require backing services
live-api-testsfacadeGate for tests that require real provider API keys
fullfacadeAggregate: llm-all + content-processing + web-server + notifications + storage + vision + redis-queue + s3-storage + openai-embeddings + qdrant + cli -- deliberately excludes otel, dev-ui, and redis-cache

The paladin-cli binary carries required-features = ["cli"] in Cargo.toml, so it is not built by a default cargo build -- pass --features cli (or --bin paladin-cli --features cli) to build it.

Verification

cargo check

No errors means all selected features resolved correctly.

Cloning the Source for Development

# 1. Clone
git clone https://github.com/DF3NDR/paladin-dev-env.git
cd paladin-dev-env

# 2. Build the workspace
cargo build

# 3. Run unit tests
cargo test --workspace --lib

# 4. (Optional) Start backing services
make services-up   # Redis, MinIO, MySQL via Docker Compose

See Development Setup for the full contributor workflow.

Environment Variables for LLM Keys

Paladin reads API keys exclusively from environment variables -- never put keys in config files.

# Set at least one provider key before running
export OPENAI_API_KEY="sk-..."       # OpenAI
export DEEPSEEK_API_KEY="sk-..."     # DeepSeek
export ANTHROPIC_API_KEY="sk-..."    # Anthropic

Copy .env.example to .env for local development (.env is git-ignored).

Next Steps