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.

1

DSM

Describe

Define your data model with a declarative language. Types, structures, relationships.

Learn more →
2

Kibo

Generate

Automatic code generation. 57x amplification. C++ and Python infrastructure.

Learn more →
3

dsviper

Use

Python API with full type safety. Immediate exception on type mismatch.

Learn more →

See It in Action

Define your model in DSM, use it in Python with full type safety

model.dsm
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;

};
Use it
app.py
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.