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 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.