--- title: Connect Quarkus (Reactive) to Neon subtitle: Learn how to connect to Neon from Quarkus using a Reactive SQL Client enableTableOfContents: true updatedOn: '2025-10-24T12:48:41.462Z' --- [Quarkus](https://quarkus.io/) is a Java framework optimized for cloud environments. This guide shows how to connect to Neon from a Quarkus project using a Reactive SQL Client. To connect to Neon from a Quarkus application: ## Create a Neon project If you do not have one already, create a Neon project. 1. Navigate to the [Projects](https://console.neon.tech/app/projects) page in the Neon Console. 2. Click **New Project**. 3. Specify your project settings and click **Create Project**. ## Create a Quarkus project Create a Quarkus project using the [Quarkus CLI](https://quarkus.io/guides/cli-tooling): ```shell quarkus create app neon-with-quarkus \ --name neon-with-quarkus \ --package-name com.neon.tech \ --extensions reactive-pg-client,resteasy-reactive ``` You now have a Quarkus project in a folder named `neon-with-quarkus` with the Reactive Postgres client and RESTEasy Reactive extensions installed. ## Configure a PostgreSQL data source Create a `.env` file in the root of your Quarkus project directory. Configure a reactive data source using your Neon database connection string and specifying the database kind as shown: ```shell shouldWrap QUARKUS_DATASOURCE_REACTIVE_URL=postgresql://[user]:[password]@[neon_hostname]/[dbname]?sslmode=require&channel_binding=require ``` You can find the connection details for your database by clicking the **Connect** button on your **Project Dashboard**. For more information, see [Connect from any application](/docs/connect/connect-from-any-app). ## Use the Reactive PostgreSQL client Create a `PostgresResource.java` file in the same directory as the `GreetingResource.java` that was generated by Quarkus during project creation. Paste the following content into the `PostgresResource.java` file: ```java package com.neon.tech; import jakarta.inject.Inject; import io.smallrye.mutiny.Multi; import io.vertx.mutiny.sqlclient.Row; import io.vertx.mutiny.sqlclient.RowSet; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; @Path("/postgres") public class PostgresResource { @Inject io.vertx.mutiny.pgclient.PgPool client; @GET @Path("/version") @Produces(MediaType.TEXT_PLAIN) public Multi getVersion() { return client.query("SELECT version()") .execute() .onItem().transformToMulti(this::extractVersion); } private Multi extractVersion(RowSet rowSet) { return Multi.createFrom().iterable(rowSet) .map(r -> r.getValue(0).toString()); } } ``` This code defines a HTTP endpoint that will query the database version and return it as a response to incoming requests. ## Run the application Start the application in development mode using the Quarkus CLI from the root of the project directory: ```shell quarkus dev ``` Visit [localhost:8080/postgres/version](http://localhost:8080/postgres/version) in your web browser. Your Neon database's Postgres version will be returned. For example: ``` PostgreSQL 17.5 (6bc9ef8) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit ```