<!DOCTYPE html>
<html>

  <head>
	<meta charset="UTF-8">
	<title>Xtext - Community</title>
	
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description"
		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
	<meta name="author" content="Sven Efftinge">
	<meta name="author" content="Miro Spoenemann">
	<!--  styles -->
	<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
	<!--[if lt IE 9]>
	  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	
	<!-- Le fav and touch icons -->
	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
	
	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
	<!-- cover flow -->
	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
	<!--[if lt IE 9]>
	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
	<![endif]-->

	<!-- BEGIN Cookie Consent
	<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
	<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
	<script>
	window.addEventListener("load", function(){
	window.cookieconsent.initialise({
		"palette": {
		"popup": {
		  "background": "#000"
		},
		"button": {
		  "background": "#f1d600"
		}
		},
		"theme": "edgeless",
		"type": "opt-in",
		onInitialise: function (status) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		},
		onStatusChange: function(status, chosenBefore) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		}, 
		onRevokeChoice: function() {
		  var type = this.options.type;
		  if (type == 'opt-in') {
		    // TODO: disable cookies
		  }
		  if (type == 'opt-out') {
		    // TODO: enable cookies
		  }
		},
		"content": {
		"href": "http://www.eclipse.org/legal/privacy.php"
		}
	})});
	</script>
	END Cookie Consent -->
</head>


  <body>
  
    <header class="site-header">

  <!-- Navbar -->
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <a class="btn btn-navbar" data-toggle="collapse"
          data-target=".nav-collapse"> <span class="icon-bar"></span> <span
          class="icon-bar"></span> <span class="icon-bar"></span>
        </a> <a class="brand" href="/Xtext/index.html"></a>
        <div class="nav-collapse collapse" style="height: 0px;">
          <ul class="nav">
            <!--li ><a href="/Xtext/news.html">News</a></li-->
            <li ><a href="/Xtext/download.html">Download</a></li>
            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
            <li ><a href="/Xtext/community.html">Community</a></li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
              </ul>
            </li>
            <li ><a href="http://xtend-lang.org">Xtend</a></li>
          </ul>
          <!--div class="nav pull-right">
            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
          </div-->
        </div>
        <!--/.nav-collapse -->
      </div>
    </div>
  </div>
  <!-- Navbar End -->

