<!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://www.typefox.io/language-engineering/" 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="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://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.org/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/gts-morpher/gts_morpher">GTSMorpher</a></td>
						<td>GTSMorpher is a DSL for specifying graph-transformation systems (written in Eclipse Henshin) and their composition. </td>
						<td>EPL</td>
						<td>Language</td>
						<td>Steffen Zschaler</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="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="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><a href="https://github.com/TelluIoT/ThingML">ThingML</a></td>
						<td>ThingML is a modelling language, a set of tools, and a methodology. It includes editors and an advanced multi-platform code generation framework, which support multiple target programming languages (C, Java, JavaScript, Go).</td>
						<td>Apache 2 License</td>
						<td>Language, Framework</td>
						<td>Franck Fleurey, Brice Morin</td>
					</tr>

					<tr>
						<td><a href="https://github.com/mabauer/tinyscript">Tinyscript</a></td>
						<td>Tinyscript is a simple Javascript-like scripting language written in Java. Its implementation is based on Xtext.</td>
						<td>GPL</td>
						<td>Language</td>
						<td>Markus Bauer</td>
					</tr>

					<tr>
						<td><a href="https://github.com/raghvendra-v/tosca-yaml-lsp">TOSCA DSL</a></td>
						<td>IDE framework to develop and test <a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca">tosca</a> templates. It works with Eclipse, Idea and LSP.</td>
						<td>GPL 3.0</td>
						<td>Eclipse IDE, Language</td>
						<td>raghvendra @ <a href="https://www.bt.com/">BT</a></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="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="https://github.com/TypeFox/Xtext-XMI">Xtext-XMI</a></td>
						<td>Example project for the blog post <a href="https://www.typefox.io/blog/linking-xtext-models-with-other-emf-models">Linking Xtext Models With EMF Models</a>.</td>
						<td>MIT</td>
						<td>Example</td>
						<td>Jan Köhnlein</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="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://www.planeteclipse.org/">Eclipse Planet</a></li>
              <li><a href="https://www.eclipse.org/forums/index.php/f/27/">Xtext Forum</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>
