Skip to main content

zfex — efficient, portable erasure coding tool
================================================

Generate redundant blocks of information such that if some of the blocks are
lost then the original data can be recovered from the remaining blocks. This
package includes command-line tools, C API, Python API, and Haskell API.

|build| |test-intel| |test-arm| |haskell-api| |unit-tests| |tools| |pypi|

|intel-benchmark|

Intro and Licence
-----------------

This package implements an "erasure code", or "forward error correction
code".

You may use this package under the GNU General Public License, version 2 or,
at your option, any later version. You may use this package under the
Transitive Grace Period Public Licence, version 1.0 or, at your option, any
later version. (You may choose to use this package under the terms of either
licence, at your option.) See the file COPYING.GPL for the terms of the GNU
General Public License, version 2. See the file COPYING.TGPPL.rst for the
terms of the Transitive Grace Period Public Licence, version 1.0.

The most widely known example of an erasure code is the RAID-5 algorithm
which makes it so that in the event of the loss of any one hard drive, the
stored data can be completely recovered. The algorithm in the zfec package
has a similar effect, but instead of recovering from the loss of only a
single element, it can be parameterized to choose in advance the number of
elements whose loss it can tolerate.

This package is a fork of ``zfec`` library, which is largely based on
the old "fec" library by Luigi Rizzo et al.,
which is a mature and optimized implementation of erasure coding. The ``zfex``
package makes several changes from the original ``zfec`` package, including
new C-based benchmark tool and a new SIMD-friendly API.


Installation
------------

Python
......

``pip install zfex``

To run the self-tests, execute ``tox`` from an unpacked source tree or git checkout.

To install ``zfex`` built with custom compilation flags, execute:

``CFLAGS="-O3" pip install git+https://github.com/WojciechMigda/zfex.git``

If ``zfex`` is already cloned locally, then custom compiler flags can be passed to ``setup.py`` to install ``zfex`` like follows:

``CFLAGS="-O3" python setup.py install``

In similar manner, one can override compiler being used. Simply issue:

``CC=arm-linux-gnueabihf-gcc-7 pip install git+https://github.com/WojciechMigda/zfex.git``

Haskell
.......

Building haskell wrapper relies on ``cabal``. The most basic build command is as follows:

``cabal new-build all``

and it will use default C compiler settings. There are few flags available, which control building process:

* ``speed`` will pass highest level optimization flag to the compiler,
* ``ssse3`` will enable SSSE3 optimizations on Intel platform,
* ``neon`` will enable NEON optimizations on Arm platform.

Example build command which uses these flags is below:

``cabal new-build all --flags "speed ssse3"``

For more details, including installing dependencies and running tests, please inspect haskell github actions workflow file.

Community
---------

The source is currently available via git on the web with the command:

``git clone https://github.com/WojciechMigda/zfex``

If you find a bug in ``zfex``, please open an issue on github:

<https://github.com/WojciechMigda/zfex/issues>

Overview
--------

This package performs two operations, encoding and decoding. Encoding takes
some input data and expands its size by producing extra "check blocks", also
called "secondary blocks". Decoding takes some data -- any combination of
blocks of the original data (called "primary blocks") and "secondary blocks",
and produces the original data.

The encoding is parameterized by two integers, *k* and *m*. *m* is the total
number of blocks produced, and *k* is how many of those blocks are necessary to
reconstruct the original data. *m* is required to be at least 1 and at most
256, and *k* is required to be at least 1 and at most *m*.

(Note that when *k* == *m* then there is no point in doing erasure coding -- it
degenerates to the equivalent of the Unix "split" utility which simply splits
the input into successive segments. Similarly, when *k* == 1 it degenerates to
the equivalent of the unix "cp" utility -- each block is a complete copy of
the input data.)

Note that each "primary block" is a segment of the original data, so its size
is 1/*k*'th of the size of original data, and each "secondary block" is of the
same size, so the total space used by all the blocks is *m*/*k* times the size of
the original data (plus some padding to fill out the last primary block to be
the same size as all the others). In addition to the data contained in the
blocks themselves there are also a few pieces of metadata which are necessary
for later reconstruction. Those pieces are: 1. the value of *K*, 2. the
value of *M*, 3. the sharenum of each block, 4. the number of bytes of
padding that were used. The "zfex" command-line tool compresses these pieces
of data and prepends them to the beginning of each share, so each the
sharefile produced by the "zfex" command-line tool is between one and four
bytes larger than the share data alone.

