/vertx-awesome

A curated list of awesome Vert.x resources, libraries, and other nice things.

Apache License 2.0Apache-2.0

Awesome Vert.x Awesome

Awesome Vert.x is a list of awesome frameworks, libraries or other components for use with or that use Vert.x version 3.

If you want your component to appear here send a pull request to this repository to add it.

Please note that we can't vouch for the stability or production-worthiness of everything on this list unless it has the icon (stack) next to it. This icon means the component is part of the official Vert.x stack.

For Vert.x version 2 check this page.

Contents

Books

Build tools

Web Frameworks

  • Vert.x Web (stack) - Full featured web toolkit for Vert.x.
  • Vert.x Jersey - Create JAX-RS Jersey resources in Vert.x.
  • Kovert - Invisible REST framework for Kotlin + Vert.x Web.
  • Handlers - Open web framework for Vert.x.
  • QBit - REST and WebSocket method call marshaling and reactive library.
  • vertx-rest-storage - Persistence for REST resources in the filesystem or a redis database.
  • Jubilee - A rack compatible Ruby HTTP server built on Vert.x 3.
  • Knot.x - Efficient & high-performance integration platform for modern websites built on Vert.x 3.
  • Irked - Annotations-based configuration for Vert.x 3 Web and controller framework.
  • REST.VertX - Lightweight JAX-RS (RestEasy) like annotation processor for Vert.x verticals.
  • Atmosphere Vert.x - Realtime Client Server Framework for the JVM, supporting WebSockets and Server Sent Events with Cross-Browser Fallbacks.
  • Vert.x Vaadin - Run Vaadin applications on Vert.x.
  • Serverx - Allows you to quickly and easily set up a Vert.x-powered server using only route handler annotations.
  • Cloudopt Next - Cloudopt Next is a very lightweight and modern, JVM-based, full stack kotlin framework designed for building modular, easily testable JVM applications with support for Java, Kotlin language, crafted from the best of breed Java libraries and standards.

Authentication Authorisation

Database Clients

Clients for connecting to databases

  • Relational Databases

    • Reactive SQL Client (stack) - High performance reactive SQL client.
    • JDBC (stack) - Asynchronous interface around a JDBC datasource.
    • MySQL / PostgreSQL (stack) - Asynchronous Client for MySQL/PostgreSQL.
    • PostgreSQL - Reactive PostgreSQL Client.
    • database - Client for Oracle, PostgreSQL, SQL Server, HyperSQL, etc. designed for security, correctness, and ease of use.
    • jOOQ - Doing typesafe, asynchronous SQL and generate code using jOOQ.
  • NoSQL Databases

    • MongoDB (stack) - An asynchronous client for interacting with a MongoDB database.
    • Redis (stack) - Asynchronous API to interact with Redis.
    • Cassandra (stack) - A Vert.x client allowing applications to interact with a Cassandra service.
    • Cassandra - Asynchronous API to interact with Cassandra and Cassandra Mapping.
    • OrientDB - Non-blocking OrientDB server integration.
    • Bitsy - Non-blocking Bitsy Graph server integration.
    • MarkLogic - Asynchronous client for Marklogic Database Server.
    • SirixDB - Non-blocking SirixDB HTTP-server.
    • DGraph - An example on how to build a Vert.x gRPC compliant client. Here targeting dgraph
    • RxFirestore - Non-blocking Firestore SDK written in a reactive way.
  • vertx-pojo-mapper - Non-blocking POJO mapping for MySQL and MongoDB.

  • vertx-mysql-binlog-client - A Vert.x client for tapping into MySQL replication stream.

