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
C & C++
Rust
Go
.NET
PythonPlanned
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:

C & C++

High-performance client for systems programming and embedded applications.

Read more

C & C++ logo

.NET

Cross-platform client for building applications with .NET technologies.

Read more

.NET logo

Go

An open-source programming language supported by Google with built-in concurrency.

Read more

Go logo

Java

Platform-independent client for enterprise applications and Android development.

Read more

Java logo

Node.js

Node.js® is an open-source, cross-platform JavaScript runtime environment.

Read more

Node.js logo

Python

Python is a programming language that lets you work quickly and integrate systems more effectively.

Read more

Python logo

Rust

Systems programming language focused on safety, speed, and concurrency.

Read more

Rust 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), including WebSocket variants for ingress and egress and a UDP variant for fire-and-forget metrics. 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.

See the Wire Protocols reference.

Next steps