c28n --help
UNDERSTAND CODE
canonicalize your data pipeline. ship with confidence.
c28n is a developer-first data normalization layer — define schemas once, enforce them everywhere, and never debug malformed payloads at 2am again.
features
// man c28n--schema
Define once in YAML or JSON Schema. c28n handles the rest — validation, coercion, and diff tracking across versions.
--pipe
Drop into any stage of your data pipeline. Works with Kafka, RabbitMQ, HTTP webhooks, and plain stdin/stdout.
--diff
Automatically surface breaking changes before they reach production. Integrates with your CI.
--transform
Chain normalization rules with a tiny DSL. No new language to learn — just functions.
--audit
Every transform is recorded. Replay, inspect, and debug any data event from any point in time.
--sdk
First-class support for TypeScript, Python, and Go. WASM target coming in v0.2.
log
// tail -f c28n.logWhy we built c28n: the 2am incident
Every data engineer has a story. Ours involved a missing null coercion in a Kafka consumer, 40GB of malformed events, and a very cold pizza.
→ read post
Schema-first vs. contract-first: a false dichotomy
The debate between schema-first and contract-first API design has raged for years. We think both camps are solving the wrong problem — and c28n is our answer.
→ read post
Introducing the c28n transform DSL
Today we're sharing early docs for the c28n transform DSL. Chain, compose, and debug data normalization rules with zero boilerplate. An interactive playground is coming soon.
→ read post
How c28n tracks schema drift at the byte level
Structural diff over JSON is a solved problem. Semantic drift is not. We walk through the heuristics and fingerprinting approach we use under the hood.
→ read post