Kibo

Reads DSM, applies a template pack, emits what the pack defines. Kibo 2 is the current line — with kibo-template-viper 2, one DSM model gives C++, Python and TypeScript over the Viper runtime.

3 Targets from one model C++, Python and TypeScript, from the same DSM
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 2 — the engine

  • Reads .dsm.json — a DSM model, encoded by dsm_util.py encode or by kibo-project
  • Template Model 2 — each DSM namespace is a unit; each type is named in three spaces: the DSM's, the target's, the binding's
  • Renders per scope — once for the model, once per namespace, once per pool, as each template declares
  • Template-agnostic — no built-in language or runtime bias

kibo-template-viper 2 — first-party pack

Targets the Viper runtime. Features, selected per target:

  • Every target — Base, Fields, Paths, Attachments, Pool
  • Per target — PoolRemote in C++, Wheel in Python, Package in TypeScript
  • One namespace, one unit — a C++ namespace, a Python module, a TypeScript directory
  • Typed proxies over the runtime, the same surface in Python and TypeScript

Write your own template pack

Kibo is engine-only. If kibo-template-viper does not cover your target, author a pack of your own and keep 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 read Template Model 2 — Kibo's projection of DSM namespaces, concepts, clubs, structures, enumerations, attachments and function pools.

Where to learn

The Template Model reference documents every accessor a template reads.

Template Model reference →

Workflow

1

Write DSM

model.dsm
→
2

Validate

dsm_util.py check
→
3

Generate

kibo_project.py generate
→
4

Integrate

Python import model
C++ cmake && make
TypeScript npm install

Generate a Project

Describe the generation once, in a kibo.toml.