HARTWELL LABS / SCRYER
RUST · DETERMINISTIC ETL
Intelligence ETL you can replay

The same input always produces byte-identical output.

Scryer is an ETL engine for intelligence work where reproducibility is the whole point. SHA-256 manifests, frozen real-world fixtures, and a test suite that treats drift as a failure rather than a surprise.

~70tests
SHA-256manifests
0network deps
Rustimplementation
01 — Why deterministic

Intelligence pipelines fail quietly.

An ETL that reorders a column, changes a timestamp format, or drops a record on a re-run is not obviously broken — it just gives you a slightly different answer, and nobody notices for months. Scryer treats that as the bug it is.

Every stage is pinned by a SHA-256 manifest, and the fixtures are frozen real-world data rather than synthetic samples — so a change in parsing shows up as a failing test with a diff, not as a quietly different number.

Replayable

Given the same input and the same manifest version, the output is identical. That's the guarantee, and the tests enforce it.

Frozen fixtures

Real-world data, checked in and hashed. Not generated at test time — a generator can drift along with the bug it should be catching.

Manifest-driven

SHA-256 per stage, so you know exactly which input version produced which output, and can prove it later.

Status: Scryer's source is private. This page describes publicly verifiable facts only — the test count, the manifest approach and the fixture policy. Ask for a demo if you need to see it run.
02 — Get in touch

If deterministic ETL is a problem you have, Bartosz is available for a technical conversation.