Skip to content

Varpulis Documentation

Varpulis - Next-generation streaming analytics engine

Named after the Slavic wind spirit, companion of thunder

Quick Start

bash
# Build
cargo build --release

# Run a VPL program with MQTT
varpulis run my_patterns.vpl

Minimal VPL file with MQTT:

vpl
connector MqttBroker = mqtt (
    host: "localhost",
    port: 1883,
    client_id: "my-app"
)

stream Events = SomeEvent
    .from(MqttBroker, topic: "events/#")

stream Alert = Events
    .where(value > 100)
    .emit(message: "High value detected")

Documentation Structure

Project Status

Specifications

VPL Language

Architecture

Examples & Demos


Reference

Tutorials

Guides


Connector Status

ConnectorInputOutputStatus
MQTTYesYesProduction
HTTPNoYesWebhooks
KafkaYesYesConnector framework

See language/connectors.md for details.

SaaS / REST API

Varpulis includes a multi-tenant REST API for pipeline management:

bash
# Start the API server
varpulis server --port 9000 --api-key "my-key" --metrics

# Deploy a pipeline
curl -X POST http://localhost:9000/api/v1/pipelines \
  -H "X-API-Key: my-key" -H "Content-Type: application/json" \
  -d '{"name": "my-pipeline", "source": "stream X = Y .where(z > 10)"}'

Full SaaS stack with monitoring:

bash
docker compose -f deploy/docker/docker-compose.saas.yml up -d
# Grafana: http://localhost:3000 | Prometheus: http://localhost:9091

Distributed Execution (Cluster Mode)

Varpulis supports distributed execution across multiple worker processes, coordinated by a central control plane:

bash
# Start coordinator
varpulis coordinator --port 9100 --api-key admin

# Start workers (each registers with coordinator)
varpulis server --port 9000 --api-key test \
    --coordinator http://localhost:9100 --worker-id worker-0

# Or use Docker Compose
docker compose -f deploy/docker/docker-compose.cluster.yml up -d

See architecture/cluster.md for full documentation.


Version: 0.6.0 Parser: Pest PEG Tests: 3,776+ License: MIT

Varpulis - Next-generation streaming analytics engine