sparrowflight · demo · js
Arrow Flight. In your browser. Live.
Pick a series — and pick an engine. Your browser opens an Apache Arrow Flight SQL connection over gRPC-web to your choice of three servers — Sparrow (Python), GizmoSQL (C++) or ROAPI (Rust) — all serving the same 2.8-million-series, 136-million-row lake. The browser receives Arrow record batches, renders the chart, and computes the statistics. No REST. No JSON. No backend.
Sparrow Python GizmoSQL C++ ROAPI Rust one lake · three engines
or write SQL → race it vs REST+JSON →
idle — pick a series and hit Run

The catalog, by source

One GROUP BY over the whole catalog, live

loading…
One chart pays the connection overhead for one series — the plan, the first batch. Batching pays it once for all ten: a single Flight SQL call, split into charts client-side. Run it both ways and compare.
race it vs REST+JSON →
ten series, full history — one Flight SQL call vs ten
the code this page is running (npm install @sparrowflight/js · open source) const flight = createSparrowClient({ endpoint: "/flight", user: "demo" });

const { table } = await flight.query(`
  SELECT period, value FROM series_data
  WHERE series_id = 'PET.RWTC.D'
`
);

draw(table); // Arrow columns, zero-copy typed arrays
your browser
sparrowJS
gRPC-web
Apache Arrow Flight
GizmoSQL
Vortex · Arrow · Parquet
The client is sparrowJS — the browser client for Apache Arrow Flight. Swap the top box and nothing else changes: Excel rides sparrowXL, the terminal rides sparrowCLI, AI agents ride sparrowMCP — same wire, same server. Demo access is read-only under the public demo key.
sparrowflight.io · bigger: 100 charts, one call → · 2026