datapress-core 0.4.11

Backend-agnostic core types, config, routing, and HTTP handlers for the datapress dataset server.
Documentation

datapress-core

Backend-agnostic core for datapress — a Rust workspace that exposes Parquet / Delta datasets over a JSON HTTP API.

Overview presentation · Documentation

This crate holds the pieces shared by every backend:

  • Configuration model (datasets.toml parsing, server/auth/docs/swagger/metrics blocks).
  • The Backend trait and request/response models (QueryRequest, predicates, aggregation plans).
  • Centralized AppError with HTTP status mapping.
  • actix-web routing and v1 handlers, plus optional Swagger UI, Prometheus metrics, and OIDC auth (all feature-gated).

It is consumed by the backend crates datapress-duckdb and datapress-datafusion; you typically depend on one of those rather than on this crate directly.

Features

Feature Effect
duckdb Enables the DuckDB From error conversions.
datafusion Enables the Arrow/Parquet/DataFusion From error conversions.
docs Embed and serve the MkDocs site.
swagger Embed Swagger UI + OpenAPI spec.
metrics Expose a Prometheus /metrics endpoint.
auth OIDC bearer-token authentication + scope enforcement.
explorer Embed and serve the browser explorer UI at /explore.

Note: The explorer's API Query tab decodes Arrow IPC responses in the browser using a vendored Apache Arrow JS bundle. We currently build this bundle from source (apache/arrow-js, pinned commit) rather than using a published apache-arrow npm release, because DataFusion emits Utf8View for Parquet string columns and Utf8View/BinaryView read support (apache/arrow-js#320) is merged on main but not yet in any published release. See the docs:vendor-arrow task. Bump the pinned commit to a release once one ships including #320.

License

MIT — see LICENSE.