Features
Client-driven field selection over REST — SQL-native, signed transport, browser-ready SDK.
Client shapes the response
JSON or QL queries travel in X-Mesh-Query headers. @meshql/client encodes and signs them — in Node or the browser.
JoinPlan drives your SQL
plan.fields and plan.joins contain only what the client requested — fetch less, ship less.
Flat rows → nested JSON
Return SQL rows with aliased columns. MeshQL's shaper builds the nested response automatically.
List queries
Pagination, filters, and ordering via $list in the signed payload — not URL query strings.
Request integrity
@meshql/integrity — HMAC-signed queries, login tokens, and tamper detection on every read.
Access control
@meshql/access — field-level, row-level, and entity rules applied in the query pipeline.
Native uploads
@meshql/upload — multipart files with contentHash verification. Local, S3, or R2 storage.
ORM adapters (v0.6.0)
@meshql/prisma, @meshql/drizzle, and @meshql/kysely — one catch-all resolver per stack. You keep your existing DB client.
Drop into your stack
Express, Fastify, Hono on Node, Bun, or Deno. Raw SQL builders plus Prisma, Drizzle, and Kysely.
HTTP routes
GET /mesh/:entity List — signed query in headers
GET /mesh/:entity/:id Single resource
POST /mesh Complex query in body
POST /mesh/auth Login (integrity) → signing token
POST /mesh/:entity/:id/:field Multipart file upload
POST /mesh/:entity Multipart upload (create)
Full reference: Protocol specs · HTTP adapters · ORM adapters · Showcase · Prisma example