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

http://vertx.io/

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 Mavenor Gradle to a range of web application examples.

Start with the main README file and follow pointers.

How-to

We have assembled concise and precise “how-to” guides to teach you how-to cover certain technical tasks with Vert.x. Check them out!

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
KotlinManualAPI
ScalaManualAPI

Web

Web

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Web Client

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

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

Web API Service Technical Preview

Connect your Router built with OpenAPI 3 directly to EventBus services

JavaManualAPI

Web GraphQL Handler Technical Preview

Create GraphQL servers with Vert.x Web and the GraphQL-Java library.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

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.

Reactive PostgreSQL client Technical Preview

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI

Reactive MySQL client Technical Preview

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI

MongoDB client

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Redis client

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Cassandra client

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

SQL common

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

JDBC client

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

MySQL / PostgreSQL client

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

Vert.x Circuit Breaker

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Vert.x Config

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

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

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
KotlinManualAPI
ScalaManualAPI

JDBC auth

Auth implementation backed by JDBC

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

JWT auth

Auth implementation using JSON web tokens (JWT)

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Shiro auth

Auth implementation using Apache Shiro

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

MongoDB auth

Auth implementation using MongoDB

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

OAuth 2

Auth implementation for OAuth2

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

.htdigest Auth

.htdigest file to query user information

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Messaging

AMQP Client Technical Preview

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI

STOMP Client & Server

Vert.x provides an implementation of the STOMP protocol.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

RabbitMQ Client

A client to interact with RabbitMQ.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManual

AMQP Bridge

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Integration

Kafka Client

A client to interact with Apache Kafka.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManual

Mail Client

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

Consul Client

A client to interact with Consul.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI

JCA Adaptor

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


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

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

Metrics using Micrometer

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

JavaManual
JavaScriptManual
GroovyManual
RubyManual
KotlinManual

Vert.x Health Check

This component provides a simple way to expose health checks.

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI

Shell

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

JavaManualAPI
JavaScriptManualAPI
GroovyManualAPI
RubyManualAPI
KotlinManualAPI
ScalaManualAPI

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

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.

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注