Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kibo

Code generator for the DSM language ecosystem. Kibo is a thin bridge between DSM and StringTemplate: it reads a DSM definitions file, exposes a Template Model to .stg files, and lets StringTemplate render the output.

Kibo = bridge(.dsm.json)  →  StringTemplate model  →  generated code

Kibo is an implementation of the consumer side of the DSM language contract specified at github.com/digital-substrate/dsm. It accepts the canonical JSON wire format described by that spec.

Kibo does not know what is being generated. It only applies a templated feature (a .stg file) to a model. Targets can be anything StringTemplate can render: C++, Python, Graphviz, SQL, …

Documentation

Full documentation: https://docs.digitalsubstrate.io/kibo/

Part of the DevKit ecosystem.

Build

mvn package

Produces target/kibo-X.Y.Z.jar.

Synopsis

java -jar target/kibo-X.Y.Z.jar \
    -c [cpp | python] \
    -n [namespace] \
    -d [definitions.dsm.json] \
    -t [template_directory_or_file] \
    -o [output_directory]

For details, see the user-facing documentation:

  • devkit-doc/source/kibo/usage.md — Kibo CLI and its role.
  • devkit-doc/source/kibo/templates.md — templated features as an ecosystem.
  • devkit-doc/source/kibo/template_model.md — how the Template Model is built from .dsm.json.

Public contract

Kibo's public surface is the Template Model API exposed to .stg files: the variables, iterators, and methods consumed by every templated feature, first-party (DS-maintained) and third-party (client-authored). Breaking this API breaks all downstream templated features, including those DS does not own. Treat changes with the same rigour as a public runtime API.

Versioning follows the dsviper ecosystem MAJOR.MINOR API line; see https://docs.digitalsubstrate.io/.

License

This project is licensed under the MIT License — see LICENSE.

About

Code generator for the dsviper ecosystem — bridges DSM and StringTemplate

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages