@gscdump/engine
v2.0.5
Published
Append-only Parquet/DuckDB storage engine + planner + adapters for the gscdump pipeline. Node + edge runtimes; opt-in heavy peers.
Readme
@gscdump/engine
Append-only Parquet/DuckDB storage engine + planner + adapters for the gscdump pipeline. Node + edge runtimes; opt-in heavy peers.
Owns the storage runtime, planner, schema, and adapters that were previously bundled into gscdump. Edge consumers stay on gscdump; anything that needs to read/write Parquet, run the DuckDB executor, or attach a snapshot lives here.
Install
npm install @gscdump/engineOptional peers (install only what your runtime needs):
@duckdb/duckdb-wasm— DuckDB-WASM executor (browser + node-blocking shim).hyparquet,hyparquet-writer— pure-JS Parquet codec for environments without a native build.
Subpath exports
| Subpath | Purpose |
|---|---|
| @gscdump/engine | Storage runtime: createStorageEngine, codec/executor factories, storage contracts. |
| @gscdump/engine/contracts | StorageEngine, Row, TableName, WriteCtx, ManifestEntry, ... |
| @gscdump/engine/schema | SCHEMAS, allTables, inferTable, column metadata. |
| @gscdump/engine/planner | resolveToSQL, enumeratePartitions, partition planning. |
| @gscdump/engine/ingest | GSC row → storage row helpers (createRowAccumulator, transformGscRow). |
| @gscdump/engine/ingest-accumulator | Stateful ingest flushing behind injected storage and recovery hooks. |
| @gscdump/engine/sql | SQL literal binding helpers (bindLiterals, formatLiteral). |
| @gscdump/engine/sql-fragments | Reusable SQL fragments shared across analyzers. |
| @gscdump/engine/rollups | Pre-aggregated rollup contracts + helpers. |
| @gscdump/engine/entities | Parquet-backed entity stores and their record contracts. |
| @gscdump/engine/entity-keys | Pure entity object-key and URL-hash helpers, with no Parquet runtime. |
| @gscdump/engine/resolver | Dialect-neutral SQL composition: ResolverAdapter, pgResolverAdapter, resolveToSQL. |
| @gscdump/engine/scope | Multi-tenant scope predicates. |
| @gscdump/engine/arrow | Apache Arrow utilities for engine result conversion. |
| @gscdump/engine/node | Node-only DuckDB handle. |
| @gscdump/engine/filesystem | Node-only DataSource + ManifestStore adapters. |
| @gscdump/engine/hyparquet | Pure-JS ParquetCodec. |
| @gscdump/engine/r2 | Cloudflare R2 DataSource (structurally typed against R2Bucket). |
| @gscdump/engine/iceberg | Edge-safe GSC dataset schemas, catalog wrappers, and append sink. Generic Iceberg APIs live in @gscdump/lakehouse. |
| @gscdump/engine/sink-node | Node-only Iceberg overwrite/delete recovery writer. |
| @gscdump/engine/source | Query-source contracts and factories. |
Stability
| Surface | Stability |
|---|---|
| createStorageEngine and storage contracts (StorageEngine, Row, WriteCtx, ...) | Public |
| Adapters (/node, /filesystem, /hyparquet, /r2, /r2-manifest) | Public |
| Planner (resolveToSQL, enumeratePartitions) | Public |
| Schema (SCHEMAS, allTables, ...) | Public |
| Internals reached through @gscdump/engine/<file> paths not listed above | Private — may break between minors |
Related
gscdump— REST client + query builder (edge-safe peer dep).@gscdump/analysis— analyzers; consumes storage throughAnalysisQuerySourceadapters.@gscdump/engine-duckdb-wasm— DuckDB-WASM browser adapter.@gscdump/engine-sqlite— SQLite / D1 adapter.@gscdump/lakehouse— dataset-agnostic Iceberg catalog and dataset registry APIs.@gscdump/cli— CLI wrapping engine + analysis.
