<!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://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/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="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="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="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>
