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.
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
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
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
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
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
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
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
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
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.
Try it now!
If you want to see the coffee editor in action, launch a demo instance of the EMF-based coffee editor. This allows you to try any feature of the example. Please note that the demo will automatically shut down after 30 minutes and no data will be persisted.
Browse the sources
The coffee editor is an open source example modeling application. Have a look at the emf-based source code to find out how the features are implemented. The link above also contains instructions how to run the coffee editor yourself. The sources of the Coffee Editor NG are not yet available.
Learn more!
If you want to learn more watch the talk demonstrating the tool in action. Then head over to the documentation on getting started.