</header>


    	<div id="page">
		<div id="team" class="container clearfix">
			<h2>Resources</h2>
				<hr>
			<div class="row">
				<div class="span1">&nbsp;</div>
				<div class="span9 team">
					<a href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=27" class="anchor-in-div"></a>
					<div class="row">
						<div class="span1 ">
							<img src="/Xtext/images/discussion-circ-darkgray.png" alt="image" class="image_left">
						</div>
						<div class="span2 ">
							<h3>Forum</h3>
						</div>
					<div class="span6 ">
						<p>The <strong>Xtext forum</strong> is the first source for getting answers in case you got stuck.
						The community is very friendly.</p>
					</div>
					</div>
				</div>
				<div class="span1">&nbsp;</div>
			</div>
			<div class="row">
				<div class="span1">&nbsp;</div>
				<div class="span9 team">
					<a href="https://github.com/eclipse/xtext/blob/master/CONTRIBUTING.md#report-an-issue" class="anchor-in-div"></a>
					<div class="row">
						<div class="span1 ">
							<img src="/Xtext/images/bug-circ-darkgray.png" alt="image" class="image_left">
						</div>
						<div class="span2 ">
							<h3>Found a Bug?</h3>
						</div>
					<div class="span6 ">
						<p>Bug reports and enhancement request are tracked at <strong>GitHub.org</strong>. Please 
						explain the problem and provide a reduced but reproducible example.</p>
					</div>
					</div>
				</div>
				<div class="span1">&nbsp;</div>
			</div>
			<div class="row">
				<div class="span1">&nbsp;</div>
				<div class="span9 team">
					<a href="https://github.com/eclipse/xtext" class="anchor-in-div"></a>
					<div class="row">
						<div class="span1 ">
							<img src="/Xtext/images/github-mark-darkgray.png" alt="image" class="image_left">
						</div>
						<div class="span2 ">
							<h3>Github</h3>
						</div>
						<div class="span6 ">
							<p>The Xtext source code is available on <strong>GitHub</strong>. You'll find more information on how to contribute to the project in the README.md contained there.</p>
						</div>
					</div>
				</div>
				<div class="span1">&nbsp;</div>
			</div>
			<div class="row">
				<div class="span1">&nbsp;</div>
				<div class="span9 team">
					<a href="https://twitter.com/intent/user?screen_name=Xtext" class="anchor-in-div"></a>
					<div class="row">
						<div class="span1 ">
							<img src="/Xtext/images/Twitter-bird-darkgray.png" alt="image" class="image_left">
						</div>
						<div class="span2 ">
							<h3>Twitter</h3>
						</div>
						<div class="span6 ">
							<p>If you are on twitter and want to get notified about Xtext, you should consider following <strong>@Xtext</strong>.</p>
						</div>
					</div>
				</div>
				<div class="span1">&nbsp;</div>
			</div>
		</div>
		<br/><br/>
		<div id="zoo" class="container">
			<span class="edit-on-github pull-right">
				<a href="https://github.com/eclipse/xtext/edit/website-published/xtext-website/community.html">Add your project!</a>
			</span>
			<h2>What others have built with Xtext</h2>
			<hr>
			<table class="table table-striped table-condensed">
				<thead>
					<tr>
						<th>Name</th>
						<th>Description</th>
						<th>License</th>
						<th>Category</th>
						<th>Author(s)</th>
					</tr>
				</thead>
				<tbody>

					<tr>
						<td><a href="https://github.com/INTO-CPS-Association/hybrid-cosim">A DSL for Semantic Adaptation</a></td>
						<td>This language allows for quick and sound adaptations to be made for co-simulation units implementing the FMI standard for co-simulation.</td>
						<td>INTO-CPS Association Public License</td>
						<td>Framework</td>
						<td>INTO-CPS Association</td>
					</tr

					<tr>
						<td><a href="http://gemoc.org/ale-lang/">Action Language for EMF</a></td>
						<td>ALE (Action Language for EMF) is an interpreted language to define behaviors on the top of Ecore metamodels. In other words, it makes Ecore metamodels executable.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Fabien Coulon, Didier Vojtisek, Emmanuel Chebbi, Pierre Jeanjean, Erwan Bousse, Benoit Combemale</td>
					</tr>

					<tr>
						<td><a href="http://www.arakhne.org/afc">AFC</a></td>
						<td>AFC is a Java library that provides mathematic primitives, and other useful utility tools. The mathematic primitives
							(vector, point, matrix, shape, etc.) are providing operator overridings for Xtext-based languages.</td>
						<td>Apache 2 License</td>
						<td>Library</td>
						<td>St&eacute;phane Galland, et al</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/p/alloy4eclipse/">alloy4eclipse</a></td>
						<td>Specification and analysis of models in the Alloy4 language on
							the Eclipse platform.</td>
						<td>LGPL</td>
						<td>Language</td>
						<td>Mohamed Bouragba, Mohamed Said, Maxime Kapusta and Yoann Vasseur</td>
					</tr>

					<tr>
						<td><a href="https://github.com/unicesi/amelia">Amelia DSL</a></td>
						<td>Amelia is a compact DSL tailored for specifying and executing deployment workflows for distributed software systems.</td>
						<td>LGPL-3.0</td>
						<td>Software Deployment</td>
						<td>Miguel Jiménez, Gabriel Tamura</td>
					</tr>

					<tr>
						<td><a href="http://applause.github.io/">APPlause</a></td>
						<td>Open source tool chain to produce native apps for different
							devices such as Android, iPhone and iPad.</td>
						<td>EPL</td>
						<td>Language, Framework</td>
						<td>Heiko Behrens, Peter Friese, et al</td>
					</tr>

					<tr>
						<td><a href="http://www.artop.org/">ARText (part&nbsp;of&nbsp;Artop)</a></td>
						<td>ARText, a textual language for the specification of AUTOSAR
							systems. See the <a href="https://vimeo.com/16768196">very</a> <a href="https://vimeo.com/13154188">cool</a> <a href="https://vimeo.com/12080038">screencasts</a>.</td>
						<td>closed&nbsp;source</td>
						<td>Language</td>
						<td>Sebastian Benz, Dana Wong</td>
					</tr>

					<tr>
						<td><a href="https://co4e.com/assist">ASSIST - Architecture Synthesis for Safety-Critical Systems</a></td>
						<td>The ASSIST Tool Suite automates the design of complex and distributed control systems. It creates software deployments and task schedules based on a textual description of the system architecture and its safety and timing requirements.</td>
						<td>Commercial</td>
						<td>Eclipse IDE, System Modeling</td>
						<td>co4e GmbH</td>
					</tr>

					<tr>
						<td><a href="https://docs.avaloq.com/tools/asmd/solution_model_development.htm">Avaloq Solution Model Development (ASMD)</a></td>
						<td>ASMD is a model driven client-server system providing customization tooling for the Avaloq Banking Platform. It supports customization experts managing more than 100k source artefacts in more than 60 DSLs that describe the aspects and behaviour of financial institutions.</td>
						<td>Commercial</td>
						<td>Eclipse IDE</td>
						<td>Avaloq Solution Model Development and Compiler Framework team</td>
					</tr>

					<tr>
						<td><a href="https://github.com/CohesionForce/avro-toolkit">Avro Toolkit</a></td>
						<td>Framework for building Apache Avro schemas and converters from an EMF model.</td>
						<td>EPL 2.0</td>
						<td>Framework</td>
						<td>CohesionForce, Inc</td>
					</tr>

					<tr>
						<td><a href="http://new.axdt.org">Axdt</a></td>
						<td>ActionScript3 development tools. It uses Mirror resources to
							integrate declarations parsed from html and xml ActionScript Docs similar to
							the Xtext Java integration.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Martin Schnabel</td>
					</tr>

					<tr>
						<td><a href="https://github.com/balzac-lang/balzac">Balzac Language</a></td>
						<td>Balzac is a domain-specific language to write Bitcoin transactions. <a href="https://balzac-lang.xyz">Online editor</a> and <a href="https://docs.balzac-lang.xyz/">documentation</a>.</td>
						<td>Apache License 2.0</td>
						<td>Language</td>
						<td>Nicola Atzei</td>
					</tr>
					
					<tr>
						<td><a href="https://www.stat.ubc.ca/~bouchard/blang/">Blang</a></td>
						<td>Blang is a language and software development kit for doing Bayesian data analysis.</td>
						<td>BSD-2-Clause License</td>
						<td>Language</td>
						<td><a href="https://arxiv.org/pdf/1912.10396.pdf">Blang development team</a></td>
					</tr>

					<tr>
						<td><a href="https://i-bp.github.io/boem/">BOEM. Builder Of EMF Models</a></td>
						<td>The aim of BOEM is to provide an API that eases the creation of EMF Models using Xtend syntax and thus to create 'compiling' models. This helps to a) speed up the creation of tests, b) improve readability, c) improve maintainability when metamodels evolve and d) ease the creation of interconnected models.</td>
						<td>EPL</td>
						<td>Language, Framework</td>
						<td>Arthur Daussy, Jacob Geisel</td>
					</tr>

					<tr>
						<td><a href="http://businessAppTester.com">BusinessAppTester</a></td>
						<td>
							Allows you to reuse JUnit test classes by seperating the data from the
							unit implementation class. Uses Xtext to define test class specific domain
							models.
						</td>
						<td>EPL</td>
						<td>Testing, Framework</td>
						<td>Florian Pirchner, Ekkehard Gentz</td>
					</tr>

					<tr>
						<td><a href="http://www.canappi.com">Canappi</a></td>
						<td>
							Canappi is a Development Hub, focusing on Mobile Application Development, that
							integrates tools, mobile platforms, libraries and back-end services. It is
							based on mdsl, a very compact mobile domain specific language. Platform
							specific code generation happens in on the ClougGen.org platform.
						</td>
						<td>Commercial</td>
						<td>Language</td>
						<td>Jean-Jacques Dubray</td>
					</tr>

					<tr>
						<td><a href="https://docs.avaloq.com/tools/compiler_framework.htm">Compiler Framework</a></td>
						<td>The Compiler Framework (CF) supports state of the art implementations of DSLs for the Avaloq Banking Platform with stand-alone generators for the target platform.</td>
						<td>Commercial</td>
						<td>Framework</td>
						<td>Avaloq Solution Model Development and Compiler Framework team</td>
					</tr>

					<tr>
						<td><a href="https://contextmapper.org">Context Mapper</a></td>
						<td>ContextMapper is an open source framework providing a Domain-specific Language (DSL) for strategic and tactic Domain-driven Design (DDD). It supports bounded context mapping, service decomposition, and PlantUML model generation. The framework components allow software architects and microservice designers to reverse engineers Context Maps from Spring Boot and Docker Compose files, to improve the architecture iteratively, and to convert models into other representations.</td>
						<td>Apache 2.0 License</td>
						<td>Language, Modeling Framework</td>
						<td><a href="https://stefan.kapferer.ch/">Stefan Kapferer</a>, <a href="https://www.ifs.hsr.ch/Olaf-Zimmermann.11623.0.html?&amp;L=4">Olaf Zimmermann</a></td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/p/dom3editor/">dom3editor</a></td>
						<td>
							This is a tool to help edit Dominions 3 mod files. It includes
							context coloring, code completion, error checking and integrated help. You can
							edit using the text editor or the form based entry view.
						</td>
						<td>GPL</td>
						<td>Language</td>
						<td>Larry Moore</td>
					</tr>

					<tr>
						<td><a href="https://github.com/dsldevkit/dsl-devkit">DSL Developer Kit and Runtime Library</a></td>
						<td>JDSL Developer Kit is an extension layer to Xtext built for active Xtext users. It extends Xtext runtime to handle more sophisticated cases in DSL design, to support scaling for larger models and better monitoring and recovery in headless frameworks based on Xtext. DDK comes with a few handy small DSLs helping to standardize implementations of tools for DSLs.
							See also the corresponding <a href="https://www.eclipsecon.org/europe2016/session/what-every-xtext-user-wished-know-industry-experience-implementing-80-dsls.html">session</a> on the EclipseCon Europe 2016 about this project.
						</td>
						<td>EPL 1.0</td>
						<td>Framework</td>
						<td>Avaloq Solution Model Development and Compiler Framework team</td>
					</tr>

					<tr>
						<td><a href="https://github.com/dslmeinte/Xtext2-DSLs">dslmeinte's example DSLs</a></td>
						<td>Various DSLs for technical domains (data modeling, dynamic screens, XSDs,
							WSDLs).</td>
						<td>MIT license</td>
						<td>Example</td>
						<td><a href="http://www.dslconsultancy.com/">Meinte Boersma</a></td>
					</tr>

					<tr>
						<td><a href="http://projects.eclipse.org/projects/modeling.emft.b3/">Eclipse b3</a></td>
						<td>New generation of Eclipse technology to simplify software build and assembly.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Henrik Lindberg</td>
					</tr>

					<tr>
						<td><a href="https://github.com/eclipse/gef/wiki/DOT-User-Guide">Eclipse GEF DOT</a></td>
						<td><a href="https://graphviz.gitlab.io/_pages/doc/info/lang.html">Graphviz DOT language</a> editor. For further information watch the
							<a href="https://www.youtube.com/watch?v=GnSVLNYfGlk">recorded GEF DOT session</a> on the EclipseCon Europe 2018.</td>
						<td>EPL-2.0</td>
						<td>Language, Framework</td>
						<td>Fabian Steeg, Michael Clay, Alexander Nyssen, Matthias Wienand, Tamas Miklossy, et al.</td>
					</tr>

					<tr>
						<td><a href="http://www.eclipse.org/gemoc">Eclipse GEMOC Studio</a></td>
						<td>The GEMOC Studio provides generic components for the development, integration, and use of heterogeneous executable modeling languages. It includes execution trace management, model animation, advanced debugging, and heterogeneous model coordination services.</td>
						<td>EPL</td>
						<td>Framework</td>
						<td><a href="https://projects.eclipse.org/projects/modeling.gemoc/who">GEMOC contributors</a></td>
					</tr>

					<tr>
						<td><a href="http://www.eclipse.org/elk">Eclipse Layout Kernel (ELK)</a></td>
						<td>ELK is a collection of diagram layout algorithms implemented in Java and provides ways for the algorithms to be easily used in Eclipse-based applications.</td>
						<td>EPL-2.0</td>
						<td>Library</td>
						<td>Ulf Rüegg, Christoph Daniel Schulze, Miro Spönemann, and lots of contributors</td>
					</tr>

					<tr>
						<td><a href="https://www.eclipse.org/mita/">Eclipse Mita</a></td>
						<td>Eclipse Mita is a programming language that is focused on making Internet-Of-Things things easier to program, especially for developers without an embedded development background. It aims to increase programmer productivity, enables fast exploration of use-cases and tries to make you feel right at home on an embedded device.</td>
						<td>EPL-2.0</td>
						<td>Language, Embedded Systems</td>
						<td>Robin Herrmann, Thomas Kutzer, Simon Wegendt, Christian Weichel et al.</td>
					</tr>

					<tr>
						<td><a href="https://projects.eclipse.org/projects/modeling.emf.mwe">Eclipse Modeling Workflow Engine (MWE2)</a></td>
						<td>The modeling workflow engine supports orchestration of different Eclipse modeling components, such as reading EMF resources, performing operations/transformations on them and writing them back or generating any number of other artifacts out of the information.</td>
						<td>EPL-2.0</td>
						<td>Language, Framework</td>
						<td>Christian Dietrich, Dennis Huebner, Sebastian Zarnekow</td>
					</tr>

					<tr>
						<td><a href="https://projects.eclipse.org/projects/modeling.smartmdsd">Eclipse SmartMDSD Toolchain</a></td>
						<td>The SmartMDSD Toolchain is an Eclipse-based Integrated Development Environment (IDE) for the model-driven development of component-based robotics software. The SmartMDSD Toolchain provides support and guidance to apply structures and best-practices for the composition of software building blocks to robotics applications.</td>
						<td>EPL-2.0</td>
						<td>Eclipse Modeling Project</td>
						<td>Alex Lotz, Dennis Stampfer, Matthias Lutz, and Christian Schlegel</td>
					</tr>

					<tr>
						<td><a href="https://www.eclipse.org/stem/">Eclipse STEM</a></td>
						<td>The Spatiotemporal Epidemiological Modeler (STEM) tool is designed to help scientists and public health officials create and use spatial and temporal models of emerging infectious diseases.</td>
						<td>EPL-2.0</td>
						<td>Eclipse Technology</td>
						<td><a href="https://wiki.eclipse.org/The_STEM_Development_Team">author(s)</a></td>
					</tr>

					<tr>
						<td><a href="https://www.eclipse.org/vorto/">Eclipse Vorto</a></td>
						<td>Eclipse Vorto offers a language to describe semantic models of digital twins, a repository to manage the semantic models, plugins to generate code or API documentation and payload mapping for telemetry data.</td>
						<td>EPL-2.0</td>
						<td>IoT, Language, Device Abstraction, Repository</td>
						<td>Alexander Edelmann, Menahem Raccah Lisei, Kevin Olotu, Somesh Kumar, Tobias Gauss, et al.</td>
					</tr>

					<tr>
						<td><a href="https://github.com/LorenzoBettini/edelta">Edelta</a></td>
						<td>An Xtext DSL for EMF metamodels refactoring and migration.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Lorenzo Bettini</td>
					</tr>

					<tr>
						<td><a href="http://elysium.thsoft.hu">Elysium</a></td>
						<td>LilyPond IDE for Eclipse.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Denes Harmath</td>
					</tr>

					<tr>
						<td><a href="https://www.eclipse.org/emfcloud/#coffeeeditoroverview">EMF.cloud Coffee Editor</a></td>
						<td>An example web-based modeling tool using EMF.cloud technologies used for demonstration and documentation. Integrates Eclipse Theia, Xtext, Xtend, Eclipse GLSP, JSON Forms and the EMF.cloud model server.</td>
						<td>EPL 2.0</td>
						<td>Example</td>
						<td>Eugen Neufeld, Lucas Koehler, Martin Fleck, Philip Langer, Stefan Dirix, et al.</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/p/emf-customizer/">EMF&nbsp;Customizer</a></td>
						<td>EMF Customizer is a model (Ecore based)
							customization/styling/refining CSS like textual DSL (Domain Specific Language)
							targeting MDSD tool chains end users. </td>
						<td>EPL</td>
						<td>Language</td>
						<td>Cedric Vidal</td>
					</tr>

					<tr>
						<td><a href="https://www.eclipse.org/emf-parsley">EMF&nbsp;Parsley</a></td>
						<td>EMF Parsley is an Eclipse project that provides a set of reusable UI components based on EMF.</td>
						<td>EPL</td>
						<td>Language, Framework</td>
						<td>Lorenzo Bettini, Francesco Guidieri, Vincenzo Caselli</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/a/eclipselabs.org/p/emf-scaffolding/">EMF&nbsp;Scaffolding</a></td>
						<td>Implementation of the principle of dynamic inplace scaffolding
							with EMF presented in July 2009 <a href="http://www.slideshare.net/cedric.vidal/rmll-eclipse-acceleo-day-mdsd-scaffolding-and-acceleo-cdric-vidal-11">at Eclipse Acceleo Day</a>.
						</td>
						<td>EPL</td>
						<td>Language, Framework</td>
						<td>Cedric Vidal and Jerome Benois</td>
					</tr>

					<tr>
						<td><a href="https://www.atlanmod.org/emfviews/">EMF&nbsp;Views</a></td>
						<td>EMF Views is an Eclipse plugin that brings the concept of database views to the modeling world. Model views (focusing on parts of a model and/or combining several models) can be created and then navigated/queried/used as regular models for further model transformation, code generation, etc.</td>
						<td>EPL, GPL</td>
						<td>Language, Framework</td>
						<td>Florent Marchand de Kerchove, Hugo Bruneliere</td>
					</tr>

					<tr>
						<td><a href="https://emoflon.org/">eMoflon</a></td>
						<td>eMoflon is a tool suite for Model-Driven Engineering (MDE) that provides a range of visual and formal languages for (meta)modelling and model management.</td>
						<td>GPL 3.0 and EPL-2.0</td>
						<td>Model Transformation Framework</td>
						<td>Anthony Anjorin, Sebastian Ehmes, Lars Fritsche, Nils Weidmann</td>
					</tr>

					<tr>
						<td><a href="http://www.eclipse.org/etrice/">eTrice</a></td>
						<td>eTrice is a Modeling Tool for distributed eventdriven realtime systems based on
							Realtime Object Oriented Modeling (ROOM), not UML. Textual and graphical ROOM
							editors, codegenerators and runtime libraries for Java, C++ and C
							will be provided.</td>
						<td>EPL</td>
						<td>Language, Framework</td>
						<td>Henrik Rentz-Reichert, Thomas Schuetz</td>
					</tr>

					<tr>
						<td><a href="https://github.com/eventB-Soton/XEventB">Event-B CamilleX</a></td>
						<td>This feature provides Xtext-based editors for Event-B components within the Rodin Platform (http://wiki.event-b.org/). It also extends the Event-B method for compositional modelling.</td>
						<td>Eclipse Public License v1.0</td>
						<td>System Modelling</td>
						<td>Michael Butler, Dana Dghaym, Thai Son Hoang, Asieh Salehi-Fathabadi, Colin Snook</td>
					</tr>

					<tr>
						<td><a href="http://fj-eclipse.sourceforge.net/">fj-eclipse</a></td>
						<td>An Eclipse-based IDE for Featherweight Java, implemented using Xtext.</td>
						<td>GPL</td>
						<td>Language</td>
						<td>Lorenzo Bettini</td>
					</tr>

					<tr>
						<td><a href="http://opcoach.github.io/genModelAddon/">Genmodel addon</a></td>
						<td>This project is used to separate properly the EMF generated code and your developed code.</td>
						<td>Eclipse Public License 1.0</td>
						<td>Code Generator</td>
						<td>Olivier Prouvost (OPCoach) olivier@opcoach.com</td>
					</tr>

					<tr>
						<td><a href="https://github.com/cloudsmith/geppetto">Geppetto</a></td>
						<td>Integrated development environment for the Puppet System Admin tools. (The
							PP manifest language is Ruby like).</td>
						<td>EPL, Apache</td>
						<td>Language</td>
						<td>Henrik Lindberg, Cloudsmith Inc.</td>
					</tr>

					<tr>
						<td><a href="https://github.com/intuit/graphql-xtext">graphql-xtext</a></td>
						<td>A GraphQL SDL (schema definition language) lexer, parser, and validator that generates a traversable Abstract Syntax Tree from your GraphQL schema. GraphQL-Xtext will generate pure Java Objects that can be used at runtime.</td>
						<td>Apache 2 License</td>
						<td>Language</td>
						<td>Ashpak Shaikh, Bhavin Shah, Carlo Aureus, Samuel Ko</td>
					</tr>

					<tr>
						<td><a href="https://github.com/CohesionForce/hla-toolkit">HLA Toolkit</a></td>
						<td>Toolkit for working with High Level Architecture (HLA) Federated Object Models and generating a logging federate.</td>
						<td>EPL-2.0</td>
						<td>Framework</td>
						<td>CohesionForce, Inc</td>
					</tr>

					<tr>
						<td><a href="https://github.com/japkit/japkit">Japkit</a></td>
						<td>Japkit is an annotation processor that allows to develop Java code generators by using code templates written in Java with some annotations. There is no need to write any imperative code, which makes the code generators short and concise and so eases their maintenance.</td>
						<td>Apache 2 License</td>
						<td>Tool</td>
						<td>Stefan Ocke</td>
					</tr>

					<tr>
						<td><a href="http://community.jaspersoft.com/project/jaspersoft-studio">Jaspersoft Studio, Report Designer for JasperReports</a></td>
						<td>The Expression Editor allows to compose Java-like expressions enriched with JasperReports specific tokens. 
							The SQL Query Designer, in text mode, allows to edit simple and advanced SQL expressions.</td>
						<td>EPL</td>
						<td>Report Designer</td>
						<td>Jaspersoft Studio Team (Veaceslav Chicu, Massimo Rabbi, Marco Orlandin and Giulio Toffoli)</td>
					</tr>

					<tr>
						<td><a href="https://github.com/itemis/jbc">JBC</a></td>
						<td>JBC is an Eclipse plugin that enables the developer to view and edit files containing java byte code (*.class) inside Eclipse.</td>
						<td>EPL 1.0</td>
						<td>Developer Tool</td>
						<td>Arne Deutsch</td>
					</tr>

					<tr>
						<td><a href="http://jnario.org/">Jnario</a></td>
						<td>Executable Specifications for Java. See the XtextCast (<a href="http://xtextcasts.org/episodes/9-jnario-test-framework">slides</a>, <a href="https://www.youtube.com/watch?v=j-IouNAkGvw&feature=youtu.be">video</a>) and the <a href="https://www.youtube.com/watch?v=jCgPfxaY8XQ">recorded EclipseCon session</a> about this project.</td>
						<td>Eclipse Public License v1.0</td>
						<td>Testing, Test-driven Development (TDD)</td>
						<td>Sebastian Benz, Birgit Engelmann</td>
					</tr>

					<tr>
						<td><a href="http://www.jolie-lang.org/">Joliepse IDE</a></td>
						<td>Joliepse is an Integrated Development Environment (IDE) for the JOLIE
							programming language, the first full-fledged programming language based upon
							the service-oriented programming paradigm and support classes.</td>
						<td>GPL</td>
						<td>Language</td>
						<td>Diego Castronuovo (castronu at gmail dot com)</td>
					</tr>

					<tr>
						<td><a href="https://github.com/nittka/Jtag">Jtag</a></td>
						<td>Lightweight image tagging.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Alexander Nittka</td>
					</tr>

					<tr>
						<td><a href="https://diverse-project.github.io/k3/">Kermeta 3</a></td>
						<td>K3 is an extension of Xtend programming language. It allows to "re-open" the classes generated from an Ecore metamodel using annotations in order to weave new features and operations.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Inria/IRISA</td>
					</tr>

					<tr>
						<td><a href="http://www.rtsys.informatik.uni-kiel.de/en/research/kieler/">KIELER</a></td>
						<td>An evaluation platform for new methods in model-based software
							design (automatic layout, graphical / textual dynamic views, focus and context,
							simulation, codegen,...).</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Rtsys group, Dep. of Computer Science, Uni Kiel</td>
					</tr>

					<tr>
						<td><a href="https://github.com/mduft/lcdsl">Launch Configuration DSL (LcDsl)</a></td>
						<td>LcDsl provides a way of defining Eclipse launch configurations in a human readable textual form. This improves maintainability and eases versioning/merging of launch configurations.</td>
						<td>Eclipse Public License 1.0</td>
						<td>Eclipse IDE</td>
						<td>Markus Duft</td>
					</tr>

					<tr>
						<td><a href="http://amishne.github.io/llvm-ir-editor/">LLVM IR SDK</a></td>
						<td>A rich LLVM IR editor plugin for Eclipse.</td>
						<td>BSD</td>
						<td>Language</td>
						<td>Alon Mishne</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/p/llvm4e/">LLVM4e</a></td>
						<td>Xtext-based Eclipse editor for LLVM (Low Level Virtual Machine)
							Assembly Language *.ll files.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Cedric Vidal</td>
					</tr>

					<tr>
						<td><a href="http://logicals.com/">logi.CAD 3</a></td>
						<td>logi.CAD 3 is a tool for programming a wide variety of PLCs (Programmable Logic Controllers) according to the industry standard IEC 61131-3. It is an Eclipse RCP based (E3/E4) integrated development environment (IDE) using Xtext for implementing the editors for the IEC programming languages ST (Structured Text), FBD (Function Block Diagram) and SFC (Sequential Function Chart).</td>
						<td>Commercial</td>
						<td>Language</td>
						<td>logi.cals Austria (http://logicals.com)</td>
					</tr>

					<tr>
						<td><a href="http://mads.sourceforge.net">MADS</a></td>
						<td>
							MADS (Multipurpose Agricultural Data System) is a free open-source tool
							for modelling and analysis of agricultural activities - crops, livestock,
							forestry and others - in developing countries, at sector, regional or project
							level.
						</td>
						<td>EPL, GPL</td>
						<td>RCP Application</td>
						<td>Michel Simeon</td>
					</tr>

					<tr>
						<td><a href="https://github.com/xtext/maven-xtext-example">Maven Xtext Example</a></td>
						<td>A small example to show how to configure a Maven build for an Xtext language and how to use it from Maven and Gradle.</td>
						<td>EPL-2.0</td>
						<td>Example</td>
						<td>Christian Dietrich, Dennis Huebner</td>
					</tr>

					<tr>
						<td><a href="http://www.mechatronicuml.org">MechatronicUML Website</a>, <a href="https://svn-serv.cs.upb.de/mechatronicuml/">MechatronicUML SVN</a></td>
						<td>
							MechatronicUML is a free open-source tool suite 
							that offers language, process and tooling to design software for networked cyber-physical systems.
							We offer Xtext grammars for: Action Language, API Description, DOT/ Graphviz, LPSolve, MTCTL, Model Dependencies.
						</td>
						<td>EPL</td>
						<td>Language, Tool Suite</td>
						<td>Project Group Mechatronic Systems Design, Fraunhofer Institute for Production Technology IPT; Software Engineering Group, Heinz Nixdorf Institute, University of Paderborn</td>
					</tr>

					<tr>
						<td><a href="http://melange.inria.fr/">Melange Language</a></td>
						<td>Melange is a language workbench that provides a modular approach for assembling, integrating, and customizing multiple domain-specific language (DSL) specifications and implementations.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>T. Degueule, F. Coulon, D. Vojtisek, E. Bousse, A. Blouin, et al</td>
					</tr>

					<tr>
						<td><a href="http://www.openhub.net/p/mod4j/">mod4j</a></td>
						<td>Open source DSL-based environment for developing administrative
							enterprise applications.</td>
						<td>EPL</td>
						<td>Language, Framework</td>
						<td>Jos Warmer</td>
					</tr>

					<tr>
						<td><a href="http://modulestudio.de/en">ModuleStudio</a></td>
						<td>A DSL with tooling based on Sirius and Xtext to describe structure and behaviour of web applications.
							The models are used to generate extensions for a PHP-based web application framework.</td>
						<td>closed&nbsp;source</td>
						<td>Language, Tool Suite</td>
						<td>Axel Guckelsberger</td>
					</tr>

					<tr>
						<td><a href="https://www.eclipse.org/n4js/">N4JS</a></td>
						<td>N4JS is a general-purpose programming language based on ECMAScript with several additional features. In particular, N4JS adds a static type system as reliable as that of Java, but with the flexibility of JavaScript.</td>
						<td>EPL-1.0</td>
						<td>Language</td>
						<td>Eclipse N4JS Project, enfore AG</td>
					</tr>

					<tr>
						<td><a href="http://metrikforge.informatik.hu-berlin.de/projects/nanoworkbench/">NanoWorkbench</a></td>
						<td>A Domain-specific Workbench (DSM) for the development of optical
							nanostructures. Especially used for the description of simulations and
							experiments.
						</td>
						<td>GPL</td>
						<td>Language, Documentation</td>
						<td>Siamak Haschemi (haschemi@informatik.hu-berlin.de), Martin Schmidt
							(schmidma@informatik.hu-berlin.de), Arif Wider
							(wider@informatik.hu-berlin.de)</td>
					</tr>

					<tr>
						<td><a href="https://github.com/rlogiacco/Natural">Natural</a></td>
						<td>Natural is a collection of Eclipse plugins to enable rich smart editing of acceptance tests using natural language definition files. It currently supports Cucumber and JBehave syntax.</td>
						<td>Eclipse Public License 1.0</td>
						<td>BDD</td>
						<td>Roberto Lo Giacco, Aaron R. Miller</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/a/eclipselabs.org/p/nusmv-tools/">nusmv-tools</a></td>
						<td>The nusmv-tools project provides a set of tools for the model checker
							<a href="http://nusmv.fbk.eu/">NuSMV</a>. Xtext is used to create an Eclipse
							editor for the NuSMV input language. The editor is further enhanced by static
							analysis checks (shown as Eclipse error markers) performed by an OSGi-fied
							version of NuSMV itself. Watch the <a href="https://vimeo.com/21637768">screencast</a>.
						</td>
						<td>EPL</td>
						<td>Language</td>
						<td><a href="mailto://siamak@haschemi.org">Siamak Haschemi</a></td>
					</tr>

					<tr>
						<td><a href="http://wiki.eclipse.org/MDT/OCL">OCL</a></td>
						<td>Editors for OCL expressions, documents, libraries. Standalone or
							embedded in Ecore.</td>
						<td>EPL-2.0</td>
						<td>Language</td>
						<td>Ed Willink</td>
					</tr>

					<tr>
						<td><a href="https://github.com/atb/pt.isep.dsl.puml">PlantUML DSL</a></td>
						<td>An open-source and academic project which aim is to provide an Xtext-based DSL for PlantUML.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Alexandre Braganca</td>
					</tr>

					<tr>
						<td><a href="http://www.gentleware.com/poseidon-for-dsls.html">Poseidon for DSLs</a></td>
						<td>Framework for creating graphical tools for DSLs, based on internal
							Xtext models. Poseidon for UML 8.0 as a sample DSL platform.
						</td>
						<td>commercial</td>
						<td>Framework</td>
						<td>Gentleware AG</td>
					</tr>

					<tr>
						<td><a href="https://github.com/Protelis/Protelis">Protelis</a></td>
						<td>Protelis is a programming language aiming to produce reliable and robust collective behavior from uncoordinated local interactions among an assortment of different potentially mobile devices. Protelis is grounded on the paradigm of <i>aggregate programming</i>, a way of thinking about and decomposing problems that can be solved with a network of distributed sensors and computers.</td>
						<td>GPL with linking exception</td>
						<td>Language</td>
						<td>Danilo Pianini, Jacob Beal, Matteo Francia, and others</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/p/protobuf4e/">protobuf4e</a></td>
						<td>Editor for Google's Protocol Buffers data interchange file
							format. </td>
						<td>EPL</td>
						<td>Language</td>
						<td>Cedric Vidal</td>
					</tr>

					<tr>
						<td><a href="http://www.pxdoc.fr">pxDoc</a></td>
						<td>pxDoc is a Domain Specific Language to design document generators. Since it is based on Xbase, it allows to implement document generators for any data that can be accessed with Java.</td>
						<td>Commercial, free for personal use</td>
						<td>Language, Framework</td>
						<td>eXtreme Modeling Software</td>
					</tr>

					<tr>
						<td><a href="http://wiki.eclipse.org/QVTd">QVTc and QVTr</a></td>
						<td>Editors for QVT Core and Relational languages.</td>
						<td>EPL-2.0</td>
						<td>Language</td>
						<td>Ed Willink</td>
					</tr>

					<tr>
						<td><a href="https://github.com/LeKaitoW/raox">Rao X</a></td>
						<td>This project is an implementation of the RAO modeling language in Eclipse, using Xbase.</td>
						<td>MIT</td>
						<td>Simulation System</td>
						<td>Andrey Urusov, Pavel Bogachev, Kirill Alexandrovsky, Olga Zudina, Alexey Chernov and other contributors.</td>
					</tr>

					<tr>
						<td><a href="http://rapid-api.org/rapid-ml">RAPID-ML</a></td>
						<td>RAPID-ML is a domain-driven API modeling language that puts data modeling at the center
							of REST API design.  With RAPID-ML, you can describe data types naturally with an expressive, 
							technology-independent modeling language, and adapt shared models to each API with just the 
							right flexibility to bend the model, not break it.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Ted Epstein, Tanya Fesenko</td>
					</tr>

					<tr>
						<td><a href="https://github.com/zazuko/rdf-mapping-dsl-user">RDF Mapping DSL</a></td>
						<td>A friendly language for writing data mappings to <a href="https://en.wikipedia.org/wiki/Resource_Description_Framework">RDF</a>. Includes generators for R2RML, RML, CARML and CSVW output.</td>
						<td>Commercial, free for personal use</td>
						<td>Language</td>
						<td><a href="https://zazuko.com/">Zazuko GmbH</a></td>
					</tr>

					<tr>
						<td><a href="http://sourceforge.net/projects/rng-eclipse/">RELAX NG for Eclipse</a></td>
						<td>Provides support for editing RELAX NG documents in the Eclipse
							IDE. Integrates with standard WST XML editor to provide content completion and
							validation of edited XML file based on it's RELAX NG schema.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Dave Carver</td>
					</tr>

					<tr>
						<td><a href="https://github.com/NielsLiisberg/RPG-lexer">RPG Lexer (IBM ILE RPG)</a></td>
						<td>This project is for tooling and better understanding of the ILE RPG language. Tooling like plug in for 100% free-RPG editors running in i.e. Eclipse with code completion etc. or even to build transpilers to create C, C# or JAVA code from RPG.</td>
						<td>MIT License</td>
						<td>Tool</td>
						<td>Niels Liisberg</td>
					</tr>

					<tr>
						<td><a href="https://github.com/heutelbeck/sapl-policy-engine">SAPL Policy Engine</a></td>
						<td>A reactive policy engine implementing attribute-based access control (ABAC). The engine features support for publish-subscribe authorization and a deep Spring integration. https://sapl.io</td>
						<td>Apace 2.0</td>
						<td>Security</td>
						<td>Dominic Heutelbeck</td>
					</tr>

					<tr>
						<td><a href="http://www.sarl.io">SARL</a></td>
						<td>SARL is a general-purpose agent-oriented language. It aims at providing the fundamental abstractions for 
							dealing with concurrency, distribution, interaction, decentralization, reactivity, autonomy and dynamic 
							reconfiguration. The language is platform- and architecture-independent. 
							The default execution environment is the <a href="http://www.janusproject.io">Janus platform</a>.</td>
						<td>Apache 2 License</td>
						<td>Language, Framework</td>
						<td>Sebastian Rodriguez, Nicolas Gaud, St&eacute;phane Galland</td>
					</tr>

					<tr>
						<td><a href="http://sculptorgenerator.org">Sculptor</a></td>
						<td>You express your design intent in a textual DSL, from which
							Sculptor generates high quality Java code and configuration.</td>
						<td>Apache 2 License</td>
						<td>Language, Framework</td>
						<td>Torsten Juergeleit, Patrik Nordwall and others</td>
					</tr>

					<tr>
						<td><a href="https://github.com/crapo/sadlos2/wiki">Semantic Application Design Language (SADL)</a></td>
						<td>SADL is a controlled-English ontology language and an IDE for building models in that language. SADL models are translated directly into OWL plus rules plus other constructs for model testing and maintenance.</td>
						<td>Eclipse Public License</td>
						<td>Semantic Modeling</td>
						<td>GE Research</td>
					</tr>

					<tr>
						<td><a href="http://sadl.sourceforge.net/">Semantic Application Design Language (SADL) Version 2</a></td>
						<td>The Semantic Application Design Language (SADL) is a language for building
							semantic models and expressing rules that capture additional domain
							knowledge. The SADL-IDE (integrated development environment) is a set of
							Eclipse plug-ins that support the editing and testing of semantic models
							using the SADL language. </td>
						<td>EPL</td>
						<td>Language</td>
						<td>Andrew Crapo, John Interrante, David Bracewell, Saurabh Gupta</td>
					</tr>

					<tr>
						<td><a href="https://github.com/xtext/seven-languages-xtext">Seven Languages with Xtext</a></td>
						<td>An example project of seven languages illustrating the power and flexibility of Xtext.</td>
						<td>EPL-2.0</td>
						<td>Example</td>
						<td>Christian Dietrich, Holger Schill, Sebastian Zarnekow, Dennis Huebner</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/a/eclipselabs.org/p/spray/">Spray</a></td>
						<td>This project aims to provide Domain Specific Languages to describe
							Visual DSL Editors against the Graphiti runtime, and provide code generation
							(with Xtend2) to create the boilerplate code for realizing the implementation
							against the Graphiti framework.</td>
						<td>EPL 1.0</td>
						<td>Framework</td>
						<td>Jos Warmer, Karsten Thoms et. al.</td>
					</tr>

					<tr>
						<td><a href="http://swrtj.sourceforge.net/">SWRTJ: Sugared Welterweight Record-Trait Java</a></td>
						<td>A Java-like language where units of objects' functionality are modeled by
							traits and by records (a construct that complements traits to model the state
							part of objects).</td>
						<td>GPL</td>
						<td>Language</td>
						<td>Fabio Strocco, Lorenzo Bettini</td>
					</tr>

					<tr>
						<td><a href="https://github.com/eclipse-cbi/targetplatform-dsl">Target Platform Definition DSL and Generator</a></td>
						<td>The Target Platform Definition DSL and Generator project provides an Xtext-based DSL with an advanced Eclipse editor and a generator to generate *.target files from the DSL that Eclipse PDE is able to read to provision a Target Platform.</td>
						<td>EPL</td>
						<td>Tool</td>
						<td>Mikael Barbero and others</td>
					</tr>

					<tr>
						<td><a href="https://github.com/nittka/terminology">Terminology</a></td>
						<td>Lightweight terminology management. If spreadsheet is not enough and term bases are overkill, consider this plugin with advanced search functionality and hook for custom exporters.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Alexander Nittka</td>
					</tr>

					<tr>
						<td><a href="https://github.com/kuniss/xtext-ide-extensions">TextMate Grammars for the Xtext Language</a></td>
						<td>TextMate grammars for Xtext language highlighting support in different editors, e.g. VS Code, ACE, Atom, Pygments, Rouge, Sublime 3 (except for VS Code, all not tested).</td>
						<td>EPL-2.0</td>
						<td>Editor Support</td>
						<td>Denis Kuniß</td>
					</tr>

					<tr>
						<td id="name"><a href="http://marketplace.eclipse.org/content/vclipse/">VClipse</a></td>
						<td>VClipse is an Eclipse-based integrated development environment (IDE)
							for product modeling for the SAP Variant Configurator (VC). VClipse supports the
							specification of objects and dependencies in a textual domain specific language
							called VCML. This enables the use of standard text comparison tools and version
							control systems in the model development process.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Tim Geisler, Aleksey&nbsp;Shumilin</td>
					</tr>

					<tr>
						<td><a href="https://www.eclipse.org/viatra/">VIATRA</a></td>
						<td>An Event-driven and Reactive Model Transformation Platform. 
							The VIATRA framework supports the development of model transformations with specific focus on event-driven, reactive transformations.
							Building upon the incremental query support of the EMF-IncQuery project, VIATRA offers a language to define transformations and
							a reactive transformation engine to execute certain transformations upon changes in the underlying model.
						</td>
						<td>EPL-2.0</td>
						<td>Language, Framework</td>
						<td><a href="https://projects.eclipse.org/projects/modeling.viatra/who">VIATRA contributors</a></td>
					</tr>

					<tr>
						<td><a href="https://github.com/kuniss/xtext-ide-extensions/tree/master/xtext-vscode-extension">VS Code extension for Xtext Language</a></td>
						<td>Xtext Language support for VS code utilizing a Language Server built with Xtext framework itself. Installation via <a href="https://marketplace.visualstudio.com/items?itemName=Grammarcraft.xtend-lang">VS Marketplace</a>.</td>
						<td>EPL-2.0</td>
						<td>IDE Extension</td>
						<td>Denis Kuniß</td>
					</tr>

					<tr>
						<td><a href="https://www.wollok.org/">Wollok</a></td>
						<td>Wollok is a programming language and an IDE specially designed for teaching initial OOP courses. Students can program from the beginning incrementally adding every OO concept.</td>
						<td>LGPLv3</td>
						<td>Language, Education</td>
						<td><a href="http://www.uqbar.org/">Uqbar</a></td>
					</tr>

					<tr>
						<td><a href="https://github.com/jcabot/WordPress-Plugin-DSL">WordPress Plugins DSL</a></td>
						<td>A simple DSL to generate scaffolding code for WordPress Plugins.</td>
						<td>EPL</td>
						<td>Generator</td>
						<td><a href="https://jordicabot.com/">Jordi Cabot</a></td>
					</tr>

					<tr>
						<td><a href="https://github.com/team-worthwhile/worthwhile">Worthwhile</a></td>
						<td>Worthwhile is an IDE built around a simple WHILE language that
							integrates editing, running, debugging and verifying programs using
							Microsoft's Z3 prover.
						</td>
						<td>3-Clause BSD</td>
						<td>Language</td>
						<td>Leon Handreke, Chris Hiatt, Stefan Orf, Joachim Priesner, Fabian
							Ruch, Matthias Wagner</td>
					</tr>

					<tr>
						<td><a href="https://github.com/nittka/Xarchive">Xarchive</a></td>
						<td>Lightweight document management.</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Alexander Nittka</td>
					</tr>

					<tr>
						<td><a href="https://xatkit.com/">Xatkit</a></td>
						<td>Xatkit is a model-based bot development framework that provides a set of DSLs to specify the behavior, backend actions, and execution logic of your (chat) bot. Xatkit embeds an execution engine that manages the deployment and execution of the specified bot.</td>
						<td>EPL-2.0</td>
						<td>Bot Development</td>
						<td>Jordi Cabot, Gwendal Daniel</td>
					</tr>

					<tr>
						<td><a href="https://wiki.eclipse.org/Xcore">Xcore</a></td>
						<td>Xcore is an extended concrete syntax for Ecore that, in combination with Xbase, transforms it into a fully fledged programming language with high quality tools reminiscent of the Java Development Tools. You can use it not only to specify the structure of your model, but also the behavior of your operations and derived features as well as the conversion logic of your data types.</td>
						<td>EPL-2.0</td>
						<td>Language</td>
						<td>Ed Merks</td>
					</tr>

					<tr>
						<td><a href="http://www.gipsys.ca/xdgl.htm">xDGL Data Generation Language</a></td>
						<td>xDGL is a free plugin on Eclipse Helios 3.6 fully compatible with
							Eclipse Data Tools Platform DTP. Works with dozens of RDBMS
							databases. xDGL was invented by Abubaker Mahmoud, a Canadian Computer expert.
							xDGL is simple to learn and fast to execute and is designed to solve the problem 
							of most data generators systems works in english. xDGl works in any language that 
							could be written in the UTF-8 encoding. xDGL is the first Java Data Generation Language, 
							the first Eclipse language for Data Genration. xDGL is built in Java, Eclipse and the great Xtext
							Framework.</td>
						<td>Commercial</td>
						<td>Language</td>
						<td><a href="mailto://shangab@gmail.com">Abubaker Mahmoud</a></td>
					</tr> 

					<tr>
						<td><a href="https://github.com/rodchenk/xenia">Xenia</a></td>
						<td>DSL for the rapid creation of static websites based on a sitemap with precompiled templates.</td>
						<td>MIT</td>
						<td>Language, Web Development</td>
						<td>Mischa Rodchenkov</td>
					</tr>

					<tr>
						<td><a href="http://xsemantics.sourceforge.net/">Xsemantics</a></td>
						<td>XSemantics is a DSL (implemented in Xtext) for writing type systems,
							reduction rules, interpreters (and in general relation rules) for languages
							implemented in Xtext. It generates Java code that can be used in your
							language implemented in Xtext for scoping and validation (it can also generate
							a validator in Java). It is the successor of XTypeS.
						</td>
						<td>EPL</td>
						<td>Language</td>
						<td>Lorenzo Bettini</td>
					</tr>

					<tr>
						<td><a href="https://github.com/msbarry/Xtest">Xtest</a></td>
						<td>Xtest is a unit-testing domain-specific scripting language for Java.
							Tests are run while you type and any time a related file is saved, marking
							exceptions thrown and failed assertions as errors to immediately notify you of
							test failures.
						</td>
						<td>EPL</td>
						<td>Testing, Language</td>
						<td>Michael Barry</td>
					</tr>

					<tr>
						<td><a href="https://github.com/itemis/itemis-blog/tree/combining-emf-models-with-xtext-dsls">Xtext EMF Integration</a></td>
						<td>An example project demonstrating how to combine EMF models with Xtext DSLs. See also the <a href="https://blogs.itemis.com/en/combining-emf-models-with-xtext-dsls">blog post</a> about this topic.</td>
						<td>EPL-2.0</td>
						<td>Example</td>
						<td>Tamas Miklossy</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/a/eclipselabs.org/p/xtext-forms-integration/">Xtext Forms Integration</a></td>
						<td>Sample RCP application to demonstrate how Xtext editors can be
							integrated within Eclipse UI forms.</td>
						<td>EPL</td>
						<td>Framework</td>
						<td>Mikael Barbero</td>
					</tr>

					<tr>
						<td><a href="https://github.com/itemis/itemis-blog/tree/gef_graphical_views_on_xtext_dsls">Xtext GEF5 Integration</a></td>
						<td>Example projects demonstrating the usage of the Eclipse GEF DOT Graph View to add graphical representations to Xtext DSLs. See also the <a href="https://blogs.itemis.com/en/eclipse-gef-dot-graphical-views-on-xtext-dsls">blog post</a> about this topic.</td>
						<td>EPL-2.0</td>
						<td>Example</td>
						<td>Tamas Miklossy</td>
					</tr>

					<tr>
						<td><a href="https://github.com/xtext/xtext-gradle-plugin">Xtext Gradle Plugins</a></td>
						<td>A set of Gradle plugins to build and use Xtext-based languages and the Xtend programming language.</td>
						<td>EPL-1.0</td>
						<td>Tool</td>
						<td>Stefan Oehme, Christian Dietrich</td>
					</tr>

					<tr>
						<td><a href="https://github.com/itemis/xtext-languageserver-example">Xtext Languageserver Example</a></td>
						<td>An example showing the Visual Studio Code integration of Xtext using the Microsoft Language Server Protocol.</td>
						<td>EPL-2.0</td>
						<td>Example</td>
						<td>Christian Dietrich, Holger Schill, Franz Becker</td>
					</tr>

					<tr>
						<td><a href="https://github.com/itemis/itemis-blog/tree/referencing-uml-elements-from-xtext-dsls">Xtext UML Integration</a></td>
						<td>An example project demonstrating how to reference UML elements from Xtext DSLs. See also the <a href="https://blogs.itemis.com/en/how-to-reference-uml-elements-from-xtext-dsls">blog post</a> about this topic.</td>
						<td>EPL-2.0</td>
						<td>Example</td>
						<td>Tamas Miklossy</td>
					</tr>

					<tr>
						<td><a href="https://github.com/OLibutzki/xtext.tools">Xtext Tools</a></td>
						<td>Xtext Tools provides Eclipse views to explore the underlying node model and the semantic model of DSL files. Especially for language developers this is quite handy.</td>
						<td>EPL-2.0</td>
						<td>IDE Extension</td>
						<td>Oliver Libutzki</td>
					</tr>

					<tr>
						<td><a href="http://code.google.com/a/eclipselabs.org/p/xtext-typesystem/">Xtext Typesystem Framework</a></td>
						<td>A framework that supports the efficient implementation of typesystem
							rules for Xtext languages. Especially useful if your languages has
							expressions, statements, different (combinable) data types.</td>
						<td>EPL</td>
						<td>Framework</td>
						<td><a href="mailto:voelter@acm.org">Markus Voelter</a></td>
					</tr>

					<tr>
						<td><a href="https://xtext-demo.itemis.de/">Xtext Web Demo</a></td>
						<td>Examples projects demonstrating the usage of Xtext on the web. The source code is hosted on the corresponding <a href="https://github.com/eclipse/xtext-web">GitHub repository</a>.</td>
						<td>EPL-2.0</td>
						<td>Example</td>
						<td>Christian Dietrich, Miro Spönemann</td>
					</tr>

					<tr>
						<td><a href="http://xtypes.sourceforge.net/">XTypeS</a></td>
						<td>A DSL for writing type systems for languages implemented in Xtext. It
							generates Java code that can be used in your language implemented in Xtext
							for scoping and validation (XTypeS also generates a validator in Java).
						</td>
						<td>GPL</td>
						<td>Language</td>
						<td>Lorenzo Bettini</td>
					</tr>

					<tr>
						<td><a href="https://github.com/Yakindu/solidity-ide">YAKINDU Solidity IDE</a></td>
						<td>The free to use, open source YAKINDU Solidity IDE provides an Xtext-based integrated development environment for Ethereum / Solidity-based smart contracts. It can be installed in different environments, such as Atom, Eclipse, Theia and VSCode. <a href="https://solidity-ide.itemis.de/">Online editor</a> and <a href="https://yakindu.github.io/solidity-ide/">documentation</a>.</td>
						<td>EPL 1.0</td>
						<td>Tool</td>
						<td>Alexander Nyssen, Andreas M&uuml;lder, Florian Antony, et al. </td>
					</tr>

					<tr>
						<td><a href="http://www.yakindu.org">Yakindu Statechart Tools</a></td>
						<td>
							YAKINDU Statechart Tools (SCT) provides an integrated modeling
							environment for the specification and development of reactive, event-driven
							systems based on the concept of statecharts. It is an easy to use tool that
							features sophisticated graphical state chart editing, validation and simulation
							of statecharts as well as code generation.
						</td>
						<td>EPL</td>
						<td>Tool</td>
						<td>Axel Terfloth, Andreas M&uuml;lder, et al</td>
					</tr>

					<tr>
						<td><a href="https://github.com/theia-ide/yang-lsp">YANG Language Server</a></td>
						<td>A language server for the YANG data modeling language.</td>
						<td>Apache License 2.0</td>
						<td>Language Server</td>
						<td>TypeFox, Ericsson</td>
					</tr>

					<tr>
						<td><a href="https://github.com/AlexandreRio/ytpdsl/">YTP DSL</a></td>
						<td>YTP DSL is a language to guide random video editing. The main goal is to produce a fun result based on a video library, guidance on duration and various video filters.</td>
						<td>GPL-3</td>
						<td>Language, Tool</td>
						<td>Alexandre Rio</td>
					</tr>
<!--
					<tr>
						<td>AMP Agent Modeling Platform</td>
						<td>extensible frameworks and exemplary tools for representing,
							editing, generating, executing and visualizing agent-based models (ABMs) and
							any other domain requiring spatial, behavioral and functional features</td>
						<td>http://www.eclipse.org/amp/</td>
						<td>EPL</td>
						<td>Framework</td>
						<td>Metascape, LLC</td>
					</tr>

					<tr>
						<td>EMF Query 2</td>
						<td>search and retrieval of emf model elements in a structured
							format with an additional advantage that resource loading is minimized during
							execution </td>
						<td>http://www.eclipse.org/modeling/emf/?project=query2</td>
						<td>EPL</td>
						<td>Language</td>
						<td>?</td>
					</tr>

					<tr>
						<td>CamelSplit</td>
						<td>Text-based DSL Editor for Camel and Eclipse</td>
						<td>http://code.google.com/p/camel-extra/wiki/CamelSpit</td>
						<td>?</td>
						<td>Language</td>
						<td>Oisin Hurley</td>
					</tr>
-->
				</tbody>
				<tfoot></tfoot>
			</table>
		</div>
		<div id="sponsors" class="container">
			<h2>Sponsors</h2>
			<hr>
			<div class="row">
				<div class="span1">&nbsp;</div>
				<div class="span5">
					<p><b>YourKit</b> is kindly supporting open source projects with its full-featured Java Profiler.</p>
					<p>YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. 
						Take a look at YourKit's leading software products: <a href="http://www.yourkit.com/java/profiler/index.jsp">YourKit Java Profiler</a> and <a href="http://www.yourkit.com/.net/profiler/index.jsp">YourKit .NET Profiler</a>.
				</div>
				<div class="span4"><img src="/Xtext/images/yourkit_java.png"></img></div>
			</div>
		</div>

    
    <footer class="site-footer">
  <div id="extra">
    <div class="inner">
      <div class="container">
        <div class="row">
          <div class="span6">
            <h3 class="footer-links-header">Quick Links</h3>
            <ul class="footer-links clearfix">
              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
            </ul>
            <ul class="footer-links clearfix">
              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
            </ul>
          </div>
          <div class="span6">
            <!-- Social Media Links -->
            <h3 class="footer-links-header"">Social Media</h3>
            <ul class="footer-links clearfix">
              <li>
                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
  <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
  <!-- Le javascript
      ================================================== -->
  <!-- Placed at the end of the document so the pages load faster -->
  
  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
  <script src="/Xtext/js/bootstrap.min.js"></script>
  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
  <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
  <!--script type="text/javascript">
    var _gaq = _gaq || [];  
      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
    _gaq.push([ '_trackPageview' ]);
    (function() {
      var ga = document.createElement('script');
      ga.type = 'text/javascript';
      ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl'
          : 'http://www')
          + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(ga, s);
    })();
  </script-->
  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
  <script>
      $(function() {
        $('#coverflow').coverflow({
          active : 1,
          visibleAside: 2,
          overlap : 0.5,
          scale : 0.9,
          angle : 20,
          trigger : {
            "itemfocus" : true,
            "swipe" : true,
            "mousewheel" : false
          }
        });
        $('#coverflow :hidden').toggle();
        $(window).resize(function() {
          $('#coverflow').coverflow();
        });
      });

  </script>
</footer>


  </body>

</html>
