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-connectorsSource/sink connector implementations
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 Features

These features add I/O connectors for external systems. They are defined in varpulis-connectors and re-exported through varpulis-runtime and varpulis-cli.

FeatureSystemKey DependencySystem Packages
mqttMQTT brokerrumqttc 0.25-
kafkaApache Kafkardkafka 0.39libcurl4-openssl-dev
natsNATS messagingasync-nats 0.38-
redisRedisredis 0.25-
databaseSQL (Postgres + MySQL + SQLite)sqlx 0.8-
postgresPostgreSQL onlysqlx 0.8-
mysqlMySQL onlysqlx 0.8-
sqliteSQLite onlysqlx 0.8-
elasticsearchElasticsearchelasticsearch 8.15libssl-dev
pulsarApache Pulsarpulsar 6.xprotobuf-compiler
s3AWS S3aws-sdk-s3-
kinesisAWS Kinesisaws-sdk-kinesis-
cdcPostgreSQL CDCtokio-postgres 0.7-
csv-converterCSV codeccsv 1.x-
all-connectorsAll of the above-All of the above

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 42

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