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.vplMinimal 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
development/STATUS.md- Current project statusdevelopment/AUDIT_REPORT.md- Security auditPRODUCTION_DEPLOYMENT.md- Production deployment guide
Specifications
spec/overview.md- Project overview and visionspec/roadmap.md- Roadmap and development phasesspec/benchmarks.md- Performance objectivesspec/glossary.md- Glossary of termsbenchmarks-apama-comparison.md- Varpulis vs Apama benchmarks
VPL Language
language/overview.md- Language philosophy and designlanguage/syntax.md- Complete syntax referencelanguage/connectors.md- Connectors (MQTT, HTTP)language/builtins.md- Built-in functionslanguage/types.md- Type systemlanguage/operators.md- Operatorslanguage/grammar.md- Formal grammar (Pest PEG)
Architecture
architecture/system.md- System architecturearchitecture/cluster.md- Distributed execution (cluster mode)architecture/state-management.md- State managementarchitecture/parallelism.md- Parallelizationarchitecture/observability.md- Metrics and tracesarchitecture/multi-tenancy.md- Multi-tenancy and SaaS billing
Examples & Demos
examples/hvac-building.md- HVAC monitoringexamples/financial-markets.md- Financial analytics../demos/README.md- Interactive demos
Reference
reference/cli-reference.md- CLI commands and optionsreference/windows-aggregations.md- Windows and aggregations
Tutorials
tutorials/getting-started.md- Installation and first programtutorials/language-tutorial.md- Comprehensive VPL language guidetutorials/contexts-tutorial.md- Parallel processing with contextstutorials/cluster-tutorial.md- Distributed execution with cluster modetutorials/checkpointing-tutorial.md- Checkpointing, persistence, and watermarks
Guides
guides/contexts.md- Context-based multi-threaded executionguides/performance-tuning.md- Optimizationguides/configuration.md- Configuration optionsguides/sase-patterns.md- Pattern matching guide
Connector Status
| Connector | Input | Output | Status |
|---|---|---|---|
| MQTT | Yes | Yes | Production |
| HTTP | No | Yes | Webhooks |
| Kafka | Yes | Yes | Connector 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:9091Distributed 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 -dSee architecture/cluster.md for full documentation.
Version: 0.6.0 Parser: Pest PEG Tests: 3,776+ License: MIT