Skip to content

MSRV Policy and Feature Flag Matrix ​

Minimum Supported Rust Version (MSRV) ​

Current MSRV: Rust 1.93

Defined in Cargo.toml under [workspace.package]:

toml
rust-version = "1.93"

All workspace members inherit this version. CI runs cargo test --workspace on the MSRV toolchain to ensure tests (not just compilation) pass.

MSRV Update Policy ​

  • MSRV increases are treated as minor version bumps (SemVer).
  • MSRV is only raised when a dependency update or language feature provides meaningful value (performance, safety, ergonomics).
  • CI enforces MSRV on every push to main and on all pull requests.

Workspace Crates ​

CrateDescription
varpulis-actorsActor framework with supervision
varpulis-cliCommand-line interface and REST API
varpulis-clusterDistributed execution (Raft, K8s)
varpulis-connector-apiShared connector traits and types
varpulis-connector-mqttMQTT connector
varpulis-connector-kafkaApache Kafka connector
varpulis-connector-natsNATS connector
varpulis-connector-redisRedis connector
varpulis-connector-databaseSQL database connector (PG/MySQL/SQLite)
varpulis-connector-elasticsearchElasticsearch connector
varpulis-connector-pulsarApache Pulsar connector
varpulis-connector-kinesisAWS Kinesis connector
varpulis-connector-s3AWS S3 connector
varpulis-connector-httpHTTP webhook connector
varpulis-connector-cdcPostgreSQL CDC connector
varpulis-connectorsConvenience crate (re-exports all connectors)
varpulis-coreCore types, AST, validation
varpulis-datagenSynthetic event generator
varpulis-dbPostgreSQL persistence layer
varpulis-lspLanguage Server Protocol
varpulis-mcpModel Context Protocol server
varpulis-parserVPL language parser
varpulis-runtimeExecution engine
varpulis-saseSASE+ pattern matching
varpulis-wasmWebAssembly bindings

Feature Flags ​

Features are disabled by default. Enable them via --features <flag>.

Connector Crates ​

Each connector is an independent crate with its own dependencies. They self-register via the inventory crate — linking a connector crate automatically makes it available to the engine. The varpulis-connectors crate re-exports all connectors via feature flags for backward compatibility.

CrateSystemKey DependencyFeature Flag
varpulis-connector-mqttMQTT brokerrumqttc-v4-next 0.28mqtt
varpulis-connector-kafkaApache Kafkardkafka 0.39kafka
varpulis-connector-natsNATS messagingasync-nats 0.46nats
varpulis-connector-redisRedisredis 1.xredis
varpulis-connector-databaseSQL (PG + MySQL + SQLite)sqlx 0.8database
varpulis-connector-elasticsearchElasticsearchelasticsearch 9.xelasticsearch
varpulis-connector-pulsarApache Pulsarpulsar 6.xpulsar
varpulis-connector-s3AWS S3aws-sdk-s3s3
varpulis-connector-kinesisAWS Kinesisaws-sdk-kinesiskinesis
varpulis-connector-httpHTTP webhooksaxum, reqwesthttp
varpulis-connector-cdcPostgreSQL CDCtokio-postgres 0.7cdc

All connector crates share varpulis-connector-api for the ConnectorFactory, Sink, ManagedConnector, and related traits.

Engine Features ​

FeatureDescriptionKey Dependency
persistenceRocksDB state persistencerocksdb 0.22
binary-codecMessagePack serializationrmp-serde 1.3
encryptionAES-GCM state encryptionaes-gcm 0.10
onnxONNX ML inferenceort 2.0.0-rc.11
gpuGPU acceleration (implies onnx)ort

WASM Features ​

FeatureDescriptionKey Dependency
smartmoduleSmartModule host runtime (filter/map)wasmtime 48

MSRV exception: wasmtime 48 declares rust-version = 1.95, and no release that fixes RUSTSEC-2026-0222 / RUSTSEC-2026-0269 builds on 1.93. The default workspace build stays on the 1.93 MSRV; enabling smartmodule (or varpulis-runtime/wasm-udf) requires rustc 1.95+, which is what the pinned rust-toolchain.toml and the CI feature-flag matrix already use.

Cluster Features ​

These are defined in varpulis-cluster and exposed through varpulis-cli.

FeatureDescriptionKey Dependency
raftRaft consensusopenraft 0.9
persistentRaft + RocksDB (implies raft)rocksdb 0.22
k8sKubernetes APIkube 0.98
nats-transportNATS cluster transportasync-nats 0.38
federationMulti-cluster (implies nats-transport)-

CLI Features ​

FeatureDescription
saasMulti-tenant SaaS mode
oidcOIDC/SSO authentication
otelOpenTelemetry observability

Feature Dependency Graph ​

gpu ──► onnx
persistent ──► raft
federation ──► nats-transport
database ──► postgres + mysql + sqlite
all-connectors ──► mqtt + kafka + nats + database + redis
                   + kinesis + s3 + elasticsearch + pulsar

CI Feature Testing ​

Every feature flag is tested individually in CI via a matrix strategy:

yaml
cargo check --workspace --features <feature>
cargo clippy --workspace --all-targets --features <feature> -- -D warnings

Features requiring system packages install them automatically. See .github/workflows/ci.yml for the full matrix.

Varpulis - Next-generation streaming analytics engine