The decoding step requires as input *k* of the blocks which were produced by
the encoding step. The decoding step produces as output the data that was
earlier input to the encoding step.


Command-Line Tool
-----------------

The bin/ directory contains two Unix-style, command-line tools ``zfex`` and
``zunfex``. Execute ``zfex --help`` or ``zunfex --help`` for usage
instructions.


Performance
-----------

**TODO: update with new results**

To run the benchmarks, execute the included bench/bench_zfec.py script with
optional --k= and --m= arguments.

On my Athlon 64 2.4 GHz workstation (running Linux), the "zfec" command-line
tool encoded a 160 MB file with m=100, k=94 (about 6% redundancy) in 3.9
seconds, where the "par2" tool encoded the file with about 6% redundancy in
27 seconds. zfec encoded the same file with m=12, k=6 (100% redundancy) in
4.1 seconds, where par2 encoded it with about 100% redundancy in 7 minutes
and 56 seconds.

The underlying C library in benchmark mode encoded from a file at about 4.9
million bytes per second and decoded at about 5.8 million bytes per second.

On Peter's fancy Intel Mac laptop (2.16 GHz Core Duo), it encoded from a file
at about 6.2 million bytes per second.

On my even fancier Intel Mac laptop (2.33 GHz Core Duo), it encoded from a
file at about 6.8 million bytes per second.

On my old PowerPC G4 867 MHz Mac laptop, it encoded from a file at about 1.3
million bytes per second.

Here is a paper analyzing the performance of various erasure codes and their
implementations, including zfec:

http://www.usenix.org/events/fast09/tech/full_papers/plank/plank.pdf

Zfec shows good performance on different machines and with different values
of K and M. It also has a nice small memory footprint.


API
---

Each block is associated with "blocknum". The blocknum of each primary block
is its index (starting from zero), so the 0'th block is the first primary
block, which is the first few bytes of the file, the 1'st block is the next
primary block, which is the next few bytes of the file, and so on. The last
primary block has blocknum *k*-1. The blocknum of each secondary block is an
arbitrary integer between *k* and 255 inclusive. (When using the Python API,
if you don't specify which secondary blocks you want when invoking encode(),
then it will by default provide the blocks with ids from *k* to *m*-1 inclusive.)

- C API

