Skip to main content

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)

Source distribution for caf 0.5.0
File Size Uploaded
caf-0.5.0.tar.gz 188.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for caf 0.5.0
File
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

This release

0.5.0 This release

7 release files

0.4.1

7 release files

0.4.0

7 release files

0.3.1

7 release files

0.3.0

6 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 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