Back to directory

CIMgen

A command-line tool that parses Common Information Model (CIM) RDF schemas and generates language-specific data model code, with a Go rewrite of the original generator.

CIMgen

CIMgen reads CIM RDF schema files, including the CGMES power-system profiles from ENTSO-E, and produces classes and structs in several programming languages such as Go, C++, Java and Python. Several downstream projects use CIMgen to keep their data models in sync with the CIM standard.

The repository is being rewritten in Go as cimgen-go. Building it requires the schema submodules cloned recursively, then running the tool with a -lang flag to pick the target language; a go install path is also available. A go test suite covers the generator, and a diff-based workflow compares generated output between versions to catch regressions.

Internally, the tool loads and parses the CIM schema, converts it into an internal language-agnostic representation of classes, properties and datatypes, then renders that representation through Go's text/template engine into language-specific source files.

More in CLI tools

See all 181
  • grev

    github.com

    A set of Unix coreutils-style filters — grep, sort, cut and more — that answer a plain-language question about each record instead of matching a pattern, using a small decision model.

  • A Node.js script that exports a Google Doc to HTML and CSS with high fidelity, preserving headings, spacing, alignment, bullet lists, images and right-to-left text.

  • gpusched

    github.com

    A VRAM-aware GPU job scheduler for a single machine: declare how much memory each shell command needs, and it places jobs the moment a GPU has room and reports when a guess was wrong.