VIATRA (VIsual Automated model TRAnsformations)

Clone this repo:
  1. 0497683 [571048] Fixes Input Key comparator in validator by Zoltan Ujhelyi · 2 years, 9 months ago master
  2. 6d12f2e Extend version range for CPS demonstrator usages by Zoltan Ujhelyi · 2 years, 10 months ago
  3. 98baeb6 [574447] Avoid indexing when base index is turned off in local search by Zoltan Ujhelyi · 2 years, 10 months ago
  4. 721c3e4 Renamed test case to make sure it is found by Tycho by Zoltan Ujhelyi · 2 years, 10 months ago
  5. 9916b82 Dependency updates to avoid Java 11-dependency during the build by Zoltan Ujhelyi · 2 years, 10 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: