# Vert.x io_uring

Vert.x io_uring is a transport using the io_uring interface of the Linux kernel.

Vert.x io_uring is based on Netty io_uring, more details on the GitHub project.

Vert.x io_uring works with

- Vert.x Core TCP, HTTP, datagram servers/clients

- Vert.x gRPC

- PostgeSQL, MySQL, MSSQL and DB2 reactive clients

- Redis client

- Vert.x MQTT

- Vert.x AMQP client

- Vert.x STOMP

- Vert.x HTTP Proxy

- Vert.x Mail

- Vert.x Consul client

Warning | This module has incubation status and only works on some Linux OSes.

## Using Vert.x io_uring

To use Vert.x io_uring, add the following dependency to the dependencies section of your build descriptor:

- Maven (in your `pom.xml`):

    <dependency>
     <groupId>io.vertx</groupId>
     <artifactId>vertx-io_uring-incubator</artifactId>
     <version>4.5.4</version>
    </dependency>

- Gradle (in your `build.gradle` file):

    dependencies {
     compile 'io.vertx:vertx-io_uring-incubator:4.5.4'
    }

Enable the native transport option when creating the `Vertx` instance:

    Vertx vertx = Vertx.vertx(new VertxOptions().setPreferNativeTransport(true));

When enabled, the io_uring transport takes precedence over the JDK or epoll transports.