Vert.x
   HOME

TheInfoList



OR:

Eclipse Vert.x is a
polyglot Multilingualism is the use of more than one language, either by an individual speaker or by a group of speakers. It is believed that multilingual speakers outnumber monolingualism, monolingual speakers in the World population, world's pop ...
event-driven Event driven may refer to: The term event-driven refers to a methodology that focuses on events and event dependencies. Examples include * Event-driven finite-state machine, finite-state machine where the transition from one state to another ...
application framework In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of application software. Application frameworks became popular with the rise of graphical user int ...
that runs on the Java Virtual Machine. Similar environments written in other programming languages include
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code o ...
for
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
, Twisted for
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
, Perl Object Environment for
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
,
libevent libevent is a software library that provides asynchronous event notification. The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. libeven ...
for C, reactPHP and amphp for
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
and EventMachine for
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
. As of version 2.1.4, Vert.x exposes its API in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
, JavaScript,
Groovy ''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1950s, '60s and '70s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context. History The ...
, Ruby, Python, Scala,
Clojure Clojure (, like ''closure'') is a dynamic and functional dialect of the Lisp programming language on the Java platform. Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system. The current development process is comm ...
and
Ceylon Sri Lanka (, ; si, ශ්‍රී ලංකා, Śrī Laṅkā, translit-std=ISO (); ta, இலங்கை, Ilaṅkai, translit-std=ISO ()), formerly known as Ceylon and officially the Democratic Socialist Republic of Sri Lanka, is an ...
. As of version 3.7.0, Vert.x exposes its API in Java, JavaScript, Groovy, Ruby, Scala, Kotlin and Ceylon. As of version 3.9.1, Vert.x exposes its API in Java, JavaScript, Groovy, Ruby, Scala and Kotlin. As of version 4.0.0, Vert.x exposes its API in Java, Groovy and Kotlin.


History

Vert.x was started by Tim Fox in 2011 while he was employed by
VMware VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture. VMware's desktop software ru ...
. Fox initially named the project "Node.x", a play on the naming of
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code o ...
, with the "x" representing the fact that the new project was polyglot in nature, and didn't simply support JavaScript. The project was later renamed to "Vert.x" to avoid any potential legal issues as "Node" was a trademark owned by Joyent Inc. The new name was also a play on the name node, as a vertex is a synonym for a node in mathematics. In December 2012, after he left their employment, VMware served legal papers on Tim Fox to take control of the Vert.x trademark, domain name, blog, GitHub account, and Google Group from the Vert.x community After much discussion with other parties, in January 2013, VMware was persuaded that it would be in the best interests of the Vert.x community to move the project and associated IP to the Eclipse Foundation, a neutral legal entity. In August 2013, the core Vert.x project completed its move to the Eclipse Foundation. The other projects that make up the Vert.x stack did not migrate to Eclipse but continued to use the "Vert.x" trademark with tacit approval of the Eclipse Foundation. In May 2014, Vert.x won the award for "Most Innovative Java Technology" at the JAX Innovation awards. On January 12, 2016, Tim Fox stepped down as the lead of the Vert.x project. and Julien Viet, a long-time contributor, took his place.


Architecture

Vert.x uses low level IO library
Netty Netty may refer to: * Netty (software), a Java project * North East England ( Geordie) dialect for toilet or public convenience *Netty (name) See also * Westoe Netty *Nethy (disambiguation) * Natty (disambiguation) *Netta (disambiguation) *Nett ...
.vert.x – JVM Polyglot Alternative to Node.js
By Dio Synodinos, May 04, 2012, InfoQ The application framework includes these features: * Polyglot. Application components can be written in Java, JavaScript, Groovy, Ruby, Scala, Kotlin and Ceylon. * Simple concurrency model. All code is single threaded, freeing from the hassle of multi-threaded programming. * Simple, asynchronous programming model for writing truly scalable non-blocking applications. * Distributed event bus that spans the client and server side. The event bus even penetrates into in-browser JavaScript allowing to create so-called real-time web applications. * Actor model and public repository, to re-use and share components.


Examples

A web server serving "Hello from Vert.x!" could be written in Java: import io.vertx.core.AbstractVerticle; public class Server extends AbstractVerticle And in
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
: vertx.createHttpServer() .requestHandler(function (req) ).listen(8080); Both cases will result in a web server serving content in a highly scalable manner.


References


External links

*{{Official website Concurrent programming libraries Cross-platform software Events (computing) Free computer libraries Java virtual machine