Connect to QuestDB

QuestDB exposes several ways for applications to send data and run queries. Pick the path that matches your environment.

Choose your path

Your situationUse
Greenfield app — want the best throughput, durability, and feature setClient Libraries
Existing InfluxDB collectors, Telegraf, or Kafka / Flink pipelinesCompatibility → ILP
Postgres-shaped data layer, BI tools, ORMsCompatibility → PGWire
HTTP scripts, ad-hoc curl, or CSV importsCompatibility → REST API
Building a new QuestDB client library (QWP spec)Wire Protocols

Client Libraries

The first-party libraries for Java, Python, Go, Rust, Node.js, C & C++, and .NET are the recommended way to talk to QuestDB. They speak the QuestDB Wire Protocol (QWP) and unify ingest and query under one configuration and one connection.

QWP support

QWP ships in the libraries below. The remaining language clients are being updated — until they ship a QWP build, they continue to use ILP for ingestion and PGWire for queries.

LanguageQWP support
Java✓ Stable
C & C++✓ Stable
Rust✓ Stable
Python✓ Stable
.NETBeta
GoBeta
Node.jsPlanned

Highlights:

  • Binary on the wire — roughly half the size of ILP or HTTP.
  • Streaming both directions — sustained 800 MiB/s ingress, up to 2.5 GiB/s egress on a single connection.
  • Automatic failover — ingress and egress fail over without application intervention.
  • Store-and-forward — survives server outages, including full server destruction. Sub-200 ns offload latency.
  • One configuration — a single connect string drives every option, portable across all languages.
  • Schema-flexible — automatic table creation and on-the-fly column additions.

Pick a language:

Java

Reference QWP client. Pooled ingestion and streaming SQL over one connection.

Read more

Java logo

C & C++

Columnar QWP ingestion and streaming queries for systems and embedded code.

Read more

C & C++ logo

Rust

Thread-safe QWP pool with Buffer, Chunk, Arrow, and Polars ingestion.

Read more

Rust logo

Python

QWP row and DataFrame ingestion, plus SQL streaming into pandas, polars, or Arrow.

Read more

Python logo

.NET

QWP sender and query client for .NET. Beta.

Read more

.NET logo

Go

Pooled QWP ingestion and queries with store-and-forward durability. Beta.

Read more

Go logo

Node.js

JavaScript runtime client. Ingests over ILP; QWP support is planned.

Read more

Node.js logo

Compatibility protocols

Use these if you have existing tooling that speaks them, or if a native client library isn't a fit for your environment.

  • InfluxDB Line Protocol (ILP) — the text-based ingest protocol used by InfluxDB. Works with Telegraf, Kafka, Redpanda, Flink, and any collector that already emits ILP.
  • PostgreSQL Wire Protocol (PGWire) — query QuestDB from any Postgres-compatible driver (psycopg, JDBC, pgx, …), BI tools (Tableau, Grafana, Metabase), and ORMs.
  • REST API — HTTP / JSON endpoints for ad-hoc queries, scripting, and bulk CSV import.

These remain fully supported. They are grouped as compatibility because they predate QWP and exist primarily to integrate with tooling that already speaks them.

Wire protocols

The byte-on-the-wire specifications for the QuestDB Wire Protocol (QWP), covering the WebSocket variants for ingress and egress. Read these if you are building a new QuestDB client library in a language we don't yet support, or embedding QuestDB connectivity into an existing framework.

QWP also has a UDP transport for fire-and-forget metrics, supported by the Java, Rust, C and C++ clients via the udp connect-string schema. It is configured through the qwp.udp.* server settings and is disabled by default; there is no separate byte-level specification page for it.

See the Wire Protocols reference.

Next steps