Installation
Rust Toolchain
Volley requires a stable Rust toolchain. Install via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default stable
System Dependencies
Most crates build with a standard Rust toolchain. Some connectors need additional system packages:
| Dependency | Required by | macOS | Ubuntu |
|---|---|---|---|
cmake | volley-connector-kafka (rdkafka) | brew install cmake | apt install cmake |
protobuf-compiler | volley-scheduler | brew install protobuf | apt install protobuf-compiler |
Note:
libcurlandOpenSSLare vendored and statically linked byrdkafka— no system packages needed.
Run volley doctor to check your environment for missing dependencies.
Adding Volley to a Project
Scaffold a new pipeline
volley new --template kafka-to-delta my-pipeline
cd my-pipeline
volley doctor
cargo build && cargo run
Available templates: kafka-to-delta, in-memory, s3-to-delta.
Add to an existing project
Add Volley crates to your Cargo.toml:
[dependencies]
volley-core = { git = "https://github.com/volley-streams/volley", features = ["state-rocksdb"] }
volley-connector-kafka = { git = "https://github.com/volley-streams/volley" }
Note: Volley currently uses git dependencies. crates.io publishing is planned — see the roadmap.
Feature Flags
The volley-connectors crate uses feature flags to control which connectors are compiled:
| Feature | Connectors Included |
|---|---|
state-rocksdb | RocksDB state backend (default, ~1.5 GB C++ build) |
blob-store | Cloud blob store abstraction |
blob-store-aws | AWS S3 + SQS source |
blob-store-azure | Azure Blob + Queue source |
blob-store-gcs | GCS + Pub/Sub source |
file-formats | Parquet, JSON, CSV, Avro decoders |
table-formats | Delta Lake + Iceberg sinks |
Tip: If you don’t need the RocksDB state backend (e.g. you’re only developing a Kafka connector), use
default-features = falseand enable only the features you need to save ~1.5 GB in build artifacts.
Troubleshooting
cmake not found
error: failed to run custom build command for `rdkafka-sys`
--- stderr
CMake not found
Install cmake: brew install cmake (macOS) or apt install cmake (Ubuntu).
RocksDB compilation slow or failing
RocksDB is a C++ dependency that takes ~3–5 minutes to compile on first build. If you don’t need state management (e.g., stateless transformations only), disable it:
volley-core = { git = "...", default-features = false }
protobuf-compiler not found
Only needed if building volley-scheduler. Install: brew install protobuf (macOS) or apt install protobuf-compiler (Ubuntu).
volley doctor reports issues
volley doctor checks for system dependencies, Docker availability, and toolchain versions. Address each reported issue individually. Common fixes:
- Docker not running: Start Docker Desktop or the Docker daemon
- Rust toolchain outdated:
rustup update stable - Missing system packages: See the System Dependencies table above
Verify Your Setup
# Build the workspace
cargo build --workspace
# Run tests
cargo test --workspace --exclude volley-python
# Run a quick example
cargo run --example in_memory_pipeline -p volley-examples