Changelog

What shipped and when. No marketing, just the actual changes.

v0.61.0 May 2026 Latest

API / Engine workspace split

Deltex is now split into two independent Fastly Compute services — a thin public API layer and an internal engine layer. This improves isolation, enables independent deployments, and adds a sentinel header to prevent direct engine access.

  • New Separate deltex-api and deltex-engine Cargo workspace crates
  • New X-Deltex-Internal: 1 sentinel header — engine rejects all unauthenticated requests with 403
  • New GET /bench benchmarking endpoint on API layer
  • New FNV-1a cache key hashing for /*+ CACHE(TTL=N) */ hint
  • Perf API layer strips hint comments before forwarding to engine — reduced engine parse cost
  • Fix Multi-statement splitting now correctly handles semicolons inside string literals
  • Fix Cache fallback path now correctly forwards clean SQL on miss
v0.60.0 Apr 2026

Window functions & recursive CTEs

Full window function support with PARTITION BY, ORDER BY within frames, and all 15 window functions. Recursive CTEs now handle arbitrary depth with cycle detection.

  • New RANK(), DENSE_RANK(), NTILE(n), PERCENT_RANK(), CUME_DIST()
  • New LAG(expr, offset, default) and LEAD(expr, offset, default)
  • New FIRST_VALUE(), LAST_VALUE(), NTH_VALUE()
  • New Aggregate windows: SUM/AVG/COUNT/MIN/MAX OVER (...)
  • New WITH RECURSIVE with cycle detection via CYCLE clause
  • New ROWS BETWEEN and RANGE BETWEEN window frame specs
  • Perf Window frame evaluation now reuses sorted partition arrays — 3× faster on large result sets
  • Fix PARTITION BY with NULL values now groups correctly
v0.59.0 Mar 2026

SIMD128 columnar engine

Complete rewrite of the storage scan layer using Wasm SIMD128 intrinsics. Bitmap-based predicate evaluation now processes 128 bits per instruction, substantially speeding up filtered scans.

  • New Columnar storage engine (columnar.rs, 2,644 lines)
  • New SIMD128 bitmap scan — v128.and, v128.or, i32x4 predicate evaluation
  • New Bloom filters for IN (…) membership — skip full scan for non-matching keys
  • New +bulk-memory Wasm feature for fast column memcpy
  • New +relaxed-simd for approximate float operations on SIMD lanes
  • Perf Bitmap predicate scans now evaluate 128 bits per instruction via SIMD128 (was a scalar loop)
  • Perf COUNT(*) on large tables 8× faster via popcount on bitmap words
  • Breaking KV serialization format changed from JSON to MessagePack (0xEE magic prefix). Auto-migration on first read.
v0.58.0 Feb 2026

JSON operators & JSONB support

PostgreSQL-style JSON access operators, a JSONB column type, and a broad set of JSON scalar functions. JSON path queries execute inline without serialization overhead.

  • New -> (object field by key) and ->> (field as text) operators
  • New Path extraction via JSON_EXTRACT / JSONB_EXTRACT_PATH; containment via JSON_CONTAINS / JSON_OVERLAPS
  • New JSON_EACH, JSON_TABLE, JSON_KEYS, JSON_VALID, JSON_TYPE
  • New JSONB column type — stored as MessagePack, queried via operators
  • New JSON_OBJECT, JSON_ARRAY construction functions
  • New Array functions: ARRAY_APPEND, ARRAY_CAT, ARRAY_DISTINCT, UNNEST
  • Fix NULL propagation through JSON operators now matches Postgres behaviour
  • Fix Array subscript out-of-bounds now returns NULL instead of error