Query Graph data. Right in your browser.

duckgql.com · 2026-08-04 · by Long Nguyen ·generic
Explore property graphs locally in your browser with DuckGQL and DuckDB-Wasm.

Query Graph data.

Right in your browser.

DuckDB meets graph query language

Query Graph data. Right in your browser.

A zero-install graph playground powered by DuckDB, DuckGQL, and WebAssembly. Your queries and data stay on your device.

No setup Local execution Real DuckGQL

DuckGQL Console

In-memory DuckDB 1.5.5 Wasm EH

Guided demo Select a step, then use Copy command when you are ready

1Create graph 2Load graph 3Run query 4Build CSR 5Run PageRank 6More queries

1 · Create graph

Ready to copy Copy command

DROP GRAPH IF EXISTS air_routes;
CREATE GRAPH air_routes ANY;

Mobile editor Write and run DuckGQL

⌘/Ctrl + Enter to run

DuckGQL query

Run query Clear Waiting for DuckDB

Results will appear here.

Preparing your graph workspace

The first load downloads the WebAssembly runtime

!

DuckGQL could not start

The console returned the following error:

Keep exploring

More Air Routes queries to try

Complete Create graph and Load graph first. Build CSR before running the algorithm examples. Then copy a query, paste it into the console or mobile editor, and run it.

01 · FILTER + SORT

Longest routes from Atlanta

Copy

Find the ten farthest direct destinations served from ATL.

MATCH (origin:airport)-[route:route]->(destination:airport)
WHERE origin.code = 'ATL'
RETURN destination.code AS destination,
       destination.city AS city,
       route.dist AS miles
ORDER BY miles DESC
LIMIT 10;

02 · PROPERTY FILTERS

Routes from the US to Japan

Copy

Compare the longest direct airport pairs between two countries.

MATCH (origin:airport)-[route:route]->(destination:airport)
WHERE origin.country = 'US'
  AND destination.country = 'JP'
RETURN origin.code AS origin,
       destination.code AS destination,
       route.dist AS miles
ORDER BY miles DESC
LIMIT 10;

03 · TWO-HOP PATH

Connect Atlanta to London

Copy

Discover airports that connect ATL to LHR with one stop.

MATCH (origin:airport)-[:route]->(connection:airport)-[:route]->(destination:airport)
WHERE origin.code = 'ATL'
  AND destination.code = 'LHR'
RETURN connection.code AS connection,
       connection.city AS city
ORDER BY connection
LIMIT 20;

04 · AGGREGATION

Busiest airports by routes

Copy

Group route matches to rank airports by outbound connections.

MATCH (origin:airport)-[:route]->(destination:airport)
RETURN origin.code AS airport,
       COUNT(*) AS outbound_routes
GROUP BY origin
ORDER BY outbound_routes DESC
LIMIT 10;

05 · PAGERANK

Most influential airports

Copy

Rank airports by their importance in the global route network.

CALL algo.pagerank(
    'air_routes',
    damping := 0.85,
    max_iterations := 100,
    tolerance := 1e-8
)
YIELD code, city, country, rank
RETURN code, city, country, rank
ORDER BY rank DESC
LIMIT 10;

06 · DEGREE CENTRALITY

Best-connected airports

Copy

Compare inbound, outbound, and total direct connectivity.

CALL algo.degree(
    'air_routes',
    vertex_label := 'airport'
)
YIELD code, city, country, out_degree, in_degree, total_degree
RETURN code, city, country, out_degree, in_degree, total_degree
ORDER BY total_degree DESC, code ASC
LIMIT 10;

07 · TRIANGLE COUNT

Airports inside dense route clusters

Copy

Find airports participating in the most closed three-airport routes.

CALL algo.triangle_count(
    'air_routes',
    vertex_label := 'airport'
)
YIELD code, city, country, triangle_count, degree,
      local_clustering_coefficient
RETURN code, city, country, triangle_count, degree,
       local_clustering_coefficient
ORDER BY triangle_count DESC, code ASC
LIMIT 10;

08 · STRONGLY CONNECTED COMPONENTS

Largest mutually reachable route regions

Copy

Summarize each mutually reachable airport region once, largest first.

CALL algo.scc(
    'air_routes',
    vertex_label := 'airport'
)
YIELD component_id, component_size
RETURN DISTINCT component_id, component_size
ORDER BY component_size DESC
LIMIT 20;

Air-routes sample

3,749 vertices and 57,645 routes

ATL

Atlantaairport · US-GA

ROUTE

AUS

Austinairport · US-TX

01

Runs locally

The database engine and graph extension execute in a dedicated Web Worker on your device.

02

Built for the web

The same DuckGQL C++ extension is cross-compiled into a portable WebAssembly module.

About the developer

Rahul Iyer

Developer of DuckGQL, bringing graph query language support and graph analytics to DuckDB.

Emailiyer.rahul100@gmail.com GitHub@rahul-iyer LinkedInRahul Iyer ProjectDuckGQL source

duckgql.com · 6 links

Comments (0)

No comments yet