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.
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.
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.
KV reads resolve at the PoP that received the request. A user in Singapore doesn't wait for Virginia.
CTEs, window functions, lateral joins, JSON operators, grouping sets. The full parser and executor ship inside the binary.
There's no database server on a public IP. The execution surface is a Wasm sandbox running inside an edge node.
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.
Each PoP runs an identical stateless Wasm executor. No origin server in the request path.
The parser, planner, and executor ship inside the Wasm binary. No feature flags, no SQL subset.
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-simd128CTEs, recursive queries, window functions with PARTITION BY and frame specs, correlated subqueries, lateral joins, FILTER clauses. Not a subset — the actual grammar.
String, math, date/time, crypto (MD5, SHA256), JSON, array, regex, geospatial — compiled directly into the Wasm binary. Zero runtime dependencies.
-> and ->> arrow operators, JSON path extraction, and casts like (data->>'age')::int — evaluated inline, with JSON predicates supported directly in WHERE.
POST /query with SQL in the body, JSON rows back. No custom protocol, no persistent connection, no driver install. Works from curl.
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.
Sign in with your email at the console — we issue an API key instantly. No card required.
Define tables with standard SQL — CREATE TABLE, indexes, constraints, the lot.
Plain HTTP or an SDK. Queries route to the nearest edge node automatically.
# 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"}'
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);
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 `)