``fec_encode()`` takes as input an array of *k* pointers, where each pointer
points to a memory buffer containing the input data (i.e., the *i*'th buffer
contains the *i*'th primary block). There is also a second parameter which
is an array of the blocknums of the secondary blocks which are to be
produced. (Each element in that array is required to be the blocknum of a
secondary block, i.e. it is required to be >= *k* and < *m*.)

The output from ``fec_encode()`` is the requested set of secondary blocks which
are written into output buffers provided by the caller.

There is another encoding API provided, ``fec_encode_simd()``, which imposes
additional requirements on memory blocks passed, ones which contain input blocks
of data and those where output block will be written. These blocks are expected
to be aligned to ``ZFEX_SIMD_ALIGNMENT``. ``fec_encode_simd()`` checks pointers
to these blocks and returns status code, which equals ``EXIT_SUCCESS`` when
the validation passed and encoding completed, or ``EXIT_FAILURE`` when input
and output requirements were not met.

Note that this ``fec_encode()`` and ``fec_encode_simd()`` are a "low-level" API
in that it requires the
input data to be provided in a set of memory buffers of exactly the right
sizes. If you are starting instead with a single buffer containing all of
the data then please see easyfec.py's "class Encoder" as an example of how
to split a single large buffer into the appropriate set of input buffers
for ``fec_encode()``. If you are starting with a file on disk, then please see
filefec.py's encode_file_stringy_easyfec() for an example of how to read
the data from a file and pass it to "class Encoder". The Python interface
provides these higher-level operations, as does the Haskell interface. If
you implement functions to do these higher-level tasks in other languages,
please send a patch so that your API can be included in future releases of zfex.

``fec_decode()`` takes as input an array of *k* pointers, where each pointer
points to a buffer containing a block. There is also a separate input
parameter which is an array of blocknums, indicating the blocknum of each
of the blocks which is being passed in.

The output from ``fec_decode()`` is the set of primary blocks which were
missing from the input and had to be reconstructed. These reconstructed
blocks are written into output buffers provided by the caller.


- Python API

``encode()`` and ``decode()`` take as input a sequence of *k* buffers, where a
"sequence" is any object that implements the Python sequence protocol (such
as a list or tuple) and a "buffer" is any object that implements the Python
buffer protocol (such as a string or array). The contents that are
required to be present in these buffers are the same as for the C API.

``encode()`` also takes a list of desired blocknums. Unlike the C API, the
Python API accepts blocknums of primary blocks as well as secondary blocks
in its list of desired blocknums. ``encode()`` returns a list of buffer
objects which contain the blocks requested. For each requested block which
is a primary block, the resulting list contains a reference to the
apppropriate primary block from the input list. For each requested block
which is a secondary block, the list contains a newly created string object
containing that block.

``decode()`` also takes a list of integers indicating the blocknums of the
blocks being passed int. ``decode()`` returns a list of buffer objects which
contain all of the primary blocks of the original data (in order). For
each primary block which was present in the input list, then the result
list simply contains a reference to the object that was passed in the input
list. For each primary block which was not present in the input, the
result list contains a newly created string object containing that primary
block.

Beware of a "gotcha" that can result from the combination of mutable data
and the fact that the Python API returns references to inputs when
possible.

Returning references to its inputs is efficient since it avoids making an
unnecessary copy of the data, but if the object which was passed as input
is mutable and if that object is mutated after the call to zfex returns,
then the result from zfex -- which is just a reference to that same object
-- will also be mutated. This subtlety is the price you pay for avoiding
data copying. If you don't want to have to worry about this then you can
simply use immutable objects (e.g. Python strings) to hold the data that
you pass to ``zfex``.

Currently, ``fec_encode_simd()`` C API does not have a python wrapper.

- Haskell API

The Haskell code is fully Haddocked, to generate the documentation, run
``runhaskell Setup.lhs haddock``.


Utilities
---------

The ``filefec.py`` module has a utility function for efficiently reading a file
and encoding it piece by piece. This module is used by the "zfex" and
"zunfex" command-line tools from the bin/ directory.


Dependencies
------------

A C compiler is required. To use the Python API or the command-line tools a
Python interpreter is also required. We have tested it with Python v2.7,
v3.5 and v3.6. For the Haskell interface, GHC >= 6.8.1 is required.


Acknowledgements
----------------

Thanks to the author of the original fec lib, Luigi Rizzo, and the folks that
contributed to it: Phil Karn, Robert Morelos-Zaragoza, Hari Thirumoorthy, and
Dan Rubenstein. Thanks to the Mnet hackers who wrote an earlier Python
wrapper, especially Myers Carpenter and Hauke Johannknecht. Thanks to Brian
Warner and Amber O'Whielacronx for help with the API, documentation,
debugging, compression, and unit tests. Thanks to Adam Langley for improving
the C API and contributing the Haskell API. Thanks to the creators of GCC
(starting with Richard M. Stallman) and Valgrind (starting with Julian
Seward) for a pair of excellent tools. Thanks to employees at Allmydata
-- http://allmydata.com -- Fabrice Grinda, Peter Secor, Rob Kinninmont, Brian
Warner, Zandr Milewski, Justin Boreta, Mark Meras for sponsoring part of this work (original ``zfec``)
and releasing it under a Free Software licence. Thanks to Jack Lloyd, Samuel
Neves, and David-Sarah Hopwood.
Last, but not least, thanks to the authors of original ``zfec`` library, from which
this one forked from.
Thanks to Gabs Ricalde, for contributing ARM SIMD-optimized code to ``zfec``, which then
inspired Intel SIMD-optimizations introduced here.


Related Works
-------------

Note: a Unix-style tool like "zfex" does only one thing -- in this case
erasure coding -- and leaves other tasks to other tools. Other Unix-style
tools that go well with zfex include `GNU tar`_ for archiving multiple files
and directories into one file, `lzip`_ for compression, and `GNU Privacy
Guard`_ for encryption or `b2sum`_ for integrity. It is important to do
things in order: first archive, then compress, then either encrypt or
integrity-check, then erasure code. Note that if GNU Privacy Guard is used
for privacy, then it will also ensure integrity, so the use of b2sum is
unnecessary in that case. Note also that you also need to do integrity
checking (such as with b2sum) on the blocks that result from the erasure
coding in *addition* to doing it on the file contents! (There are two
different subtle failure modes -- see "more than one file can match an
immutable file cap" on the `Hack Tahoe-LAFS!`_ Hall of Fame.)

`fecpp`_ is an alternative to zfex. It implements a bitwise-compatible
algorithm to zfex and is BSD-licensed.

.. _GNU tar: http://directory.fsf.org/project/tar/
.. _lzip: http://www.nongnu.org/lzip/lzip.html
.. _GNU Privacy Guard: http://gnupg.org/
.. _b2sum: https://blake2.net/
.. _Hack Tahoe-LAFS!: https://tahoe-lafs.org/hacktahoelafs/
.. _fecpp: http://www.randombit.net/code/fecpp/


Enjoy!


----

.. |pypi| image:: http://img.shields.io/pypi/v/zfex.svg
:alt: PyPI release status
:target: https://pypi.python.org/pypi/zfex

.. |build| image:: https://github.com/WojciechMigda/zfex/actions/workflows/build.yml/badge.svg
:alt: Package Build
:target: https://github.com/WojciechMigda/zfex/actions/workflows/build.yml

.. |test-intel| image:: https://github.com/WojciechMigda/zfex/actions/workflows/test.yml/badge.svg
:alt: Tests on Intel hardware
:target: https://github.com/WojciechMigda/zfex/actions/workflows/test.yml

.. |test-arm| image:: https://github.com/WojciechMigda/zfex/actions/workflows/test-qemu.yml/badge.svg
:alt: Tests on ARM qemu-emulated environment
:target: https://github.com/WojciechMigda/zfex/actions/workflows/test-qemu.yml

.. |haskell-api| image:: https://github.com/WojciechMigda/zfex/actions/workflows/haskell-api.yml/badge.svg
:alt: Haskell API
:target: https://github.com/WojciechMigda/zfex/actions/workflows/haskell-api.yml

.. |tools| image:: https://github.com/WojciechMigda/zfex/actions/workflows/tools.yml/badge.svg
:alt: Tools
:target: https://github.com/WojciechMigda/zfex/actions/workflows/tools.yml

.. |intel-benchmark| image:: bench/images/bench_intel_k7_m10_1M.png
:alt: Intel benchmark chart
:target: bench/Results.rst

.. |unit-tests| image:: https://github.com/WojciechMigda/zfex/actions/workflows/utests.yml/badge.svg
:alt: Unit tests
:target: https://github.com/WojciechMigda/zfex/actions/workflows/utests.yml

Release files for zfex 1.6.0.1

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

Source distribution (sdist)

Source distribution for zfex 1.6.0.1
File Size Uploaded
zfex-1.6.0.1.tar.gz 170.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zfex 1.6.0.1
File
zfex-1.6.0.1-pp38-pypy38_pp73-win_amd64.whl PyPy 3.8 PyPy 3.8 7.3 Windows x86-64 Details
zfex-1.6.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 macOS 10.9+ x86-64 Details
zfex-1.6.0.1-pp37-pypy37_pp73-win_amd64.whl PyPy 3.7 PyPy 3.7 7.3 Windows x86-64 Details
zfex-1.6.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 macOS 10.9+ x86-64 Details
zfex-1.6.0.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
zfex-1.6.0.1-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
zfex-1.6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.1+ x86-64 Details
zfex-1.6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
zfex-1.6.0.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zfex-1.6.0.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
zfex-1.6.0.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
zfex-1.6.0.1-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
zfex-1.6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.1+ x86-64 Details
zfex-1.6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
zfex-1.6.0.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zfex-1.6.0.1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
zfex-1.6.0.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
zfex-1.6.0.1-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
zfex-1.6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.1+ x86-64 Details
zfex-1.6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
zfex-1.6.0.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
zfex-1.6.0.1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
zfex-1.6.0.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
zfex-1.6.0.1-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
zfex-1.6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.1+ x86-64 Details
zfex-1.6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ ARM64 Details
zfex-1.6.0.1-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
zfex-1.6.0.1-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
zfex-1.6.0.1-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
zfex-1.6.0.1-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details
zfex-1.6.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ x86-64 Details
zfex-1.6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ ARM64 Details
zfex-1.6.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64, Linux glibc 2.12+ x86-64 Details
zfex-1.6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details
zfex-1.6.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.1+ x86-64 Details
zfex-1.6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details
zfex-1.6.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64, Linux glibc 2.5+ x86-64 Details

Total release size: 12.5 MB

Release files / zfex-1.6.0.1.tar.gz

Download URL zfex-1.6.0.1.tar.gz
Size 170.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9c09783c4e345ee12afb1c86cd5fc0cab5089eab87b38a08eaacfcddef16e818
BLAKE2b-256 checksum
How to use checksums
e81ef483c03493cf4b8acd3a6b31916ae704fac718730f5b5c8d53eaa88cfae6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-pp38-pypy38_pp73-win_amd64.whl

Download URL zfex-1.6.0.1-pp38-pypy38_pp73-win_amd64.whl
Size 190.9 kB
Tags PyPy 3.8 PyPy 3.8 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
20d334a3c57a2d4f94c78e913ab620fc8f24bee07591b0852214f010deac644b
BLAKE2b-256 checksum
How to use checksums
2cbd95cef3f240fc576da36f3e6c3df71b400afd941c46a6ddd86d46ee873f19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 270.1 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
87d0f44b62c134a46ce1e4444891b444bb518cff7a67339de7bf20a034404b84
BLAKE2b-256 checksum
How to use checksums
4aafff38ec5cd6ca803d7ae613db40f4af759b32aceb5ce0372bdc649a152628
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl

Download URL zfex-1.6.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Size 190.6 kB
Tags PyPy 3.8 PyPy 3.8 7.3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
7181e90a2f72f7ec4bc0c7f0315fa4b3ff10eca9dc1dd03aa4522ec29b6f4339
BLAKE2b-256 checksum
How to use checksums
cc3e17958f69e977c7b564e2517a424ef8418733039579295a7f647182a54252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-pp37-pypy37_pp73-win_amd64.whl

Download URL zfex-1.6.0.1-pp37-pypy37_pp73-win_amd64.whl
Size 180.0 kB
Tags PyPy 3.7 PyPy 3.7 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
8c3a7ab9688ea672122cf4ea15099c87103489266496b471e86c3edb534a36b9
BLAKE2b-256 checksum
How to use checksums
33a30f6c4ce4d69512fedcc3feedcd4407e8929adf17f7be22aa923857656388
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 259.5 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
e38e66589676b9be3fb0d17033fc6b3e551fe120949d2f4fcbeaae0bfd839bdd
BLAKE2b-256 checksum
How to use checksums
ca3b08520d2b55f7a4cb001605eea530113c8f9e2a28635e92953f5e479126c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl

Download URL zfex-1.6.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Size 179.7 kB
Tags PyPy 3.7 PyPy 3.7 7.3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
93f9f0a7bc4d3d0ebef0ad62be2c5cd22d382724437b7633913bc239cc84bf90
BLAKE2b-256 checksum
How to use checksums
321c8c7bb2d1ba72077619b2966cc59587ad483bc22af9a7d74a8ff40fd78dc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp311-cp311-win_amd64.whl

Download URL zfex-1.6.0.1-cp311-cp311-win_amd64.whl
Size 211.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
275a5fcf914e209e81e8990a13ed2d4d4e096ef4dfcb744a2b0806fb3646a403
BLAKE2b-256 checksum
How to use checksums
942eb159994791ae031040191c1d29c3fa89a176da03d14adb7a5bea69e0e045
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp311-cp311-win32.whl

Download URL zfex-1.6.0.1-cp311-cp311-win32.whl
Size 207.3 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
245f6eaf9f00c0f1f8c27bb0282252098d84885f9ad9a1a125eaf85ffbcd1a0e
BLAKE2b-256 checksum
How to use checksums
29882650c54aa3db17bde5004415e45bf81b635ed91b88fae22cfca3c9960470
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl

Download URL zfex-1.6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl
Size 439.6 kB
Tags CPython 3.11 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
01391d05fb219cd4a90d1cc720ce5f4ff3420483fe003e4eedcd8e3648a5e02f
BLAKE2b-256 checksum
How to use checksums
2fc41341af3da2a556b96be126624f6bf6b09486cf24af9dafd47f71db825215
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 434.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
631e9c6f292bb2f969cc237a6925abbf67720aa6986e933bdd8208dbfd1da70f
BLAKE2b-256 checksum
How to use checksums
453c78b996fe7dab1e6ebf42de09c7c70d0601dbb53ce5d69b60ef8ec86049ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL zfex-1.6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 395.6 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
ec4d63f079e5dd70b06240aee5cba15d0becf53c97bcd1fb8bf39bc9ae648bdc
BLAKE2b-256 checksum
How to use checksums
f25fa868142df0eed5cba3fc942bc7e2f6f2c1f30d30ee01168785c96dfc7849
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL zfex-1.6.0.1-cp311-cp311-macosx_11_0_arm64.whl
Size 215.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fd8a6fdba10a307f12279822c9e035b4d5d06debb93ce75f50c839169d2b148b
BLAKE2b-256 checksum
How to use checksums
c8faa4cbcc78f957e6eb91d8f6c1f55be6a31f71ec4e5b39b9c037f7b9981c0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL zfex-1.6.0.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 217.4 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
94eb1a93934f22e48fe3db12047e2a84b04d13a2b82424bc6913945747c1582a
BLAKE2b-256 checksum
How to use checksums
fd016b8dadd587f2ee8fa683feb44ee9bfabd7602e4fefd9da135b26ee20a6fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp310-cp310-win_amd64.whl

Download URL zfex-1.6.0.1-cp310-cp310-win_amd64.whl
Size 194.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
37719c43d3511decfbcb160a7ff3324d57a860c87304b2ff720ebf6bba549888
BLAKE2b-256 checksum
How to use checksums
704c240df7fa3e1e2b7b0300292ab2c11020952943ec2f518ac3096b0e23a47d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp310-cp310-win32.whl

Download URL zfex-1.6.0.1-cp310-cp310-win32.whl
Size 189.9 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
30f3c880e558dbbe33b9c560468ba8760a8e6b83878981b4d6d65e2cd5c618a5
BLAKE2b-256 checksum
How to use checksums
0a82c5e4786368d72ea1949fb9b4a643d48c9eeed5d48098cb542850cbfc0555
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl

Download URL zfex-1.6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl
Size 412.4 kB
Tags CPython 3.10 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
6e0c50b6a255df65f0906f93d2f9ece70bbb528d0395272e55373021a82c2864
BLAKE2b-256 checksum
How to use checksums
0771700e33afa669034e898daa1455ea0b9be0db5ab83ba673cb995a3e8e4efe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 404.5 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5c30d6e4ed237bf1e072e24b9b59fe86fb667374c28f8e73602214f0f8ab6927
BLAKE2b-256 checksum
How to use checksums
19d458ebab73f4ce58a26cdde3086d11dc7fd6790dd925c12104c586f14ce1d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL zfex-1.6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 368.1 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8327b66fb10b2ba1b43487f3b9a95656fa543b5e4849f1834ec0a3e66aa6e45f
BLAKE2b-256 checksum
How to use checksums
0c59483c44811ccd98b7172e1cc379f096a38f52ae5e4e96d3c5abbe7407b07d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL zfex-1.6.0.1-cp310-cp310-macosx_11_0_arm64.whl
Size 198.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a04e5a78db00292e3e830bf07a8121dddb519e49ce6351469c2fb3da56d58250
BLAKE2b-256 checksum
How to use checksums
3da0a503680d7a47880ed6b81e5e246205c896fef7f6caa4aa2cee3aa6b18d96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL zfex-1.6.0.1-cp310-cp310-macosx_10_9_x86_64.whl
Size 200.0 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
82fe456f933ef552d48242253a545579943ac4827d2eedd61bc0725214630e2f
BLAKE2b-256 checksum
How to use checksums
997fcb8488b9f132f2fc9dc3614548bfb280dd29dc3382e01fdeac6e3bc12af7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp39-cp39-win_amd64.whl

Download URL zfex-1.6.0.1-cp39-cp39-win_amd64.whl
Size 184.0 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
04565b0a17ba2d33fea59965856e520088f139e5cb50fac92ef1b949e19e6137
BLAKE2b-256 checksum
How to use checksums
6e5f9e93a1d673f27e982939748a3bc8b583353f3699165246db7c891da2ac94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp39-cp39-win32.whl

Download URL zfex-1.6.0.1-cp39-cp39-win32.whl
Size 179.5 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
fa1b8a215f09c182fdf5d4ab5a759719c78b2223911489f766232cffce812571
BLAKE2b-256 checksum
How to use checksums
12371385dbbabab19e3dd00db850d06e65b8781db992c4f5b6fcaeea9acda23f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl

Download URL zfex-1.6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl
Size 407.0 kB
Tags CPython 3.9 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
15713b5fddc28b9ca06fff11e59b87663e11ca6349c67d0393aa2f90c7002038
BLAKE2b-256 checksum
How to use checksums
08c060c9e2e2d078fec31975fe4d438584b50d5fdff456b0874c50b9f6d63be4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 399.2 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9413399373e498cbd85598d43e39464e81619a2b2fcfaa2d5f7218092153322d
BLAKE2b-256 checksum
How to use checksums
5ea64f1ef0311914507b3cf14b8606ea19d064178f3d4287f15c155003564324
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL zfex-1.6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 363.8 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9329cab925e2c7bd0ec38cc14b68e97014bf4ba969d10a7c220d5a76c7b8a04c
BLAKE2b-256 checksum
How to use checksums
15a7461ca32bc1b17376ed43120357d7c8356d046cfcf31960f670322df19b1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL zfex-1.6.0.1-cp39-cp39-macosx_11_0_arm64.whl
Size 187.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0c96996db8829262c5fba1a388a08eac8f481010c12706f5370af96e96cb7398
BLAKE2b-256 checksum
How to use checksums
f7cd7e111494a105577513cc8758431ef2af24fe5f752919e03774d7fc3aa707
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL zfex-1.6.0.1-cp39-cp39-macosx_10_9_x86_64.whl
Size 189.6 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c37907ca4c12f8ca7c789d875529cb3a2f733577acfb04876b461232b2f249ac
BLAKE2b-256 checksum
How to use checksums
728fc44f6163cb9c41bdd21123c0133cea3180c384c097853ea0c6e11121ac06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp38-cp38-win_amd64.whl

Download URL zfex-1.6.0.1-cp38-cp38-win_amd64.whl
Size 194.7 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
409448510bc3ded27535ecd4fbbb56c5f212f94b6bbdf78a1c757b843a81173a
BLAKE2b-256 checksum
How to use checksums
723a31eaf930e892df9420fa58bb5eb39c59a906edab76c25c1e0ef7b9a98236
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp38-cp38-win32.whl

Download URL zfex-1.6.0.1-cp38-cp38-win32.whl
Size 190.2 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
2db6736a3af6b86758ab66215b75fd641db3c16acdfdb91600ba9e6d889f1e40
BLAKE2b-256 checksum
How to use checksums
2507b4d9745ecbc7f3715a8a3ac68baf573a3eb4b79192f0668dd65ec8ac04d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl

Download URL zfex-1.6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl
Size 404.3 kB
Tags CPython 3.8 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
bcad2482c8f3b1464ef4e53472cf7ceebc062a46e9524b7919856a85d9024403
BLAKE2b-256 checksum
How to use checksums
e9ebb2f10323b3d74bb87d1b7ab02becf446d11aa937b9d9d6720063b4a60b94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 393.9 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
efe2aed10f6cba87418f0a86a167f28e8d4eb1d228ad011d7552389c8fd58a27
BLAKE2b-256 checksum
How to use checksums
fbe4b9a57d5f3ebf15ab2381682a62d80ddfa00169d031955e20eb63b765634a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL zfex-1.6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 378.5 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
fc07e2ca7495f220fc90b68837cd27afedb53022e6ae5dbb0ac628cf0d572312
BLAKE2b-256 checksum
How to use checksums
ad17c46bbfd2920facf5cc7b924b0156f44012e40464afc2c9582f1c6f24b600
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp38-cp38-macosx_11_0_arm64.whl

Download URL zfex-1.6.0.1-cp38-cp38-macosx_11_0_arm64.whl
Size 197.0 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c7d926b7d6d405d0747b43b6c8cd72d814f62dfebc1c2a71aac94624b8567900
BLAKE2b-256 checksum
How to use checksums
d9edec9f570605db5ee4000416a07db35cf9fa46087db745f8f8761492274a73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp38-cp38-macosx_10_9_x86_64.whl

Download URL zfex-1.6.0.1-cp38-cp38-macosx_10_9_x86_64.whl
Size 198.6 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ae188f041fb28792946267c3d9cfe129385d647f41ff566de65c020f0bed508b
BLAKE2b-256 checksum
How to use checksums
60d9f60347a0074c7bc74cf23ec8f8bfdc35bb13ebcb5861797ffeb769aa73f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp37-cp37m-win_amd64.whl

Download URL zfex-1.6.0.1-cp37-cp37m-win_amd64.whl
Size 183.7 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
1631bde16487dcd41afe654fa7e7d6dea9f6c7cacda97c925e9c18fb39bac0ad
BLAKE2b-256 checksum
How to use checksums
af13a3c79ae3cf507c66ca7b58fcc4d11d2d75cd73831d9941f7c7f38c4c5317
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp37-cp37m-win32.whl

Download URL zfex-1.6.0.1-cp37-cp37m-win32.whl
Size 179.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
fc7f6b6b0e1faf9cbecb65e9fe69fffe0a86c9ffeeb0efba5da61e119a5a68b2
BLAKE2b-256 checksum
How to use checksums
b28593e21413ed759c2b38806a04266c7e5619b689331d1a90b83f0043cac8c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl

Download URL zfex-1.6.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Size 379.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
21a0fd0c405edba807912ddc8247b06a8f424f802085fb47971d3852c6c45928
BLAKE2b-256 checksum
How to use checksums
ea3e606c5b9d7af358fedc0a77295a2fde0c5e154211da28c5ad21aaa22e7e37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 372.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7428033ad90f9cf6fee1c8b0f4224a3702a2b5aa88861faa59d035c42ab2ce28
BLAKE2b-256 checksum
How to use checksums
640a8b096f1e2cbe890e867cce0eeea6700282e41823d837fefcce5a4bb101ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL zfex-1.6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 356.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
94497c7c616deb67c31d91a081d9e5f968a4b8318dd84c9b4c7020f9a21140d7
BLAKE2b-256 checksum
How to use checksums
f88156a67cebb246f18294b128b025f8a12c02163d1b5f7c7df72abe74c91128
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL zfex-1.6.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 379.3 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
67afbb01c3d73f7fb04066325b0949e81cb08f1f84dd98de344f569c5f47725a
BLAKE2b-256 checksum
How to use checksums
e0f6d7c0125ac2d9b058abc4a9fc03706711b96aeb32936b7a8c4cea8e2cff1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL zfex-1.6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl
Size 187.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
37c5c9e024f51b01de3336fecfe36f2227b68202bd1e38af07b0c55d058132f8
BLAKE2b-256 checksum
How to use checksums
14e78c3ccef27ae71b0baf3df9847349429feee95d135cdf46a55f5bb343bccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl

Download URL zfex-1.6.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl
Size 366.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
d1cbb11470734a4d2be2e67ce69ca83d56861ad6a9fe2c4b0e3d2d0e4d8b62b6
BLAKE2b-256 checksum
How to use checksums
f743f432e8665839d0f5d456f3eb716782a11ae366a42f15d98ecd90803f19da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zfex-1.6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 359.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e0b5cae6c46ab0d267a4e30df70e3f4e01ce7c859173d8cfc8d9a7970026d045
BLAKE2b-256 checksum
How to use checksums
faa26e65d1eb3fcd9c1cb19be410932bfe0ed371a63496fb02b1004ae362c574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / zfex-1.6.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL zfex-1.6.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 366.6 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b502a52d5836722c81d342591980c14608625b31c0b7cec5868ce7d95164eac4
BLAKE2b-256 checksum
How to use checksums
3a4dd0b3ba5767db6a77dd16492e2f53884448f43cbdf1cf4254b5c8676e2896
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release history Release notifications | RSS feed

This release

1.6.0.1 This release

45 release files

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