Skip to main content

ivo

A user-story-focused, event-driven data validation framework for TypeScript and Rust.

User-story-focused validation

Enforce complex, multi-field invariants that keep a domain entity from ever entering an invalid state - not just isolated per-field checks.

Event-driven lifecycle

Subscribe to creation, update and deletion lifecycles at both the entity and individual field level with onSuccess, onFailure and onDelete handlers.

TypeScript & Rust, one model

The same constant, dependent, lax, required and virtual field concepts apply in both implementations, so switching languages doesn't mean relearning the mental model.

Quick links

LanguageDocsMain demoExamples
TypeScriptdocsdemoexamples
Rustdocsdemoexamples