File Format

A few different persistence formats can be selected when creating a new model (Modelstorage format):

  • Pre-installed XML-based format MPS describes models in an XML format. Git changes are collected per model. It is the default format. There seems to be support for saving user objects (strings, node IDs, etc. but not serializable objects), but this option doesn't seem to be activated. User objects are therefore lost when existing MPS.
  • Pre-installed XML-based File-Per-Root format (.mpsr) Models are described in an XML format. Git changes are collected per root node. Some file-per-root-specific bugs ⧉ exist.
  • Pre-installed Binary-Format (.mpb) Models are saved in a binary format. It can save user objects and should also be able to save serializable objects, but this might not be working. The information is saved directly in the model file.

The persistence format was improved over the years (v4 - v8). Version 9 is the current format.

Read the custom persistence ⧉ chapter in the documentation to support a custom format.

Here is a list of some other used file formats:

  • languages (.mpl)
  • solutions (.msd)
  • models (.mps)
  • devkit (.devkit)
  • model headers (.model)
  • Java files (.java)
  • Kotlin files ⧉ (.kt)
  • Kotlin modules (.kotlin)
  • compile Java files (.class)
  • old MPS projects (.mpr)
  • old workspace format (.mws)
  • standalone generators (.mpst)
  • Java archives (.jar)
  • IntelliJ modules ⧉ (.iml)
  • generation info files ⧉ (

Last update: July 9, 2023