Skip to main content

CFM64 (Celeres-Feistel Mix 64) — Optimizing Deep Learning Data Loading via Balanced Block-Sequential I/O and Feistel Index Permutation.

Project description

CFM64 — Celeres-Feistel Mix 64

Cryptography-Based Index Permutation with Block-Sequential Access for Textual Data Loading Optimization and Its Impact on Text Classification Accuracy

Undergraduate thesis · Anthony L. Celeres · Visayas State University (2026)

Python 3.8+ License: MIT


The Problem

Training large models requires shuffling billions of samples every epoch. Traditional shuffling creates two scaling bottlenecks:

Fisher-Yates Shuffle CFM64
Shuffle memory O(N) — 8 GB for 1B samples O(1) — 24 bytes
Disk seeks per epoch N random seeks N / block_size sequential reads
Epoch initialisation O(N) permutation O(1) key derivation
Checkpoint size ~8 GB shuffle state 24 bytes
Distributed sync Broadcast O(N) array Zero sync (same seed)

How It Works

CFM64 replaces the O(N) permutation array with a two-level Feistel network that computes shuffled indices on the fly:

Level 1 — Block Order               Level 2 — Intra-Block
┌──────────────────────┐            ┌──────────────────────┐
│ Block 0 ──────►  B3  │            │ Offset 0 ──────► O4  │
│ Block 1 ──────►  B0  │            │ Offset 1 ──────► O2  │
│ Block 2 ──────►  B4  │            │ Offset 2 ──────► O0  │
│  ...                 │            │   ...                │
│ Block N ──────►  B1  │            │ Offset B ──────► O3  │
└──────────────────────┘            └──────────────────────┘
  Shuffles WHICH blocks               Shuffles items WITHIN
  to read from disk                    each block (in RAM)

The disk reads stay sequential within each block (minimising seeks), while items are shuffled both across blocks and within each block every epoch. This is block-level shuffling, not a global permutation — see Scope & Status.


Quick Start

Install

pip install cfm64

Basic Usage

from cfm64 import CFM64Shuffle

shuffler = CFM64Shuffle(dataset_size=100_000, block_size=1024, seed=42)

for epoch in range(100):
    shuffler.set_epoch(epoch)                    # O(1) — 24-byte state change
    for block_id, offset, global_idx in shuffler:
        sample = dataset[global_idx]

Full I/O-Optimised Loader

from cfm64 import CFM64Loader, TextBlockDataset

dataset = TextBlockDataset("train.csv", has_header=True)
loader = CFM64Loader(dataset, batch_size=64, seed=42)

for epoch in range(100):
    loader.set_epoch(epoch)
    for batch in loader:
        train(batch)

Tuning the block size to your storage

The block size is the unit of both transfer and shuffle, and its optimum depends on the storage device. It defaults to BLOCK_SIZE_BYTES (7 MB), but you can override it per dataset. Measure the right value once per machine with the companion auto-fio tool and pass it in — no runtime coupling, fully reproducible:

import auto_fio
from cfm64 import TextBlockDataset

bs = auto_fio.optimal_block_size("/data/train")          # bytes, measured once
dataset = TextBlockDataset("/data/train.csv", block_size_bytes=bs)

Scope & Status

CFM64 is an active undergraduate thesis; this repository is the implementation. Experimental results (throughput, accuracy, memory) are produced separately and are not included in this repository.

What CFM64 targets: text data loading on a single machine with NVMe/SSD storage — the only modality this version ships (TextBlockDataset). Image, network (S3/NFS), distributed, and billion-scale scenarios are design goals reserved for future versions, not part of the current release or evaluation.

Shuffle scope. CFM64 performs block-level shuffling: Level-1 randomises block visit order and Level-2 shuffles within each ~7 MB block. Most batches therefore draw from a single block, so per-batch diversity is lower than a global Fisher–Yates shuffle. This is sound when the on-disk data is not ordered by label; a dataset sorted by class should be shuffled once on disk first.


