Skip to main content

A (de)serialization library for multidimensional arrays

Project description

seedee

A data format for n-dimensional arrays.

This project is in an early stage of development and should be used with caution

Installation

Python

Pre-built Python wheels can be installed via pip:

python3 -m pip install seedee

To build a wheel yourself, e.g., if your platform is not supported by the pre-built wheels, download the latest release and extract it. Inside the source directory, run:

$ cmake -S . -B build -DBUILD_PYTHON=ON -DCMAKE_BUILD_TYPE=Release
$ cmake --build build --target python-wheel --verbose

Building requires cmake version 3.13 or newer.

If everything works, the wheel is created in the build/python/dist/ subdirectory and can be installed via pip.

C/C++

To build and install the C/C++ libraries, run:

$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=path/to/install/dir
$ cmake --build build --target seedee --verbose
$ cmake --install build

Building requires cmake version 3.13 or newer.

Usage example

Python

import numpy as np
import seedee

# Create a numpy array of some dimension, shape, and dtype
array = np.arange(48).reshape((6, 8)).astype("uint16")

# Serialize the array using the bitshuffle+lz4 compression method
buffer, meta = seedee.serialize(array, seedee.COMPRESSION_BITSHUFFLE)
# buffer is a 1D numpy array of type uint8
# meta is a string

# Send buffer and meta to a remote process using any preferred method,
# e.g., via a ZMQ multi-message
...

# Deserialize the received buffer and meta into a numpy array
new_array = seedee.deserialize(buffer, meta)

# The resulting array is equal to the original array
assert np.all(array == new_array)

C/C++

See test directory for some examples. Note that the C/C++ interface will likely change in the future.

Limitations

Only arrays up to 1GB are supported.

Development

Use the following commands to compile seedee and run the tests:

cmake -S . -B build -DBUILD_PYTHON=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build --target all --verbose
ctest --test-dir build -T test --output-on-failure

Contribution

Please feel free to open issues or pull requests.

Acknowledgments

seedee depends on multiple open source libraries that are included in this repository under the thirdparty directory for convenience. The licenses of these dependencies can be found in the corresponding subdirectories and in LICENSE_THIRDPARTY.txt.

The chunk serializer implementations are based on the corresponding HDF5 filter plugins which are subject to their own licenses:

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

seedee-0.3.1.tar.gz (12.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

seedee-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (803.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

seedee-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

seedee-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (767.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

seedee-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (770.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

seedee-0.3.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (744.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

seedee-0.3.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (687.3 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

seedee-0.3.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (677.8 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

File details

Details for the file seedee-0.3.1.tar.gz.

File metadata

  • Download URL: seedee-0.3.1.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.2

File hashes

Hashes for seedee-0.3.1.tar.gz
Algorithm Hash digest
SHA256 690b7dd12299c5463e237aa2a0c79534f6300588d6d66ee6141aa7e06e9c569c
MD5 fb857bfb67cc574e06516e0d4b873845
BLAKE2b-256 779275a9c99d5efbb81b761082447bc13f66540fb52471a56986f1ab41d1dde6

See more details on using hashes here.

File details

Details for the file seedee-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for seedee-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0949db629c00e0e5f8d0502e957716aa5f5dc65bb3da49342f5b54870406731b
MD5 4b3f43a4c32175ab322f9c298d8060d1
BLAKE2b-256 01ee8e7ba58902a872d1541abfd69861238426319cb856de3661e5d108b3fe0d

See more details on using hashes here.

File details

Details for the file seedee-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for seedee-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 968bb655250eb6e8d3965ed57a97ecfd00de281b9725834261d183da017d5a66
MD5 edccec58f230ad0fedec721e2c5f72b5
BLAKE2b-256 3c263ca7baf57533d0d8ffd78252b01d754ea39f2bd0cc7754948831af1c439f

See more details on using hashes here.

File details

Details for the file seedee-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for seedee-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de6cb368f4aa46d2190d18007fcb6285ed61e49ef18175bfa5ba3096f74a5874
MD5 940511e0899ea6f3d4c1df30de0f4d5f
BLAKE2b-256 bc026cf34e606ad09bcfcf9b92422a52eb7d29e8428d991e33089bb64da7b83d

See more details on using hashes here.

File details

Details for the file seedee-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for seedee-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 847ab1652ae0cd77668812186c37bb770e22f294330d4f9f660ded200b0d1cb1
MD5 ee5652bf8a07ff903d159f925f188094
BLAKE2b-256 d024a31c15cd770994c16bb095714b50cd38493ee4e92fb3dca5adebf5c8564f

See more details on using hashes here.

File details

Details for the file seedee-0.3.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for seedee-0.3.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 da1c495ecb6d566ee1fd2e678096df67c9003d9ef7f30a4bacbb035054a8b586
MD5 1784aba5e7cc94f787b2acd67489d7d2
BLAKE2b-256 39fa532fd4d9a68fc17ac0227eae7c5b9349a7f8a87726b1e2b494d1f2a4494d

See more details on using hashes here.

File details

Details for the file seedee-0.3.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for seedee-0.3.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 481f55c2fff0268367f29e4a2631659b17f8d6174a3e515e2b81a0ab8b491a4e
MD5 21a4617586f795387d0f18e8a8a3310c
BLAKE2b-256 a3fcb9f2ba1751e841d6095942734e58ca038855a13a5344b421ab8aca4313c6

See more details on using hashes here.

File details

Details for the file seedee-0.3.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for seedee-0.3.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 124b3bc45d1b4fc4e8e2561132235ed007fdfc499c09dc6fe6a6709d16420dca
MD5 5fe9312c3f74c7b4be4488f11c95d204
BLAKE2b-256 061c578840b07ec8b956fd21ae5ca7628c897520f25d0f51e539b37a4c836111

See more details on using hashes here.

Supported by

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