Skip to content

VarpulisThe detection engine

Correlation rules on the event stream you already forward, outside the SIEM — sequences across hosts, judged in the time the logs happened.

What Varpulis is now ​

Varpulis is its engine. In September 2026 the platform around it — the server, the cluster, the SaaS layer and its connectors — was retired in favour of Vejas, an open-source event runtime that runs a Varpulis program as a detect unit: one durable JetStream consumer over the program's sources, alerts published before input is acknowledged, state snapshotted and resumed by stream sequence after a crash. The decision and its reasons are in ADR-008.

What stayed here is what a detection engineer writes and reads: the language, its semantics, the engines behind it, the scenarios and the SIEM Evasion Lab.

A rule, end to end ​

vpl
event SmbConnect:
    host: str
    target: str

event ServiceStart:
    host: str
    image: str

stream LateralMovement = SmbConnect as smb
    -> ServiceStart where host == smb.target as svc
    .within(2m)
    .emit(rule: "lateral_movement", from: smb.host, to: svc.host, image: svc.image)
bash
varpulis check lateral.vpl                      # ok, or the reason and the line
varpulis simulate -p lateral.vpl -e lateral.evt # every emit as a JSON line

On a bus, the same file under detects/ in Vejas is a running unit. The getting started walks through both.

Where to go next ​

Working on detection for a SOC? www.varpulis-cep.com has the fixed-price proof of concept, and a free first step: send three of your rules, get them back ported.

Varpulis - Next-generation streaming analytics engine