Skip to main content

Publish Xarray Datasets via a REST API.

Project description

Publish Xarray Datasets via a REST API.

GitHub Workflow Status Documentation Status Binder https://codecov.io/gh/xarray-contrib/xpublish/branch/main/graph/badge.svg pre-commit.ci status

Serverside: Publish a Xarray Dataset through a rest API

ds.rest.serve(host="0.0.0.0", port=9000)

Client-side: Connect to a published dataset

The published dataset can be accessed from various kinds of client applications. Here is an example of directly accessing the data from within Python:

import xarray as xr
import zarr
from fsspec.implementations.http import HTTPFileSystem

fs = HTTPFileSystem()
http_map = fs.get_mapper("http://0.0.0.0:9000")

# open as a zarr group
zg = zarr.open_consolidated(http_map, mode="r")

# or open as another Xarray Dataset
ds = xr.open_zarr(http_map, consolidated=True)

Why?

Xpublish lets you serve/share/publish Xarray Datasets via a web application.

The data and/or metadata in the Xarray Datasets can be exposed in various forms through pluggable REST API endpoints. Efficient, on-demand delivery of large datasets may be enabled with Dask on the server-side.

We are exploring applications of Xpublish that include:

  • publish on-demand or derived data products

  • turning xarray objects into streaming services (e.g. OPeNDAP)

How?

Under the hood, Xpublish is using a web app (FastAPI) that is exposing a REST-like API with builtin and/or user-defined endpoints.

For example, Xpublish provides by default a minimal Zarr compatible REST-like API with the following endpoints:

  • .zmetadata: returns Zarr-formatted metadata keys as json strings.

  • var/0.0.0: returns a variable data chunk as a binary string.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xpublish-0.3.0.tar.gz (56.4 kB view details)

Uploaded Source

Built Distribution

xpublish-0.3.0-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file xpublish-0.3.0.tar.gz.

File metadata

  • Download URL: xpublish-0.3.0.tar.gz
  • Upload date:
  • Size: 56.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for xpublish-0.3.0.tar.gz
Algorithm Hash digest
SHA256 90a0eff3362b8c573d707ee4e469d720d7abdcce2b2b9f6fa44951e6f312439e
MD5 394d152ce0d13ecb5066f85b5ef48803
BLAKE2b-256 d980b892d7bb10d9ea1f48598f6846f13fd68e33dba234965e78b2a88e0c9845

See more details on using hashes here.

File details

Details for the file xpublish-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: xpublish-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for xpublish-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 538a0a843c6dbf9f0b6f9bd066be5292e877b92f9d83f9061c8d1a0dc0d1887e
MD5 8e0f7eb443534acd1ffbb9a438efb863
BLAKE2b-256 6c32c5e1eff90bd54f5f60d631399098f05609ef735724e066fdb1e42cac9693

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page