Kibo
Reads DSM, applies a template from a pack, emits whatever the template defines. Template-agnostic — pair with kibo-template-viper for Viper, or roll your own pack.
Engine + Template Pack
Kibo is the engine ; a template pack defines what it emits. The two are decoupled — pair Kibo with any pack to target any runtime.
Kibo — the engine
- Reads
.dsm.json— DSM models, afterdsm_util.py encode - Loads a template from the pack — directory of StringTemplate (
.stg) files - Builds the Template Model — Java projection of the DSM
- Renders — feeds the Template Model into the template, writes the output files
- Template-agnostic — no built-in language or runtime bias
kibo-template-viper — first-party pack
Targets the Viper runtime. Catalogue of templated features, each independently selectable:
- Core types —
Data,Model(typed classes, definitions, paths) - Persistence —
Database,Attachments(attachment accessors) - Serialization —
Stream,Json,ValueCodec - Service APIs —
FunctionPool,AttachmentFunctionPool+ remote variants (RPC stubs) - Bridge — per-app glue code that exposes the app's pools to Python through dsviper (optional, used by C++ apps embedding Python)
- Testing —
Test,TestApphelpers (incl. seedable fuzz harness)
Write your own template pack
Kibo is engine-only — no built-in language or runtime bias. If
kibo-template-viper does not cover your target, you can
author a pack of your own and reuse DSM as the single source of truth
across stacks.
Why a custom pack?
Target a runtime kibo-template-viper doesn't cover —
Django, Protobuf, gRPC, JSON Schema, OpenAPI, your
internal codegen. One DSM model, N stacks; no schema drift.
The contract
Author StringTemplate (.stg) files that consume the
Template Model — Kibo's Java projection of DSM
namespaces, concepts, clubs, structures, enumerations, attachments and function pools.
Stable, documented, language-agnostic.
Where to learn
The Kibo template guide walks through the Template Model API and includes a worked example.
Template Model reference →Workflow
Write DSM
model.dsm Validate
dsm_util.py check Generate
kibo generate Integrate
import model cmake && make