| <!-- |
| This document is provided as a template along with some guidance for creating |
| your project proposal. This is just a template. Feel free to change it as |
| you see fit (add sections, remove section). We feel, however, that the |
| suggestions represented in this document represent the reasonable minimum |
| amount of information to move forward. |
| |
| Please keep the formatting in this document simple. Please do not edit |
| this document in Microsoft Word as it adds huge piles of markup that make |
| it difficult to restyle. |
| |
| More information is available here: |
| |
| http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase |
| |
| Direct any questions about this template to emo@eclipse.org |
| --> |
| |
| <html> |
| <head> |
| |
| <!-- |
| Include the title here. We will parse it out of here and include it on the |
| rendered webpage. Do not duplicate the title within the text of your page. |
| --> |
| |
| <title>Vert.x</title> |
| </head> |
| |
| <style> |
| dt { |
| display: list-item; |
| list-style-position:outside; |
| list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif); |
| margin-left:16px; |
| } |
| dd { |
| margin-left:25px; |
| margin-bottom:5px; |
| } |
| </style> |
| |
| <body> |
| <p>The Vert.x project is a proposed open source project under the <a |
| href="http://www.eclipse.org/projects/project_summary.php?projectid=rt">RT Project</a>.</p> |
| |
| <!-- |
| The communication channel must be specified. Typically, this is the |
| "Proposals" forum. In general, you don't need to change this. |
| --> |
| <p>This proposal is in the Project Proposal Phase (as defined in the |
| Eclipse Development Process) and is written to declare its intent and |
| scope. We solicit additional participation and input from the Eclipse |
| community. Please send all feedback to the |
| <a href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse Proposals</a> |
| Forum.</p> |
| |
| <h2>Background</h2> |
| |
| <!-- |
| Optionally provide the background that has lead you to creating this project. |
| --> |
| |
| <p>The inspiration for the project came from two main areas:</p> |
| <ol> |
| <li>The growing interest in non blocking, asynchronous approaches to application design motivated by scalability.</li> |
| <li>The recent trend towards stripped down simplicity in APIs and a rejection of complexity that had dominated application platforms |
| in the previous 10 or more years.</li> |
| </ol> |
| <p>In particular the project was influenced by Node.js. There was nothing similar |
| for the JVM and the idea was formed to create a project superficially similar to Node.js but running on the JVM, and which |
| could leverage the superior virtual machine. Since the JVM also supported multiple languages (unlike V8) the idea was that the user could choose |
| from multiple languages in which to code their application.</p> |
| <p>Initially the project was named 'Node.x' - the 'x' representing the fact that the platform was polyglot, but was renamed |
| a few months later in order to avoid any potential future trademark issues with Joyent who own the Node.js trademark. |
| The new name chosen was Vert.x (pronounced 'Vertex') - again the .x representing the polyglot nature of the project, and a vertex is |
| of course a synonym for a node.</p> |
| <p>The latest release of Vert.x is 1.3.1, and there is a healthy and growing community. Vert.x has attracted a lot of attention so far |
| and is currently <a href="https://github.com/languages/Java/most_watched">one of the most followed Java projects on GitHub</a> |
| <p>Work has already started on Vert.x 2.0 which aims to improve the platform in multiple areas and take the project to |
| the next level.</p> |
| |
| <h2>Scope</h2> |
| |
| <p> |
| Vert.x is a framework for the next generation of asynchronous, effortlessly scalable, concurrent applications. |
| </p> |
| |
| <ul> |
| <li>Vert.x provides primarily asynchronous APIs for writing truly scalable non-blocking applications</li> |
| <li>Vert.x is polyglot. Developers write their components using JVM languages. Multiple programming languages can be used in a single application</li> |
| <li>Vert.x has a very simple concurrency model. Vert.x allows you to write all your code as single threaded, this greatly simplifies development. (No more 'synchronized', 'volatile' or explicit locking)</li> |
| </ul> |
| |
| <h2>Description</h2> |
| |
| <p>Vert.x is an asynchronous application platform for the modern web and enterprise.</p> |
| |
| <ul> |
| <li>Vert.x has a very simple concurrency model. Vert.x allows you to write all your code as single threaded, this greatly simplifies development. |
| (No more 'synchronized', 'volatile' or explicit locking).</li> |
| <li>Vert.x includes a distributed event bus that spans the client and server side so your applications components can communicate incredibly easily. |
| The event bus even penetrates into in-browser JavaScript allowing you to create effortless so-called 'real-time' web applications.</li> |
| <li>Vert.x is modular. It provides a simple yet powerful module system, and a public module repository to encourage an ecosystem of modules published by the community.</li> |
| <li>Vert.x takes advantage of the JVM and scales seamlessly over available cores without having to manually fork multiple servers and handle inter process communication between them.</li> |
| </ul> |
| |
| <h2>Why Eclipse?</h2> |
| |
| <p>The Eclipse foundation has a proven track record at building healthy environments for open source projects. It also has unique |
| ecosystem of individuals and organizations who wish to collaborate on commercially-friendly open source software.</p> |
| <p>For Vert.x to continue to flourish with a vibrant community, it's important that the project is hosted in a neutral |
| organisation where the aims of any one entity cannot steer the project. We believe the project is owned by the |
| community and it's up to the community, led by the project lead, to determine the course of the project.</p> |
| <p>We also believe that good IP management as provided by Eclipse will be a good thing for Vert.x as we aim to get more |
| use in large enterprises.</p> |
| |
| <h2>Initial Contribution</h2> |
| |
| <p>The code is written mainly in Java with smaller amounts of Ruby, Groovy, JavaScript and Python.</p> |
| |
| <p>There have been around 68 contributors during the course of the project. Most of the contributions were in the form |
| of small pull requests.</p> |
| |
| <h2>Legal Issues</h2> |
| |
| <p>The code is mainly licensed under the ALv2. At Eclipse, Vert.x, will be dual-licensed under the ALv2 and EPL.</p> |
| |
| <p> |
| The 'Vert.x' trademark is currently owned by VMWare. As part of joining the Eclipse Foundation, VMWare agrees to transfer rights to the mark to the Eclipse Foundation. |
| </p> |
| <p>The largest contributor to the project is Tim Fox - whose copyright is owned by VMware</p> |
| <p>For most larger contributions the SpringSource CLA should have be signed by the contributor. For small (few line) contributions, |
| contributors weren't asked to sign a CLA.</p> |
| <p>The code in the project is almost all licensed by VMware under the ASL 2.0. There a small number of exceptions including |
| a public domain source file (org.vertx.java.core.http.impl.ws.Base64) and another licensed under the MIT license |
| (org.vertx.java.core.http.impl.cgbystrom.FlashPolicyHandler)</p> |
| <p>There are a few files in the project which were taken from previous Red Hat projects (mainly in the websockets implementation), |
| also licensed under ASL 2.0</p> |
| <p>Vert.x currently distributes the following third party libraries</p> |
| <ul> |
| <li>Netty 3.5.9 final. License is ASL 2.0</li> |
| <li>Hazelcast 2.4.1. License is ASL 2.0</li> |
| <li>Jackson 1.9.4. License is ASL 2.0</li> |
| <li>Groovy 2.0.5. License is ASL 2.0</li> |
| <li>Mozilla Rhino 1.7R4. License is MPL 2.0</li> |
| </ul> |
| |
| <h2>Committers</h2> |
| |
| <p>The following individuals are proposed as initial committers to the project:</p> |
| |
| <ul> |
| <li>Tim Fox, Red Hat (lead)</li> |
| <li>Stuart Williams, VMware</li> |
| <li>Norman Maurer, Red Hat</li> |
| </ul> |
| |
| <p>We welcome additional committers and contributions.</p> |
| |
| <!-- |
| Describe any initial contributions of code that will be brought to the |
| project. If there is no existing code, just remove this section. |
| --> |
| |
| <h2>Mentors</h2> |
| |
| <!-- |
| New Eclipse projects require a minimum of two mentors from the Architecture |
| Council. You need to identify two mentors before the project is created. The |
| proposal can be posted before this section is filled in (it's a little easier |
| to find a mentor when the proposal itself is public). |
| --> |
| |
| <p>The following Architecture Council members will mentor this |
| project:</p> |
| |
| <ul> |
| <li>Chris Aniszczyk</li> |
| <li>John Arthorne</li> |
| </ul> |
| |
| <h2>Interested Parties</h2> |
| |
| <!-- |
| Provide a list of individuals, organisations, companies, and other Eclipse |
| projects that are interested in this project. This list will provide some |
| insight into who your project's community will ultimately include. Where |
| possible, include affiliations. Do not include email addresses. |
| --> |
| |
| <p>The following individuals, organisations, companies and projects have |
| expressed interest in this project:</p> |
| |
| <ul> |
| <li>Chris Aniszczyk, Twitter</li> |
| <li>Mark Little, Red Hat</li> |
| <li>Asher Tarnopolski, Exent Technologies</li> |
| <li>Janne Hietamaki, SparkBE</li> |
| <li>Daryl Teo</li> |
| <li>Mark Spritzler</li> |
| <li>Diego López León, IT Crowd Argentina</li> |
| <li>Nate McCall, Apigee</li> |
| <li>Paulo Lopes</li> |
| <li>Bruno Santos</li> |
| <li>Toshihiro Shimizu</li> |
| <li>Norman Maurer, Red Hat</li> |
| <li>Juergen Donnerstag</li> |
| <li>Adam Gent, SnapHop</li> |
| <li>Simone Scarduzio, mpme.com</li> |
| <li>Craig McClanahan, Jive Software</li> |
| <li>Michael Li</li> |
| <li>Martijn Verburg, jClarity</li> |
| <li>Henry Saputra, Platfora (http://www.platfora.com)</li> |
| <li>Nathan Pahucki, Autodesk Inc.</li> |
| <li>Hannes, 3KOLOR GmbH</li> |
| <li>Chen Wang, Volcube</li> |
| <li>Prasad Y, www.pointsoline.com</li> |
| <li>Istvan Pato, lofoo.org</li> |
| <li>Janth Hulha, www.systaro.de</li> |
| <li>Min-Gyu Chung</li> |
| <li>Nathan Pahucki, Autodesk, inc</li> |
| <li>groupon.com</li> |
| <li>Ian Roughley</li> |
| <li>Vicky Kak</li> |
| <li>Raphael Cheun</li> |
| <li>Ken Yee</li> |
| <li>Bartek Zdanowski, TouK sp. z o.o. s.k.a. Poland</li> |
| <li>Igor Akulov, Onwebinar.ru</li> |
| <li>Carter Youngblood</li> |
| <li>Arnold Schrijver, Adnovate</li> |
| <li>Stephan Mulhall, Osgo Solutions www.osgosolutions.com</li> |
| <li>Stephane Maldini, VMware</li> |
| <li>Jon Schneider, conundrum software (http://www.conundrumsoftware.com)</li> |
| <li>Mikael.Karon and Adrian Gonzalez, English First (www.ef.com), Englishtown (www.englishtown.com)</li> |
| <li>Rost Kanyuchenko</li> |
| <li>Pedro Fidalgo Machado</li> |
| <li>Alexander Battisti, Jambit GmbH</li> |
| <li>Joern Bernhardt, Company is Campudus (www.campudus.com)</li> |
| </ul> |
| |
| <h2>Project Scheduling</h2> |
| |
| <!-- |
| Describe, in rough terms, what the basic scheduling of the project will |
| be. You might, for example, include an indication of when an initial contribution |
| should be expected, when your first build will be ready, etc. Exact |
| dates are not required. |
| --> |
| |
| <p> |
| The project is starting an initial contribution in March 2013. We expect to have the existing code, site and documentation |
| migrated by end of April 2013 (this assumes that the IP process goes smoothly and quickly). |
| </p> |
| |
| <h2>Changes to this Document</h2> |
| |
| <!-- |
| List any changes that have occurred in the document here. |
| You only need to document changes that have occurred after the document |
| has been posted live for the community to view and comment. |
| --> |
| |
| <table> |
| <tr> |
| <th>Date</th> |
| <th>Change</th> |
| </tr> |
| <tr> |
| <td>26-02-2013</td> |
| <td>Interested parties added.</td> |
| </tr> |
| <tr> |
| <td>25-02-2013</td> |
| <td>Interested parties added.</td> |
| </tr> |
| <tr> |
| <td>22-01-2013</td> |
| <td>Document created</td> |
| </tr> |
| </table> |
| </body> |
| </html> |