caf
CAF (content addressable files) generates deterministic random files for storage-system testing and verifies that the stored files have not changed. It can generate many small files or split large files across worker threads.
Create up to 10 MB of files. The default file size is 4 KiB:
caf gen --max-disk-usage 10MB
Then verify the store:
caf verify
Generation writes CAF v3 by default. Use --format v2 when a new chain must
use the older whole-file BLAKE2b-160 identity:
caf gen --format v2 --max-disk-usage 10MB
With CAF v3, use a seed to share a command that reproduces the same dataset:
caf gen --seed blahblah --max-files 100 --file-size 4096 --format v3
In a fresh directory, the same seed and generation arguments produce the same
file sizes, contents, relative paths, parent links, and CAF metadata across
releases. The directory and worker count may differ. Seed text is exact UTF-8,
including whitespace and case; an empty seed is a usage error. Omitting --seed
chooses fresh randomness. Filesystem timestamps, ownership, inode numbers, and
physical allocation are outside this guarantee. Generation appends to existing
stores, so reproducing an existing store also requires identical starting
contents and invocation history.
--seed requires CAF v3, the default format; combining it with --format v2
is a usage error. Seeded dataset generation specifies
the CAF v3 behavior, including exact statistical size sequences.
dev corrupt-file --seed continues to take an integer.
caf verify detects v2 and v3 from each file's 60-byte header. A store may
contain chains of both versions, but every file in one chain must use the same
version. Both versions use the same 40-character IDs, sharded data paths,
chain-tip markers, and .metadata/all aggregate.
Both commands use parallel workers by default: half the available logical CPUs,
with at least two workers on multicore systems and a cap of eight. Override the
worker budget with --jobs. CAF v3 generates or reads physical file blocks
independently and reduces their BLAKE3 leaf hashes to a deterministic Merkle
file ID. CAF v2 preserves its ordered BLAKE2b-160 whole-file identity. The
worker count affects runtime, not generated bytes or verification results:
caf gen --max-files 1 --file-size 4GB --jobs 8
caf verify --jobs 8
In an interactive terminal, both commands show live byte/file progress, throughput, and an estimated time remaining. Progress is rendered on standard error and is automatically disabled when output is redirected or captured.
Run caf gen --help for size distributions and more examples. See the
file-format specification for the v2 and v3 header,
content, identity, path, chain, and metadata rules.
Metadata
Release files for caf 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| caf-0.5.0.tar.gz | 188.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| caf-0.5.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| caf-0.5.0-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| caf-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| caf-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| caf-0.5.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| caf-0.5.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 4.7 MB
Release files / caf-0.5.0.tar.gz
| Download URL | caf-0.5.0.tar.gz |
|---|---|
| Size | 188.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
53275a8b4160496889944885cac275005c7811a693461abd38ffa47ffdb5ddb1
|
|
BLAKE2b-256 checksum How to use checksums |
6a3558cbdb9b7051bb64ae62cff228b7db6fe3eaad2fc5b59e985b24be1c4103
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / caf-0.5.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | caf-0.5.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 819.2 kB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
f9dae9ebec91595dca1cad35dda27e3d8ba80550927a50448cb701775205e16d
|
|
BLAKE2b-256 checksum How to use checksums |
bf1607f3dd82ecbe2f2a26d14e2e8601ba1b34ca4c6306ac51842cae39bdd31c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / caf-0.5.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | caf-0.5.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 775.0 kB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
cd33d34c92611e581254ede5a30c0c99d5fca6450b19744ecbf8923668de4ad1
|
|
BLAKE2b-256 checksum How to use checksums |
72daad2917026db5396ed39ecee00b43e0e2a6b169a3500616e68060f3807bd0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / caf-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | caf-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 760.8 kB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
ae82a8fa42a887d74577b8aa569f22446638a705d4e9624b7f927e93e6db5e1e
|
|
BLAKE2b-256 checksum How to use checksums |
7502a788c81f35752ab90a49895588afd7c05f0f8350968dcaf0a1c6e8631c8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / caf-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | caf-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 731.7 kB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
9a145d2b3a3669f22f4a499eaccab5f9d351a474ae171ebd02aa123a07025ffd
|
|
BLAKE2b-256 checksum How to use checksums |
8038d668f02645aa43a8929a2c67c7c6cd6458a3593d9c4092553e130446443f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / caf-0.5.0-py3-none-macosx_11_0_arm64.whl
| Download URL | caf-0.5.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 705.5 kB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8cef8c3224c2f9e13a3a7a69a5c99a2555bfd1c8f9d60360fdf90bb561820d40
|
|
BLAKE2b-256 checksum How to use checksums |
769ed2bd6e2a27730d9f7d7e460179a98a4abdec7b39fbb80b6d0e34e2f33a37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / caf-0.5.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | caf-0.5.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 728.8 kB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
35f63bb5bbfa08573d4367548c991fa7c7f44fa11f71fa895abd69f39ff05fbb
|
|
BLAKE2b-256 checksum How to use checksums |
2e0f420c6aafbe100099715dbea46a296d98516db59048d9c5e3eadb8cfcfd37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency log