Skip to main content

DEKER™

image

PyPI version shields.io PyPI pyversions GitHub license codecov Code style: black

DEKER™ is pure Python implementation of petabyte-scale highly parallel data storage engine for multidimensional arrays.

DEKER™ name comes from term dekeract, the 10-cube.

DEKER™ was made with the following major goals in mind:

  • provide intuitive interface for storing and accessing huge data arrays
  • support arbitrary number of data dimensions
  • be thread and process safe and as lean on RAM use as possible

DEKER™ empowers users to store and access a wide range of data types, virtually anything that can be represented as arrays, like geospacial data, satellite images, machine learning models, sensors data, graphs, key-value pairs, tabular data, and more.

DEKER™ does not limit your data complexity and size: it supports virtually unlimited number of data dimensions and provides under the hood mechanisms to partition huge amounts of data for scalability.

Features

  • Open source under GPL 3.0
  • Scalable storage of huge virtual arrays via tiling
  • Parallel processing of virtual array tiles
  • Own locking mechanism enabling virtual arrays parallel read and write
  • Array level metadata attributes
  • Fancy data slicing using timestamps and named labels
  • Support for industry standard NumPy, Xarray
  • Storage level data compression and chunking (via HDF5)

Code and Documentation

Open source implementation of DEKER™ storage engine is published at

API documentation and tutorials for the current release could be found at

Quick Start

Dependencies

Minimal Python version for DEKER™ is 3.10. Supported versions are 3.10 - 3.14.

Note: Python 3.9 is not supported since DEKER™ 1.2.0 (the same applies to deker-tools, deker-local-adapters, deker-server-adapters and deker-shell 1.2.0). If you are on Python 3.9, use deker<1.2.

DEKER™ depends on the following third-party packages:

  • numpy >= 1.26 (NumPy 2 is supported)
  • attrs >= 23.1.0
  • tqdm >= 4.64.1
  • psutil >= 5.9.5
  • h5py >= 3.11
  • hdf5plugin >= 4.0.1

Also please note that for flexibility few internal DEKER™ components are published as separate packages:

Install

To install DEKER™ run:

pip install deker

Please refer to documentation for advanced topics such as running on Apple silicone or using Xarray with DEKER™ API.

First Steps

Now you can write simple script to jump into DEKER™ development:

from deker import Client, ArraySchema, DimensionSchema, TimeDimensionSchema
from datetime import datetime, timedelta, timezone
import numpy as np

# Where all data will be kept
DEKER_URI = "file:///tmp/deker"

# Define 3-dimensional schema with to numeric and one time dimension
dimensions = [
   DimensionSchema(name="y", size=128),
   DimensionSchema(name="x", size=128),
   TimeDimensionSchema(
      name="forecast_dt",
      size=128,
      start_value=datetime.now(timezone.utc),
      step=timedelta(3),
   )
]

# Define array schema with float dtype and dimensions
array_schema = ArraySchema(dtype=float, dimensions=dimensions)

# Instantiate client using context manager
with Client(DEKER_URI) as client:
   # Create collection
   collection = client.create_collection("my_collection", array_schema)
   
   # Create array
   array = collection.create()
   
   # Write some data
   array[:].update(np.ones(shape=array.shape))
   
   # And read the data back
   data = array[:].read()

Metadata

Release files for deker 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for deker 1.2.0
File Size Uploaded Provenance Actions
deker-1.2.0.tar.gz 78.7 kB With provenance Details for deker-1.2.0.tar.gz

Release files / deker-1.2.0.tar.gz

Download URL deker-1.2.0.tar.gz
Size 78.7 kB
Tags Source
SHA-256 checksum
How to use checksums
20bcd229e1ad49f35d6871c9e8fb39fba549328f28dc75a04b41c8c7022d77b4
BLAKE2b-256 checksum
How to use checksums
59025c0a54d3ba2c022e748c4263affabc54a33b7ff88f43e6c9465a4610e9c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

Security for deker 1.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

1 file in this release has been uploaded with provenance metadata.

Attestation for deker-1.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page