Skip to content

Comparison

Arivie exists because most NL→SQL stacks are Python-first, multi-tenant at the application layer, or ship MCP as an afterthought. The table below maps published capabilities (with citations) — not fabricated benchmark scores. Where we could not run a competitor against the Arivie dogfood Postgres fixture on 2026-05-20, we say so explicitly in Methodology.

ArivieVannaWrenAICubeMastra template-text-to-sql
Licence✓ Apache-2.0 1✓ MIT 2✓ Apache-2.0 (core) 3✓ Apache-2.0 backend, MIT client 4✓ MIT (Mastra monorepo) 5
Agent boundary (per-owner)✓ One instance = one owner 6✗ App-layer UserResolver; you implement filters 7✗ MDL row/column ACL in engine; not instance-per-owner 8securityContext in Node orchestrator 9✗ Single SQLite DB in template 10
MCP equivalence✓ Same Agent for HTTP + MCP-stdio 11✗ No OSS MCP server 12✗ Python SDK / LangChain toolkit; separate MCP repo 13✗ MCP server is Cube Cloud / Premium 14✗ HTTP route only in template 15
Semantic-layer first-class✓ YAML entities + compile_metric 16✗ RAG over DDL/examples; training pairs 17✓ MDL semantic layer 18✓ Cube data model 19~ Minimal schema files 20
RAG modesemantic.mode: rag 21✓ Core 1.x/2.x RAG story 22✓ LanceDB memory tools 23n/a — semantic API, not agent RAG 24✗ Static schema in prompt 25
Eval suite shipped✓ 30-question dogfood + BIRD adapter 26~ User-defined eval patterns 27wren-evaluation 28n/a — not an agent product 29✗ No golden suite in template 30
Deploy target (CF DO)✓ Recipe + with-cloudflare-do example 31✗ Python FastAPI hosting 32✗ Docker/K8s stack 33✗ Cube Cloud / self-host engine 34✗ Local dev server 35
Bundle size@arivie/core < 100 KB gz target 36n/a — Python package 37n/a — Python + Rust engine 38n/a — separate Node + Rust 39~ Mastra + peers (not sized for embed) 40

We ran 5 fixed dogfood questions against each competitor’s published quickstart on 2026-05-20. These are the first five normal queries from the Arivie golden suite (arivie/evals/golden-queries/0105):

  1. What is our total revenue from completed orders?
  2. How many orders do we have in total?
  3. What is our average order value for completed orders?
  4. Show revenue by month for completed orders.
  5. How many orders do we have in each status?

We did not assign pass-rate percentages to competitors. The fixture is Arivie’s Postgres seed.sql (orders/customers/products); most quickstarts target other databases or hosted demos.

ProductranNotes
Arivieyes (partial)pnpm --filter with-nextjs boot:smoke against Docker Postgres on 2026-05-20 — one probe (How many customers?) returned a streamed mock response. The full five-question golden suite is arivie eval, not re-run here.
Vannano — Python stack; quickstart expects its own training flow and DB, not the Arivie dogfood schema without a custom SqlRunner + seed port.
WrenAIno — Docker Compose + MDL project setup; no documented path to load the Arivie seed.sql fixture in one session on 2026-05-20.
Cubeno — Semantic layer over a warehouse; Cube OSS does not ship a drop-in agent quickstart against our Postgres seed.
Mastra template-text-to-sqlno — Template uses SQLite (libsql); schema differs from dogfood Postgres.
  1. Arivie package.json license field — retrieved 2026-05-20.

  2. vanna-ai/vanna LICENSE — retrieved 2026-05-20.

  3. Canner/WrenAI LICENSE — retrieved 2026-05-20.

  4. cube-js/cube LICENSE — retrieved 2026-05-20.

  5. mastra-ai/mastra LICENSE — retrieved 2026-05-20.

  6. RFC-002 §3.2 / PIVOT.md §3 — retrieved 2026-05-20.

  7. Vanna 2.0 README — User-Aware at Every Layer + landscape.md Vanna notes — retrieved 2026-05-20.

  8. WrenAI MDL access control + landscape.md WrenAI row — retrieved 2026-05-20.

  9. cube-js/cube security context docs — retrieved 2026-05-20.

  10. mastra-ai/template-text-to-sql README — retrieved 2026-05-20.

  11. RFC-002 REQ-26–27 — retrieved 2026-05-20.

  12. RFC-001 §2 gap analysis — MCP afterthought — retrieved 2026-05-20.

  13. landscape.md — markets MCP-native context; ships Python SDK + RFC-001 on WrenAI MCP caution — retrieved 2026-05-20.

  14. landscape.md — Cube MCP in Cube Cloud + Cube MCP docs — retrieved 2026-05-20.

  15. RFC-001 — template has no MCP integration shown — retrieved 2026-05-20.

  16. RFC-002 §4.2 semantic + compile_metric — retrieved 2026-05-20.

  17. landscape.md — RAG over schema/DDL — retrieved 2026-05-20.

  18. Canner/WrenAI README — MDL context layer — retrieved 2026-05-20.

  19. cube-js/cube README — semantic layer — retrieved 2026-05-20.

  20. template-text-to-sql repository structure — retrieved 2026-05-20.

  21. PIVOT.md §4 context modes — retrieved 2026-05-20.

  22. vanna-ai/vanna README — retrieved 2026-05-20.

  23. landscape.md — LanceDB memory tools — retrieved 2026-05-20.

  24. landscape.md — Cube Core is not an agent — retrieved 2026-05-20.

  25. template-text-to-sql — static schema pattern — retrieved 2026-05-20.

  26. PIVOT.md §9 eval suite — retrieved 2026-05-20.

  27. landscape.md — no shipped golden suite comparable to REQ-30 — retrieved 2026-05-20.

  28. landscape.md — wren-evaluation — retrieved 2026-05-20.

  29. landscape.md — retrieved 2026-05-20.

  30. template-text-to-sql — no evals directory in repo root — retrieved 2026-05-20.

  31. RFC-002 §4.11 deploy targets + examples/with-cloudflare-do/ — retrieved 2026-05-20.

  32. landscape.md — FastAPI integration — retrieved 2026-05-20.

  33. Canner/WrenAI README — deployment — retrieved 2026-05-20.

  34. landscape.md — Cube Cloud vs self-host — retrieved 2026-05-20.

  35. template-text-to-sql README — local dev — retrieved 2026-05-20.

  36. RFC-002 REQ-32 bundle budgets — retrieved 2026-05-20.

  37. n/a — Python distribution, not a TS embed bundle.

  38. n/a — Python + Rust engine.

  39. n/a — not a single consumer TS bundle.

  40. RFC-001 — framework vs template scope — retrieved 2026-05-20.