Sample ZIP files for testing extractors and uploads, free and CC0

zip/zip64-70000-empty-files.zip holds 70,000 entries, more than a classic ZIP entry count can hold, so it needs ZIP64: a reader that truncates the count loses entries without an error. zip/empty.zip is 22 bytes and 0 entries, the empty archive many readers refuse although it is valid.

zip/aes256-password-loremfile.zip is encrypted with 3 entries and opens with the password loremfile, published so the test can pass. zip/nested-directories.zip holds 4 entries in a three-level tree, for extractors that must create directories. zip/mixed-fixtures.zip holds 4 published files of different types, 9,838 bytes uncompressed, and zip/3-text-files.zip is 3 small text files, the plain baseline.

zip/1mb.zip, zip/10mb.zip and zip/100mb.zip each hold 1 member of incompressible noise in 999,421, 9,993,166 and 99,030,316 bytes, so the archive is the size of its contents, for upload limits and extractors that stream.

9 files. The same list as JSON: https://loremfile.dev/zip/index.json

ZIP files
FileSizePropertiesDescription
100mb.zip 99 MB (99,030,316 bytes) About 100MB of incompressible seeded noise in one member, the largest archive in the launch set.
Snippets
<a href="https://loremfile.dev/zip/100mb.zip">download</a>
curl -O https://loremfile.dev/zip/100mb.zip
10mb.zip 10 MB (9,993,166 bytes) About 10MB of incompressible seeded noise in one member.
Snippets
<a href="https://loremfile.dev/zip/10mb.zip">download</a>
curl -O https://loremfile.dev/zip/10mb.zip
1mb.zip 999.4 KB (999,421 bytes) About 1MB: one incompressible seeded-noise member, so the archive's size is honest rather than padded.
Snippets
<a href="https://loremfile.dev/zip/1mb.zip">download</a>
curl -O https://loremfile.dev/zip/1mb.zip
3-text-files.zip 1.8 KB (1,822 bytes) Three small Lorem Ipsum text files, deflated, with fixed timestamps and permissions.
Snippets
<a href="https://loremfile.dev/zip/3-text-files.zip">download</a>
curl -O https://loremfile.dev/zip/3-text-files.zip
aes256-password-loremfile.zip 2.1 KB (2,064 bytes) encrypted AES-256 encrypted with the password 'loremfile', published here on purpose because an encrypted fixture nobody can open would be useless.
Snippets
<a href="https://loremfile.dev/zip/aes256-password-loremfile.zip">download</a>
curl -O https://loremfile.dev/zip/aes256-password-loremfile.zip
empty.zip 22 B The empty zip: a 22-byte end-of-central-directory record and nothing else. Valid, and rejected by plenty of readers.
Snippets
<a href="https://loremfile.dev/zip/empty.zip">download</a>
curl -O https://loremfile.dev/zip/empty.zip
mixed-fixtures.zip 5.2 KB (5,175 bytes) Four published fixtures in one archive: a PDF, a PNG, a CSV and a JSON file, read from the bytes that were published.
Snippets
<a href="https://loremfile.dev/zip/mixed-fixtures.zip">download</a>
curl -O https://loremfile.dev/zip/mixed-fixtures.zip
nested-directories.zip 1.2 KB (1,215 bytes) Four entries in a three-level directory tree, for extractors that must create directories.
Snippets
<a href="https://loremfile.dev/zip/nested-directories.zip">download</a>
curl -O https://loremfile.dev/zip/nested-directories.zip
zip64-70000-empty-files.zip 7.4 MB (7,420,098 bytes) 70,000 empty text members, forcing ZIP64 central-directory entry counts past 65,535. No large payload: readers that truncate a 16-bit count silently lose members.
Snippets
<a href="https://loremfile.dev/zip/zip64-70000-empty-files.zip">download</a>
curl -O https://loremfile.dev/zip/zip64-70000-empty-files.zip

Every ZIP file in one command, each checked against its hash: npx loremfile get --format zip, or loremfile get --format zip after pip install loremfile.

File names follow the naming grammar. Verify a download against sha256sums.txt.