Skip to main content

Get Started

Examples

Vert.x can be used for many different things so we provide a wide range of examples demonstrating usage of Vert.x in many different situations - from getting started with a hello world example in Maven or Gradle to a range of web application examples.

Start with the main README file and follow pointers.

Books

Vert.x in Action: Asynchronous and Reactive Applications in Java
A gentle guide to asynchronous programming with Eclipse Vert.x for Java developers
Building Reactive Microservices in Java

Materials

If you are interested in articles, tutorials and talks about Vert.x, please check the learning materials page.

Explore

Vert.x contains several different components designed to make it easier for you to write compelling reactive applications in a range of different languages.

Vert.x is highly modular and you just use the bits that you need and nothing more.

And don't forget - Vert.x is a library not a restrictive container so you don't have to only use components provided by Vert.x. You can also use Vert.x with all the usual libraries that you like.

The sections below describe most of the major components of Vert.x, with links to the source repository, manuals in different languages, and API documentation.

On this page are only listed components that are part of the official Vert.x stack. You can find a lot more components, and see the high diversity of the Vert.x ecosystem, on the Vert.x awesome page.


Core已翻译

Vert.x core contains fairly low level functionality including support for HTTP, TCP, file system access, and various other features. You can use this directly in your own applications, and it's used by many of the other components of Vert.x

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Web

Web

Vert.x-Web is a tool-kit for writing sophisticated modern web applications and HTTP microservices.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Web Client已翻译

Vert.x Web Client is an easy to use advanced HTTP client.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Web API Contract

Web API Contract supports OpenApi 3 specification for a design first approach and provides a validation framework

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Web API Service Technical Preview

Connect your Router built with OpenAPI 3 directly to EventBus services

JavaManualAPI

Data access

Vert.x provides a few different asynchronous clients for accessing various data stores from your application. You don't have to use these clients - you could use clients direct from the vendor if you prefer (e.g. MongoDB provide their own cool async and reactive clients), but these provide a simple async API which is available in various languages.

MongoDB client已翻译

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

JDBC client已翻译

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

SQL common已翻译

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Redis client已翻译

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

MySQL / PostgreSQL client已翻译

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Cassandra client Technical Preview

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Reactive

Vert.x provides a couple of components to make your applications more reactive.

Vert.x Rx

Don't like callback-style APIs? Vert.x provides Rx-ified (using RxJava) versions for most of its APIs so you can use those if you prefer.

RxJava is a great choice when you want to perform complex operations on multiple asynchronous streams of data.

RxJava 1ManualAPI
RxJava 2ManualAPI
RxJSManualAPI
RxGroovyManualAPI

Reactive streams

Vert.x supports reactive streams so your applications can interoperate with other reactive systems such as Akka or Project Reactor.

JavaManualAPI

Vert.x Sync

Vertx-sync allows you to deploy verticles that run using fibers. Fibers are very lightweight threads that can be blocked without blocking a kernel thread. This enables you to write your verticle code in a familiar sequential style.

JavaManualAPI

Kotlin coroutines

Kotlin coroutines for Vert.x, gives you super powers such as async/await or Go-like channels. This enables you to write your verticle code in a familiar sequential style.

KotlinManualAPI

Microservices

Vert.x offers various component to build microservice-based applications.

Vert.x Service Discovery已翻译

This component lets you publish, lookup and bind to any type of services.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Vert.x Circuit Breaker已翻译

This component provides an implementation of the circuit breaker pattern for Vert.x

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Vert.x Config

This component provides an extensible way to configure Vert.x applications.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

MQTT

Vert.x MQTT provides client/server for MQTT. The server is able to handle connections, communication and messages exchange with remote MQTT clients. The client is 3.1.1 MQTT compliant with a bunch of methods for connecting/disconnecting to a broker, publishing messages and subscribing to topics.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Authentication and Authorisation

Vert.x provides simple APIs for auth in your applications. We also provide a few out of the box implementations.

Auth common已翻译

The Common Auth APIs

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

JDBC auth已翻译

Auth implementation backed by JDBC

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

JWT auth已翻译

