Define Your Data Model. Get Everything Else for Free.
Viper is a metadata-driven runtime that simplifies C++/Python interoperability through a unified type and value system.
From Data Model to Production in 3 Steps
Define your data model once. Get type-safe code, versioning, and Python bindings automatically.
DSM
Describe
Define your data model with a declarative language. Types, structures, relationships.
Learn more →Kibo
Generate
Automatic code generation. 57x amplification. C++ and Python infrastructure.
Learn more →See It in Action
Define your model in DSM, use it in Python with full type safety
namespace Tuto {f529bc42-...} {
concept User;
struct Login {
string nickname;
string password;
};
struct Identity {
string firstname;
string lastname;
};
attachment<User, Login> login;
attachment<User, Identity> identity;
}; from dsviper import *
# Open database and inject constants
db = CommitDatabase.open("model.cdb")
db.definitions().inject()
# Create key and document
key = TUTO_A_USER_LOGIN.create_key()
login = TUTO_A_USER_LOGIN.create_document()
login.nickname = "zoop"
login.password = "robust"
# Commit to database (versioned)
state = CommitMutableState(db.initial_state())
state.attachment_mutating().set(TUTO_A_USER_LOGIN, key, login)
db.commit_mutations("Add user", state) Why Viper?
A complete runtime for data-intensive applications
Type Safety
Strong typing with immediate exceptions on type mismatch. No silent failures, no runtime surprises.
Data Versioning
Built-in commit DAG for your data. Track changes, branch, merge. Like Git, but for structured data.
Python Integration
Classes exposed via dsviper. Seamless C++/Python interoperability with zero boilerplate.
Persistence
SQLite-backed storage with automatic schema migration. ACID transactions out of the box.
Code Generation
57x amplification. Write 273 lines of DSM, get 15,592 lines of production-ready infrastructure.
Metadata Everywhere
Runtime introspection for types, values, serialization, RPC. One definition, multiple uses.
Ready to Get Started?
Download dsviper and build your first type-safe data model in minutes.