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
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
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Web
Web
Vert.x-Web is a tool-kit for writing sophisticated modern web applications and HTTP microservices.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Web Client
Vert.x Web Client is an easy to use advanced HTTP client.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Web API Contract
Web API Contract supports OpenApi 3 specification for a design first approach and provides a validation framework
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Web API Service Technical Preview
Connect your Router built with OpenAPI 3 directly to EventBus services
Java | Manual | API |
Web GraphQL Handler Technical Preview
Create GraphQL servers with Vert.x Web and the GraphQL-Java library.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
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
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Reactive MySQL client Technical Preview
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
MongoDB client
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Redis client
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Cassandra client
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
SQL common
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
JDBC client
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
MySQL / PostgreSQL client
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
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 1 | Manual | API |
RxJava 2 | Manual | API |
RxJS | Manual | API |
RxGroovy | Manual | API |
Reactive streams
Vert.x supports reactive streams so your applications can interoperate with other reactive systems such as Akka or Project Reactor.
Java | Manual | API |
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.
Java | Manual | API |
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.
Kotlin | Manual | API |
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.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Vert.x Circuit Breaker
This component provides an implementation of the circuit breaker pattern for Vert.x
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Vert.x Config
This component provides an extensible way to configure Vert.x applications.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
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.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
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
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
JDBC auth
Auth implementation backed by JDBC
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
JWT auth
Auth implementation using JSON web tokens (JWT)
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Shiro auth
Auth implementation using Apache Shiro
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
MongoDB auth
Auth implementation using MongoDB
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
OAuth 2
Auth implementation for OAuth2
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
.htdigest Auth
.htdigest file to query user information
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Messaging
AMQP Client Technical Preview
A client for interacting with an AMQP 1.0 broker or router.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
STOMP Client & Server
Vert.x provides an implementation of the STOMP protocol.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
RabbitMQ Client
A client to interact with RabbitMQ.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual |
AMQP Bridge
A bridge for interacting with an AMQP 1.0 broker or router.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Integration
Kafka Client
A client to interact with Apache Kafka.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual |
Mail Client
Vert.x provides a simple SMTP mail client so you can send emails from your applications.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Consul Client
A client to interact with Consul.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
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.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Camel Bridge
An eventbus bridge that lets you interact with Apache Camel endpoints and routes
Java | Manual | API |
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.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
Metrics using Micrometer
This component captures metrics from Vert.x core components and exposes them using Micrometer.
Java | Manual |
JavaScript | Manual |
Groovy | Manual |
Ruby | Manual |
Kotlin | Manual |
Vert.x Health Check
This component provides a simple way to expose health checks.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Shell
This component lets you interact with your Vert.x application using a CLI interface.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
Scala | Manual | API |
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.
Java | Manual | API |
JavaScript | Manual | API |
Groovy | Manual | API |
Ruby | Manual | API |
Kotlin | Manual | API |
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.
发表回复