Integration

  • Server-Sent Events

    • jEaSSE - Java Easy SSE. A simple, lightweight implementation of SSE.
    • vertx-sse - Vert.x SSE implementation + event-bus SSE bridge.
  • Mail

  • REST

  • File Server

  • Messaging

    • AMQP 1.0 (stack) - Interact with AMQP 1.0 servers using the Vert.x Producer and Consumer APIs.
    • MQTT (stack) - Provides two different components : an MQTT server for handling all the MQTT communication and messages exchanges with clients and an MQTT client for sending and receiving messages against an MQTT broker.
    • RabbitMQ (stack) - A RabbitMQ client (AMQP 0.9.1).
    • Kafka Client (stack) - A Kafka client.
    • kafka - Kafka client for consuming and producing messages.
    • Kafka Service - Kafka producer and consumer with retry logic.
    • SaltStack - A bi-directional bridge between the SaltStack event system and the Vert.x event bus.
    • STOMP (stack) - A Kafka client and server.
    • ZeroMQ - ZeroMQ Event Bus bridge.
    • MQTT Broker - MQTT Broker (MQTT ver. 3.1.1 and 3.1 compliant).
    • Azure ServiceBus - Azure ServiceBus producer and consumer (fully async, doesn't use Microsoft Azure SDK).
    • AMQP 1.0 - Kafka bridge - Bridge for sending/receiving messages to/from Apache Kafka using the AMQP 1.0 protocol.
    • Vert.x Kafka Client (stack) - Apache Kafka client for reading and sending messages from/to an Apache Kafka cluster.
    • The White Rabbit - An asynchronous RabbitMQ (AMQP) client based on Kotlin coroutines.
  • JavaEE

    • JCA adaptor (stack) - Java Connector Architecture Adaptor for the Vert.x event bus.
    • Weld - Brings the CDI programming model into the Vert.x ecosystem (register CDI observer methods as Vert.x message consumers, CDI-powered Verticles, define routes in a declarative way, etc.).
  • Meteor

    • Meteor - Meteor integration support through Vert.x event bus.
  • Metrics

  • Netflix - Hystrix

  • Dart

  • Push Notifications

    • Onesignal - Send push notifications to (mobile/web) apps from your Vert.x application with OneSignal.
  • CNCF CloudEvents

Middleware

  • Apache Camel - Apache Camel component for bridging Camel with the Vert.x event bus.
  • Gateleen - Middleware library based on Vert.x to build advanced JSON/REST communication servers.
  • Gravitee.io - An OSS API Platform including an API Gateway and an OAuth2 / OIDC authorization server based on Vert.x Core / Vert.x Web and other modules.
  • API Framework - Vertx and Glue based microservice framework removing distinction between standalone and serveless application. All services can run in standalone server, but, if required, same codebase can be used to run any service as serverless application.

Language Support

Programming language support for Vert.x

  • Ceylon (stack) - Ceylon support.
  • Groovy (stack) - Groovy support.
  • Java (stack) - Vert.x main repository (including the Java API).
  • JavaScript (stack) - JavaScript support.
  • Python - Python support.
  • Ruby (stack) - Ruby support.
  • Scala - (stack) - Scala support.
  • Kotlin - (stack) - Kotlin support.
  • EcmaScript - EcmaScript >=6 (JavaScript) support.
  • Php - Php support.

Language extensions

Reactive

  • Reactive Streams (stack) - Vert.x Reactive Streams.
  • Vert.x Rx (stack) - Vert.x Reactive Extensions.
  • Vert.x Sync (stack) - Vert.x fiber support.
  • Kotlin coroutines (stack) - Vert.x support for Kotlin coroutines.
  • vertx-util - Light weight promises & latches for Vert.x.
  • QBit - Async typed actor-like lib that runs easily in Vert.x Async Callbacks. Callback management.
  • VxRifa - Utility library for Vert.X that allows using strong-typed interfaces in communication through EventBus.

Sync Thread Non Block

  • Sync - Synchronous but non-OS-thread-blocking verticles.

Vert.x Event Bus Clients

Clients to connect applications to the Vert.x event bus

Cluster Managers

Implementations of the Vert.x cluster manager SPI

Cloud Support

Docker

Microservices

Search Engines

Template Engines

  • KorTE Template Engine - Kotlin Template Engine similar to Twig/Django/Liquid supporting calling Kotlin suspend methods.

Service Factory

Config

Dependency Injection

  • Vert.x Guice - Vert.x verticle factory for Guice dependency injection.
  • Vert.x HK2 - Vert.x verticle factory for HK2 dependency injection.
  • Spring Vert.x Extension - Vert.x verticle factory for Spring DI injection.
  • Vert.x Beans - Inject Vert.x objects as beans into your Spring application.
  • QBit - QBit works with Spring DI and Spring Boot (and of course Vert.x). Allows you to use QBit, Vert.x, Spring DI and Spring Boot in the same application.
  • Vert.x Eclipse SISU - Vert.x integration with Eclipse SISU DI container.
  • Vert.x Spring Verticle Factory - A Vert.x Verticle Factory that makes use of Spring to obtain and configure Verticles.
  • Glue - Proven and opinionated programming, and configuration model for Java and Vertx based applications. Inspired from ATG Nucleus, provides powerful layer base configuration management using simple properties file.

Testing

Development Tools

  • Vert.x shell (stack) - Allows for interaction with Vert.x from the command line.
  • Vert.x health check - Allows for remote health checking in Vert.x projects.
  • Vert.x Hot - A Maven plugin for the hot-deploy of Maven Vert.x projects.
  • slush-vertx - A template driven Vert.x project generator for different languages and build tools.
  • Vert.x for Visual Studio Code - A Visual Studio Code (polyglot) plugin for Vert.x. Also available from the Marketplace.
  • Vert.x Starter - A browser-based project starter and project templates for Vert.x applications.
  • Vert.x LiveReload - A simple livereload server for Vert.x applications.
  • openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3).

