VIATRA (VIsual Automated model TRAnsformations)

Clone this repo:
  1. 29f064a [571356] Ensures build runs in an pod with more than 4GB memory by Zoltan Ujhelyi · 35 hours ago master
  2. 4055a02 Reverts change in RCPTT config by Zoltan Ujhelyi · 11 days ago
  3. 5f3d0b3 Fixes for JIRO build by Zoltan Ujhelyi · 11 days ago
  4. 4f44080 Updates Jenkinsfile for JIRO by Zoltan Ujhelyi · 3 weeks ago
  5. 70d4a3d Workaround for RCPTT test failures by Zoltan Ujhelyi · 3 months ago


The Eclipse VIATRA framework is a model and data transformation tool that helps move information back and forth in the most efficient way. The platform focuses specifically on event-driven and reactive transformations, which happen on-the-fly as the models change.

VIATRA is a long-running project that incorporates the results of over 15 years of active research and development. VIATRA offers

  • a domain-specific language for graph queries and reactive transformations
  • a Java runtime library which is scalable and easy to embed.

VIATRA primarily targets model-driven engineering tools based on the industry-standard Eclipse Modeling Framework, though it can be used in other contexts as well. VIATRA is an enabling technology and its biggest benefit is the power it gives you to close abstraction gaps. These exist in every data-driven application where structured data needs to be moved across various languages or representation formats.

VIATRA helps you create model transformations that convert objects between languages. Trivial transformations (i.e. copying pieces of data from one document to another) are easy with any general purpose programming language such as Java. In contrast, VIATRA gives you easy-to-use and reusable programming patterns to address non-trivial transformations, such as

  • Changing of structure, i.e. converting a UML model to a source code.
  • Derived data and abstractions: manipulating data during conversion, e.g. filtering information for creating ‘abstract views’
  • Combining multiple sources of information in a significant way to produce a new result, e.g. when creating data streams for dashboards
  • Changing structure: projection of data containing only relevant information during the conversion phrase

Most important links


All code in this repository is available under the Eclipse Public License v2.0: