Public beta

SQL that runs
at the edge.

A PostgreSQL-flavored query engine compiled to WebAssembly and deployed across a global edge network. No origin server. No cold starts. Queries execute at the node closest to your user.

deltex · edge-node-fra-01 · wasm-v2
$ deltex query --region fra

The query should run
where your users are.

Every database adds a round-trip. London to Virginia and back is 140ms before your query even parses. Deltex runs the executor at the PoP — the compute is already there.

No cold start

The Wasm module is pre-compiled and resident at every PoP. First request latency equals steady-state latency — there's no container to boot, no JIT to warm.

Reads from the nearest node

KV reads resolve at the PoP that received the request. A user in Singapore doesn't wait for Virginia.

Real SQL, not a lookup API

CTEs, window functions, lateral joins, JSON operators, grouping sets. The full parser and executor ship inside the binary.

No origin to expose

There's no database server on a public IP. The execution surface is a Wasm sandbox running inside an edge node.

How it works

The SQL executor is the edge node. The Wasm binary that parses and runs your query is deployed at the same PoP that terminates your TLS.

Your Application
POST /query · SQL in, JSON out
Edge Compute Runtime
Wasm binary · SQL parser · query planner · columnar engine · serializer
KV Store — globally replicated
IAD · ORD · LAXNorth America
LHR · FRA · AMSEurope
NRT · SIN · SYDAsia-Pacific
GRU · BOG · JNBEmerging

Each PoP runs an identical stateless Wasm executor. No origin server in the request path.

Full SQL. Inside the CDN.

The parser, planner, and executor ship inside the Wasm binary. No feature flags, no SQL subset.

SIMD bitmap scans

Wasm SIMD128 intrinsics evaluate predicates 128 bits at a time, so filtered columnar scans stay fast even on wide tables — all inside a sandboxed Wasm module.

wasm-simd128

Full PostgreSQL SQL

CTEs, recursive queries, window functions with PARTITION BY and frame specs, correlated subqueries, lateral joins, FILTER clauses. Not a subset — the actual grammar.

pg-compatible

100+ built-in functions

String, math, date/time, crypto (MD5, SHA256), JSON, array, regex, geospatial — compiled directly into the Wasm binary. Zero runtime dependencies.

no deps

JSON operators

-> and ->> arrow operators, JSON path extraction, and casts like (data->>'age')::int — evaluated inline, with JSON predicates supported directly in WHERE.

json

Plain HTTP API

POST /query with SQL in the body, JSON rows back. No custom protocol, no persistent connection, no driver install. Works from curl.

REST

Row-level security

CREATE POLICY ... USING (...) evaluated inside the executor before any row leaves storage. The policy check is not bypassable — it runs before the result set is built.

RLS

Get started

Get an API key

Sign in with your email at the console — we issue an API key instantly. No card required.

Create your schema

Define tables with standard SQL — CREATE TABLE, indexes, constraints, the lot.

Query from anywhere

Plain HTTP or an SDK. Queries route to the nearest edge node automatically.

shell
# Get a login code, then exchange it for an API key
curl -X POST https://ctrl.deltex.dev/v1/magic-key \
  -d '{"email":"you@example.com"}'

# Run your first query over plain HTTP
curl -X POST https://api.deltex.dev/v1/query \
  -H 'Authorization: Bearer dtx_k_your_key' \
  -d '{"sql":"SELECT 1 AS hello"}'
sql — schema.sql
CREATE TABLE events (
  id        BIGSERIAL PRIMARY KEY,
  user_id   UUID    NOT NULL,
  name      TEXT    NOT NULL,
  props     JSONB,
  ts        TIMESTAMPTZ DEFAULT now()
);

CREATE INDEX ON events (user_id, ts DESC);
typescript
import { createClient } from '@deltex/client'

const db = createClient({
  apiKey: process.env.DELTEX_API_KEY,
})

const rows = await db.query(`
  SELECT user_id,
         COUNT(*)                   AS total,
         MAX(ts)                    AS last_seen,
         props->>'plan'            AS plan
  FROM   events
  WHERE  ts > now() - INTERVAL '7 days'
  GROUP  BY user_id, plan
  ORDER  BY total DESC
  LIMIT  20
`)

Try it now.

Free tier. No credit card. POST /query from anywhere.