Skip to main content

Eclipse Vert.x is a tool-kit for building reactive applications on the JVM.

Scale

Eclipse Vert.x is event driven and non blocking. This means your app can handle a lot of concurrency using a small number of kernel threads. Vert.x lets your app scale with minimal hardware.


import io.vertx.core.AbstractVerticle;
public class Server extends AbstractVerticle {
  public void start() {
    vertx.createHttpServer().requestHandler(req -> {
      req.response()
        .putHeader("content-type", "text/plain")
        .end("Hello from Vert.x!");
    }).listen(8080);
  }
}

vertx.createHttpServer()
  .requestHandler(function (req) {
    req.response()
      .putHeader("content-type", "text/plain")
      .end("Hello from Vert.x!");
}).listen(8080);

vertx.createHttpServer().requestHandler({ req ->
  req.response()
    .putHeader("content-type", "text/plain")
    .end("Hello from Vert.x!")
}).listen(8080)

$vertx.create_http_server().request_handler() { |req|
  req.response()
    .put_header("content-type", "text/plain")
    .end("Hello from Vert.x!")
}.listen(8080)

import io.vertx.ceylon.core { ... }
import io.vertx.ceylon.core.http { ... }
shared class Server() extends Verticle() {
  start() => vertx.createHttpServer()
    .requestHandler((req) =>
      req.response()
        .putHeader("content-type", "text/plain")
        .end("Hello from Vert.x!")
    ).listen(8080);
}

import io.vertx.lang.scala.ScalaVerticle
class Server extends ScalaVerticle {
  override def start(): Unit = {
    vertx
      .createHttpServer()
     .requestHandler(_.response()
       .putHeader("content-type", "text/plain")
       .end("Hello from Vert.x"))
     .listen(8080)
  }
}}

import io.vertx.core.AbstractVerticle
class Server : AbstractVerticle() {
  override fun start() {
    vertx.createHttpServer()
      .requestHandler { req ->
        req.response()
          .putHeader("content-type", "text/plain")
          .end("Hello from Vert.x")
      }.listen(8080)
  }
}

$vertx->createHttpServer()
  ->requestHandler(function ($req) {
    $req->response()
      ->putHeader("content-type", "text/plain")
      ->end("Hello from Vert.x!");
})->listen(8080);

Polyglot

You can use Vert.x with multiple languages including Java, JavaScript, Groovy, Ruby, Ceylon, Scala, Kotlin and Php.

Vert.x doesn't preach about what language is best — you choose the languages you want based on the task at hand and the skill-set of your team.

We provide idiomatic APIs for every language that Vert.x supports.

General purpose

Vert.x is incredibly flexible - whether it's simple network utilities, sophisticated modern web applications, HTTP/REST microservices, high volume event processing or a full blown back-end message-bus application, Vert.x is a great fit.

Vert.x is used by many different companies from real-time gaming to banking and everything in between.

Unopinionated

Vert.x is not a restrictive framework or container and we don't tell you a correct way to write an application. Instead we give you a lot of useful bricks and let you create your app the way you want to.

Need some guidance? We provide a large selection of examples to get you started for the particular type of application you want to write.

Vert.x is fun

Enjoy being a developer again.

Unlike restrictive traditional application containers, Vert.x gives you incredible power and agility to create compelling, scalable, 21st century applications the way you want to, with a minimum of fuss, in the language you want.

  • Vert.x is lightweight - Vert.x core is around 650kB in size.

  • Vert.x is fast. Here are some independent numbers.

  • Vert.x is not an application server. There's no monolithic Vert.x instance into which you deploy applications. You just run your apps wherever you want to.

  • Vert.x is modular - when you need more bits just add the bits you need and nothing more.

  • Vert.x is simple but not simplistic. Vert.x allows you to create powerful apps, simply.

  • Vert.x is an ideal choice for creating light-weight, high-performance, microservices.

Have a private enquiry about Vert.x? Please contact us.

Who's using Vert.x?