Auth implementation using JSON web tokens (JWT)

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Shiro auth已翻译

Auth implementation using Apache Shiro

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

MongoDB auth已翻译

Auth implementation using MongoDB

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

OAuth 2已翻译

Auth implementation for OAuth2

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
CeylonManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

.htdigest Auth

.htdigest file to query user information

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Integration

Mail Client

Vert.x provides a simple SMTP mail client so you can send emails from your applications.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

STOMP Client & Server

Vert.x provides an implementation of the STOMP protocol.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Consul Client

A client to interact with Consul.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
PhpManualAPI

RabbitMQ Client

A client to interact with RabbitMQ.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Kafka Client

A client to interact with Apache Kafka.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

JCA Adaptor

Vert.x provides a Java Connector Architecture (JCA) adaptor which allows it to interoperate with any JavaEE application server.

AMQP Bridge

A bridge for interacting with an AMQP 1.0 broker or router.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Event Bus Bridge

Vert.x offers various bridges to extend the Event Bus beyond the JVM

TCP Eventbus Bridge

An eventbus bridge that lets you interact with Vert.x from any application thanks to a TCP socket.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Camel Bridge

An eventbus bridge that lets you interact with Apache Camel endpoints and routes

JavaManualAPI

Devops

Vert.x offers various component to keep your Vert.x application on track when running in production

Metrics using Dropwizard

This component captures metrics from Vert.x core components and exposes them using Dropwizard.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Metrics using Micrometer

This component captures metrics from Vert.x core components and exposes them using Micrometer.

JavaManual
JavaScriptManual
GroovyManual
RubyManual
KotlinManual
PhpManual

Vert.x Health Check

This component provides a simple way to expose health checks.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
PhpManualAPI

Shell

This component lets you interact with your Vert.x application using a CLI interface.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI
PhpManualAPI

Docker已翻译

These docker images, available from the DockerHub, let you run Vert.x applications in Docker containers.

Stack Manager已翻译

The stack manager (provided in the Vert.x distros) lets you add and remove artifacts from your stack.


Testing

Vert.x supports unit testing for asynchronous code.

Vert.x Unit

Vert.x-Unit is an unit testing tool-kit especially design to work well with asynchronous code.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
PhpManualAPI

Vert.x JUnit 5

This module offers integration and support for writing Vert.x tests with JUnit 5.


Clustering

Vert.x supports clustering and HA out of the box. Cluster group management is implemented in cluster managers which are pluggable. The default cluster manager uses Hazelcast.

Hazelcast已翻译

Cluster manager implementation that uses Hazelcast. This is the default in the 'vertx' command line.

Infinispan已翻译

Cluster manager implementation that uses Infinispan.

Apache Ignite已翻译

Cluster manager implementation that uses Apache Ignite.

Apache Zookeeper已翻译

Cluster manager implementation that uses Apache Zookeeper.


Services

Vert.x services are a simple and effective way to encapsulate reusable functionality for use elsewhere. Services are deployed using a service identifier which decouples the user from details of the implementation.

Service Proxies已翻译

Proxies allow remote event bus services to be called as if they were local.

SockJS Service Proxies

Allow event bus services to be called from JavaScript (browser or Node.js).

gRPC

Implement gRPC Clients and Servers for Vert.x.

Service Factories已翻译

How to package and deploy Vert.x independent services.

Maven Service Factory

This lets you dynamically install and deploy services from Maven at run-time.

HTTP Service Factory

This lets you dynamically install and deploy services from an HTTP server (for example Bintray) at run-time.


Cloud

Vert.x OpenShift 3 S2I

A source to image support for Openshift 3.


Advanced

Some of the more advanced or internal bits and pieces. You won't normally use these directly in your own projects. They're mainly stuff we use internally.

Codegen

This is the magic that translates Java APIs into other languages.

Docgen

Creates asciidoc and API documentation from in-source docs.

Codetrans

More magic that translates code into other languages (we mainly use this for translating examples)

Bridge Common

This project contains the data object used by all eventbus bridges.

Distro

This project builds the various Vert.x distributions.

Web-site

This is the repository that creates this web-site.