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.

57x Amplification On real models, with kibo-template-viper (273 DSM lines → 15,592 generated)
0 Boilerplate to Write Focus on business logic ; the pack handles the plumbing
Targets Possible Template-agnostic — engine decoupled from the 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, after dsm_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 typesData, Model (typed classes, definitions, paths)
  • PersistenceDatabase, Attachments (attachment accessors)
  • SerializationStream, Json, ValueCodec
  • Service APIsFunctionPool, 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)
  • TestingTest, TestApp helpers (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

1

Write DSM

model.dsm
2

Validate

dsm_util.py check
3

Generate

kibo generate
4

Integrate

Python import model
C++ cmake && make

Automate Your Infrastructure

Walk through a complete generation script.