Back to top
EMF Cloud

Develop web-based modeling tools with ease

What is EMF Cloud?

EMF Cloud is a set of open-source technologies for building next-generation modeling tools based on a modern web technology stack.

Whether you develop a custom IDE that includes multiple graphical editors manipulating complex configuration data, or a UML-like modeling tool, or a domain-specific engineering tool with graphical or form-based editors for working with domain-specific models, EMF Cloud provides several components to make your life easier. The EMF Cloud components range from an extensible model hub providing an API to access and manipulate your model, an editing domain to manage the model state and coordinate changes in a command stack, as well as libraries for integrating form-based, graphical or textual editors.

Overview of EMF Cloud features
Modern technology stack

Modern technology stack

EMF Cloud enables you to build feature-rich modeling tools based on a modern and well-known technology stack, using Typescript on both frontend and backend via Node.js and your favorite UI library, such as React for user interfaces based on HTML5 and CSS, and Eclipse GLSP for graphical representations.

Flexible model management

Flexible model management

EMF Cloud makes your data models available to all your editors, views and services with an extensible model hub via an extensible API. By default those models are stored in JSON files, but also custom file formats, textual DSLs, or even arbitrary other data sources can be integrated.

User centered editors

User centered editors

EMF Cloud clearly separates your central model management from your frontend widgets that show, edit or interact with your data models. This gives you full freedom in creating the most appropriate UI for presenting each part of your model to your users, whether it is a form editor, a tree view, graphical diagram or a textual DSL.

Customizable by default

Customizable by default

EMF Cloud is not a monolith, but a set of libraries designed to be customized. To accommodate different data formats, user interfaces, or even deployment scenarios, such as cloud backends vs. frontend-only browser apps, you can combine and adapt existing EMF Cloud components or replace certain parts with your custom code for your use case.

Pragmatic language design

Pragmatic language design

EMF Cloud takes a very simple and pragmatic approach for defining the structure of your model data. For the usual cases, you just define Typescript interfaces and annotate them with meta-information, if necessary, and the rest is taken care of by the EMF Cloud tooling to create a model hub that is capable of managing data according to your model structure.

Simple to complex models

Simple to complex models

EMF Cloud supports from very simple models, such as a single JSON file, to complex models which are scattered across multiple files, formats and sources. To manage cross-references among different files in your workspace, a dedicated cross-reference service will scan your workspace and build an index of model elements and references.

Versatile deployment

Versatile deployment

Modeling features built with EMF Cloud can be integrated with VS Code, Eclipse Theia, or any arbitrary web application. The model management can even operate as a backend service in the cloud, or bundled with webpack to run in a frontend-only browser app, making any need for a backend obsolete while still providing a full-fledged modeling tool.

Legacy friendly

Legacy friendly

Not every modeling tool is developed from scratch. EMF Cloud therefore offers optional Java components to enable integrating EMF models on the backend into a modern modeling tool with a web-based frontend. These Java components are carefully designed so that the EMF dependency is encapsulated to facilitate a smooth migration path in the future.

Rich ecosystem

Rich ecosystem

EMF Cloud is a flexible architecture of compatible libraries and components embedded in a rich ecosystem of well-established best-in-class open-source technologies inside and outside of the EMF Cloud project. To name a few of them, EMF Cloud is close friends and works well with Eclipse GLSP, JSON Forms, Langium, as well as EMF and Xtext.

Coffee Editor NG

The Coffee Editor NG is a comprehensive example modeling tool based on EMF Cloud technologies and can also act as an architecture blueprint for your custom modeling tool. This full-featured example tool is written entirely in Typescript and includes a central model hub serving a sample modeling language to a variety of editors, such as a diagram editor, a form-based editor, as well as a textual DSL editor.

Coffee Editor Overview