• Experimental

    Build a resolver for createDataset({ resolveSource }) that handles protocol: "geoparquet" descriptors, sharing one GeoparquetRuntime (one DuckDB worker) across every geoparquet source in the dataset — the NFR-001 "single shared worker per client" contract.

    Parameters

    Returns GeoparquetResolver

    import { createDataset } from "@honua/sdk-js/contract";
    import { geoparquetResolver } from "@honua/sdk-js/geoparquet";

    const geoparquet = geoparquetResolver();
    const dataset = createDataset({
    id: "overture",
    client,
    capabilityPolicy: "degraded",
    resolveSource: geoparquet,
    sources: [{
    id: "places",
    protocol: "geoparquet",
    locator: { url: "https://example.com/overture/places.parquet" },
    capabilities: PROTOCOL_DEFAULT_CAPABILITIES.geoparquet,
    }],
    });
    const places = dataset.source("places")!;
    const result = await places.query({ spatialFilter: envelope(-158.5, 21.2, -157.6, 21.7) });
    // ...later:
    await geoparquet.dispose();