Architecture

src/cfm64/
├── __init__.py       # Public API surface
├── shuffle.py        # Core: SplitMix64, FeistelPermutation, CFM64Shuffle
├── loader.py         # Full I/O-optimised loader
├── datasets.py       # Block-aware dataset adapters
└── ext/              # C++ native extension (pybind11)
    ├── __init__.py
    ├── bindings.cpp
    └── include/cfm64/
        ├── cfm64.hpp       # Umbrella header
        ├── splitmix64.hpp  # SplitMix64 PRNG
        ├── feistel.hpp     # Feistel network permutation
        └── shuffle.hpp     # Two-level block shuffler

Algorithm

Input index X
├── Split into (Left, Right) halves
├── For r = 0 to 3:                          (4 Feistel rounds)
│   ├── F = SplitMix64.hash(RoundKey[r], Right) & half_mask
│   ├── new_LEFT  = Right
│   └── new_RIGHT = (Left ⊕ F) & half_mask
├── Combine: result = (Left << half_bits) | Right
└── Cycle walk: if result >= N, re-apply

Citation

@thesis{cfm642026,
  title   = {Cryptography-Based Index Permutation with Block-Sequential
             Access for Textual Data Loading Optimization and Its Impact
             on Text Classification Accuracy},
  author  = {Celeres, Anthony L.},
  year    = {2026},
  school  = {Visayas State University},
}

License

MIT — see LICENSE.

References

  1. Steele, G. L., Lea, D., & Flood, C. H. (2014). Fast splittable pseudorandom number generators. OOPSLA 2014.
  2. Black, J., & Rogaway, P. (2002). Ciphers with arbitrary finite domains. CT-RSA 2002.
  3. Morris, B., Rogaway, P., & Stegers, T. (2009). How to encipher messages on a small domain. CRYPTO 2009.

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

cfm64-0.1.0.tar.gz (29.1 kB view details)

Uploaded Source

Built Distributions

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

cfm64-0.1.0-cp314-cp314-win_amd64.whl (321.7 kB view details)

Uploaded CPython 3.14Windows x86-64