Miscellaneous

  • Vert.x Child Process - Spawn child process from Vert.x.
  • vertx-redisques - A highly scalable redis-persistent queuing system for Vert.x.
  • Simple File Server - An OpenStack Swift compatible distributed object storage server that can serve and securely store billions of large and small files using minimal resources implemented using Vert.x.
  • Vert.x Boot - Deploying verticles from a HOCON configuration.
  • GDH - Generalized Diffie-Hellman key exchange Java library built on top of Vert.x.

Distribution

Examples

Deployment

Utilities

  • Chime - Time scheduler working on Vert.x event bus allowing for scheduling with cron-style and interval timers.
  • Vert.x Cron - Schedule events with cron specifications. Has event bus and Observable versions.
  • Vert.x CronUtils - An abstraction of cron-utils for the vertx scheduler. Unix, Cron4j and Quartz style expressions are supported.
  • Vert.x POJO config - Allows for mapping between standard JSON configuration and a (type-safe) configuration Java bean. Also allows the configuration bean to be validated through JSR 303.
  • Vert.x Async - Portage of caolan/async nodejs module to Vert.x framework that provides helpers methods for common async patterns.
  • Vert.x JOLT - JSON to JSON transformation tool based on the original bazaarvoice JOLT project. Helpful to transform different json structure into an expected json format.
  • Vert.x Dependent Verticle Deployer - A Vert.x Verticle intended to deploy verticles and their dependent verticles.
  • Vert.x Dataloader - Java port of Facebook Dataloader for Vert.x. Efficient batching and caching for your data layer.
  • Vert.x Util - A collection of Vert.x utility methods.
  • Vert.x Web Accesslog - Just a simple handler to be used in Vert.x Web to generate access logs.
  • Vert.x GraphQL Utils - A route handler and Vert.x compatible interfaces to handle GraphQL queries in Vert.x and Vert.x Web.
  • Nannoq-Tools - Nannoq-Tools is a toolkit for constructing robust, scalable and distributed applications leveraging Vert.x including modules for authentication, cluster management, Firebase Cloud Messaging, DynamoDB, fully generic queries, REST, and more.

Community

  • User Group - Discuss all user issues related to using Vert.x.
  • Developer Group - A group for Vert.x core developers and contributors.
  • Gitter chat general chat for Vert.x releated chat.
  • Issues - Vert.x core issue tracker.
  • Wiki - Contains useful information about Vert.x.
  • Learning Materials - A list of articles and presentations on Vert.x.
  • Blog - The official Vert.x blog containing many tutorials and other information.
  • 2017 Events - A list of 2017 Vert.x talks and presentations.

Social events / Meetups

Front-End

  • VertxUI - A pure Java front-end toolkit with descriptive fluent views-on-models, POJO traffic, JUnit testing on the virtual DOM or mixed-language on a real DOM, and more.

Contribute

Contributions welcome! Read the contribution guidelines first.