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:
- LZ4 filter plugin: https://github.com/nexusformat/HDF5-External-Filter-Plugins/blob/master/LZ4/COPYING
- bitshuffle filter plugin: https://github.com/kiyo-masui/bitshuffle/blob/master/LICENSE
- zlib filter plugin: https://github.com/HDFGroup/hdf5/blob/develop/COPYING
Metadata
Release files for seedee 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| seedee-0.3.2.tar.gz | 13.1 kB | Without provenance | Details for seedee-0.3.2.tar.gz |
Built distributions (wheels)
Total release size: 6.6 MB
Release files / seedee-0.3.2.tar.gz
| Download URL | seedee-0.3.2.tar.gz |
|---|---|
| Size | 13.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba8e74c5fae2d79bf2654d9b811af296cba22862b8f726644c560fccaec4bc01
|
|
BLAKE2b-256 checksum How to use checksums |
f25c73253030dd99c7f3cd64ea56b12af957d60e29bd6f7e7d89abbd597d8054
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | seedee-0.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 755.4 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bf141a3dfaf38403debd1f5eb925692e56dfe68d1f98a8678b44636139a09c41
|
|
BLAKE2b-256 checksum How to use checksums |
3482d41c6eeb4da5d265acdd09baeeb73a5fb04ac8f30bb8a008646f4024574a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | seedee-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 750.5 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
455aafd3c68650ea4d74d2b11934d62295f763f1c375378d60f0ff93ef5f5313
|
|
BLAKE2b-256 checksum How to use checksums |
cf6412052e386d95dd1c8c1f392ee9fff7551b1734614ff5dd48b3de1fe4b368
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | seedee-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 755.8 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b33779922b07aac2502580b70def7b1a544aa960787fe9bc0a618fd71ff00d40
|
|
BLAKE2b-256 checksum How to use checksums |
6d2d93d15ec04df3087f572f921297909f91b1fd42431e46b00670838fff6ea3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | seedee-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 770.5 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
345f4dbac69b726863306e9cea7e14409bb87174dd7fd144c5d997142cb0c231
|
|
BLAKE2b-256 checksum How to use checksums |
0e848a67920d81e75b2bf8999027926485f3eaa391606ba533555c9867a3fdb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | seedee-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 744.9 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d99f20eb4117e9ce6c5d288ccc9b9235c6d91e210f93887f3b71d7ffeef7f9ec
|
|
BLAKE2b-256 checksum How to use checksums |
74f30094b4c5e13923072788b232ee82043cc4fcd405fa75a52af9ea46f07181
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | seedee-0.3.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 742.9 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b190dbe5eac42162cf276feadf0e9af4e6ba7fcba5a1ad33248d22e3ea1a068a
|
|
BLAKE2b-256 checksum How to use checksums |
e7c1cf2939105c3845b664456d4eff5bf25179c2b18d1d8e82028cf9a1e6cbb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | seedee-0.3.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 746.5 kB |
| Tags | CPython 3.8 Linux glibc 2.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
3f0cac72f80b76f77968b575d11591154e9de8bf734784e6778ac71d77df464e
|
|
BLAKE2b-256 checksum How to use checksums |
ba5b26c1619ad2091dbcf1675f424fdd04476caf94824bfb70f4bc8b6f648fb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | seedee-0.3.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 688.2 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
02bd07108084c9ae6e01fbf346b5c8f9bb312e7494d9cf48285eac8712c640e7
|
|
BLAKE2b-256 checksum How to use checksums |
792c13ee36bcb98d5fb8346f45484ffe9e0d360b8d49c74c1e6e3af17c8b5550
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / seedee-0.3.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | seedee-0.3.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 679.1 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
98207e113f940a99ec7e00a062b73ffb699bcb85857a54e478ff2a31cd0b1efc
|
|
BLAKE2b-256 checksum How to use checksums |
ca43cb96263aff036e2383894201aa8d52e1d600429932f57aa0dc2e239fd26b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for seedee 0.3.2
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.