Kibo

Kibo is the code generator. It reads a DSM model plus a Kibo template and emits source code — typed Python and C++ surfaces wired for the Viper runtime when used with kibo-template-viper.

Kibo is the second step of the code-generation pipeline: DSM Kibo kibo-template-viper. Kibo itself is template-agnostic — change the template and you change the target language and runtime. This section covers Kibo’s CLI usage. The catalogue of templated features it produces in the dsviper / Viper world lives in kibo-template-viper.

Place in the ecosystem

  • Depends onDSM (consumes .dsm and .dsm.json files), a Kibo template directory.

  • Consumed by — developer toolchains directly (Java CLI), and indirectly through dsm_util.py create_python_package, which invokes Kibo with kibo-template-viper under the hood.

  • Source repositorydigital-substrate/kibo. Implemented as a Java tool bridging DSM and StringTemplate.

  • Distribution — bundled in the DevKit ZIP as a single JAR (e.g. tools/kibo-1.2.7.jar).

Quickstart

The common case (DSM → typed Python package) is wrapped by dsm_util.py:

python3 tools/dsm_util.py create_python_package model.dsm

Direct Kibo invocation, for finer control:

java -jar tools/kibo-1.2.7.jar \
    -c python -n MyApp \
    -d model.dsm.json \
    -t templates/python/package \
    -o ./generated

The result is a typed Python package importable as import MyApp.attachments (or whatever namespace your DSM model declares), ready to be used through dsviper.

Topics

Status

Part of DevKit 1.2.x. Kibo itself is stable; new templated features are added in kibo-template-viper and other templates as the ecosystem grows.