cfm64-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (128.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cfm64-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (108.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cfm64-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl (117.5 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

cfm64-0.1.0-cp313-cp313-win_amd64.whl (311.9 kB view details)

Uploaded CPython 3.13Windows x86-64

cfm64-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (128.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cfm64-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (108.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cfm64-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cfm64-0.1.0-cp312-cp312-win_amd64.whl (311.8 kB view details)

Uploaded CPython 3.12Windows x86-64

cfm64-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (128.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cfm64-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (108.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cfm64-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

cfm64-0.1.0-cp311-cp311-win_amd64.whl (308.5 kB view details)

Uploaded CPython 3.11Windows x86-64

cfm64-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (127.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cfm64-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (106.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cfm64-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl (115.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cfm64-0.1.0-cp310-cp310-win_amd64.whl (307.6 kB view details)

Uploaded CPython 3.10Windows x86-64

cfm64-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (127.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cfm64-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (105.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cfm64-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl (114.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

cfm64-0.1.0-cp39-cp39-win_amd64.whl (308.6 kB view details)

Uploaded CPython 3.9Windows x86-64

cfm64-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (127.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cfm64-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (105.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cfm64-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl (114.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file cfm64-0.1.0.tar.gz.

File metadata

  • Download URL: cfm64-0.1.0.tar.gz
  • Upload date:
  • Size: 29.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3319005dc5b81566d74d8815f8315992d4d1fbf012c60da24726c831461ea932
MD5 83bcd49fce18854c1cbe70b04902ad27
BLAKE2b-256 d8a59f590b9581b555b9a4d6b5321ee065d76281236ddab0f270a9864a761e9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0.tar.gz:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cfm64-0.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 321.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 303ced60ac934284de63cbf130dff4d196ac97f8364960091159c0a9de23caa4
MD5 46e7a5b9e51e8b8a43b032f081a81071
BLAKE2b-256 fc1fde81163c372ebe537bdf42f92b5a7cf40f4732bc1bb66bc645f3499d7d74

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a3685be5a8d8549a53a6bf911e16114648eb76cdac5010c1c0e42c1367682732
MD5 5a7ce3aeb2a769c98df36a825ff4bc31
BLAKE2b-256 f470f40334b01728d4ae1b580455d763ce5a3db840c3d9e981a4a1295b94163e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6164ea031119be8deae9425651c9b0c7f294900afacc07f16c0815c15f64918d
MD5 29a43f789e2d2937b60e70cd6f15e5e8
BLAKE2b-256 a3babb22ccf89003ff21c580289cf458cc2225f6aae1e726c0f965093bd2eaa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b35a2f4d7000491467b9335d94cd1abecb6b4d2e7410e51667158ecc6ff38caf
MD5 4b145ae00c4f6d0675ecf3ba0917961d
BLAKE2b-256 4e51559daa62b6bd4daeb218c67e7bfc8562d3111368c442f91817a615162c48

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cfm64-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 311.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 008865dd5efa02ecd5870830413928e7325cdd65888d1e1ca38ed6151fd3bbca
MD5 91f7d9b6a848267837efbad75ab412c7
BLAKE2b-256 d3dd387b1422d151f5925d10cd2af871c8df2b1a5c105963b6e93778398fb733

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 61d10cbf730fd971f8b5c4529afdc0bcb91839681f55d1268abeb85215b7ffeb
MD5 36e6e32a90288a963ab7dcb1d3acc233
BLAKE2b-256 9f3fcca915a769288b8a9fef401e5753282e2bf54f5e29ebfd4abd8fc6d80fe8

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bdb63d2f0eb6f7e3a348af9d11f3cf87f7795ccf7029884d27a84b7de0478bfe
MD5 ec961891ef8a72e2ef92fdac5e44ea5a
BLAKE2b-256 5f55563f33cd045fef1b6daf70f841ac8d9dddc8d2129c9d823f47f81c2fc938

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 2a41952e17c3daed9f885f00fcae855ef153ffde91fff97c75ec93019508de6a
MD5 976ed02fdec912b107e2b43dc8c3133d
BLAKE2b-256 9e93ac8a3ed2cea1ebb4e235fccefa37ab703ad38eb98c43663a48a18223b034

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cfm64-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 311.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7c8fbe919abb3cdcfd7dd72d9fb874544fb5ea950406c18c0b64103874ab4f5e
MD5 be9d86ba911c0ef32908af347c40d3b2
BLAKE2b-256 a1c44e0c0f448ad6f4c466eb2d55f85105a4a8ffa51593fe18ed1039f8929adb

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f833d6b096c5114e9b8d8dfe105f6f835d64621e41bd98b31f6f179e01073a37
MD5 16388e5a75921913b302188b08fc9f7e
BLAKE2b-256 2657822b8752fffc74e8249f04ab829f95f78b313fc2b63aa9abe774a60d6bc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f1ed94204e7614820e949e9ea1aa5cd4a6c5c7853aeb611a1f924e2ffdd5aa0
MD5 fb60be81ce5c261eb62e2a3119c03959
BLAKE2b-256 66a35fc63d572983d2b3ab1e5f3d35728a3ad2fec1d5d105f0bff13db4338a37

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a32487c68c05049a42a38cf249e1657d0173a20a910401e45535986b10e3cd61
MD5 15d4c951b9c94c1fad4e957182f6c762
BLAKE2b-256 22a13e7d33b057f54f7d1eb58dc881a6ddfe5e32e22e0145c1f2303db1c44002

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cfm64-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 308.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ca517622288fdd836e62aeb193875595af15f8438f3a16ebd205e343f8d5c43d
MD5 c51c137a088204c7295dbb4c6aaa3ba0
BLAKE2b-256 695a28d3536c4d40d44c6c264e77ae763a2dce5433322ae2468cdae187f0c49a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9687bd0f4a056adf829ed7283762e6f04f29565a8407425d69f0ce4ee8059e13
MD5 ba1bc30bc576c5afb70ca5e6f7a582a8
BLAKE2b-256 9c8a0ecb4551cb51db2d829d09c251af74c5a770f2d43f7fbf0d5cf4f2c90338

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c843dfbdc22317758718f15acfc144dfd218f6b8de067c139628401ff0f5274
MD5 a6517f9f60f1b8539511cf17c065fc6a
BLAKE2b-256 2df2b24d607eb8e219d38e920b119fe1662b7bb8b1bc54cd9417044c3351ac15

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 544c5097e5a5ad7800b06db1fea9cf0109c4baee02b10046674c309397aa401a
MD5 f918b4be88bc551356570261e994085b
BLAKE2b-256 4357ac7c3c9f81f9e82dec8cce50676e794c3d89abc95c56373fc369fd1aa97a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cfm64-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 307.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 be553b76d2ce192ffaa3b16cd2fa5132ff29a2d708ce2ec55b8da8ff7ce582a4
MD5 fd6ad65dafc55fce568c7765cacbe88a
BLAKE2b-256 b9faad8c095579ebe931305a7129c791463641fb24bec3f9bc6a8ba0f74dd9d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 deaed8c634969314b33c1cdaef17a9956558a297dcc9a30e40f8e92e588923fc
MD5 4f228d44fbf0908153705831d3e5cc5b
BLAKE2b-256 3f2a8bd94e248df0f1bfbd5bb4a693c3151c40f5bcbe877f733a945df29154ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ec888785e0239d80685930942b5714d5fb23f8664ebe573380673a7569a8bcb
MD5 317ea9b2d27f3f1d6f96e98354d149cb
BLAKE2b-256 a16ee4815725d96ba760acc956ebacd85558ca92dbd5e1760d1b6afde5eec4e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 911a0c83dba96c113991e8e12b6fa599c9fc789611bbc3d65dcf2604f6023341
MD5 5a7eb0b5f09b6c2bcdec5f4fbceb7ab6
BLAKE2b-256 1a487bffd8fdbf9719355ecfd5e24b303029ca85afcf06a6d17a46c7e31569d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: cfm64-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 308.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6d9698cd6c15f4c8d476bfe3aa969e6600035ea2811ccb2858973de52a78439c
MD5 1a8512c2348ac25d451aa1a9f1547cf0
BLAKE2b-256 1f4ad30b5de02cb6fadf3e38dd35ecfcf3df11e58c12371f0818e3e7ab7a61f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp39-cp39-win_amd64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef131cc147a0ab3853bd9d8ffeab25698d565e144fac496a978f2f7a30e50712
MD5 d06afe6c469f053762313fa653eb8c2f
BLAKE2b-256 d6876bd1ff4f90e979b8e6c9200e3ba4f352882ae548b2bc501d8d12045d3fbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: cfm64-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 105.7 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cfm64-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 005afa7c5544289555fb962ab014287258a671f6b3e4941a11a8ac1680369ff7
MD5 24293c0cea1fd462d216b7ca44d24bb6
BLAKE2b-256 146c867ffbdade6bd3b9824f102c03f37b72a48844a736db57302973803dc649

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfm64-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cfm64-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9b03583cff89d9c6ead6379522465b33878057d6decc28c6899f9f69d12a60c6
MD5 e8a6e93f125521b4ddb869d84b70f1d9
BLAKE2b-256 a3d42739957e01772a103778b24db3420694e53318e2bdd99f3abd41e2a5fcfc

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfm64-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: release.yml on anthony-celeres/cfm64

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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