CyclePack
v0.10.0
SDK v0.10.0Game asset packaging & streaming

Your assets.
One archive.
Ready to load.

Pack your game’s files into one archive. Load them by path, check their integrity and protect them with your own key—in the engine you already use.

Explore integrations
Works offlineNo runtime royaltyBuilt in Rust

Your engine.
Your workflow.

Unreal Engine 55.4+ · Beta plugin
Unity 6UPM package · Beta
Godot 44.3+ · GDExtension · Beta
Your engineC / C++ API

01 / The archive layer

Pack once.
Keep your workflow.

A single place to package, mount and read your assets, with control over updates and protection.

01 — READ

Fewer copies in memory.

Read uncompressed, unsealed files directly from a memory-mapped archive. Compressed or sealed files decode into a buffer.

02 — LAYER

Base game. DLC. Mods.

Mount archives in layers. A patch or mod overrides the same path in the base game without rebuilding the original archive.

03 — UPDATE

Ship what changed.

Build chunk patches that contain only changed content. Your game or launcher delivers them; CyclePack handles the archive tools.

04 — AUTOMATE

Fits your build process.

Use Lua 5.4 scripts for build steps or integrate through Rust and the C API. The library runs offline with no licence server.

Choose the right archive mode. Chunk patches save nothing on sealed archives, which are encrypted afresh on each pack. Archives written by Lua use an older format without per-file fingerprints or sealing.

02 / How it fits

One path.
The right version.

Your engine sees files, not a pile of archives. CyclePack resolves each path to the highest-priority mounted layer.

  1. 1

    Package your files

    Create a CPK3 archive with integrity fingerprints and optional sealing.

  2. 2

    Mount your archive layers

    Keep the base game, DLC and patches in separate archives.

  3. 3

    Read by path

    Ask for an asset. The highest-priority matching archive wins.

MOUNTED ARCHIVESHighest priority first
01
patch.cpkUpdated character mesh
Selected
02
dlc.cpkAdditional content
DLC
03
base.cpkOriginal game assets
Base
YOUR ENGINE ASKS FOR
meshes/hero.meshRead from patch.cpk

Example mount order. Your game chooses the archives and their priorities.

03 / Integrity & protection

Know what you load.
Control who can read it.

Verify each file against its recorded fingerprint. Seal the archive under your own key when its contents need protection.

Damage gets a name.A failed check identifies the affected file.
Your archive. Your key.AES-256-GCM or ChaCha20-Poly1305 sealing.
Refuse an older build.A sealed archive carries a generation number.
Read the security details
cyclepack / recorded runsmacOS 26.2 · Apple silicon

A clean archive passes. Change one byte and the check names the file.

$ cyclepack verify --input game.cpk
Verifying archive...
Structural validation passed. Archive format: CPK3, Entries: 8
Content integrity: 8 of 8 entries verified against the digests in the archive.
Verification passed: all 8 entries decoded and matched the digests CPK3 records

exit 0

$ cyclepack verify --input bad.cpk
Verifying archive...
Structural validation passed. Archive format: CPK3, Entries: 8
FAIL meshes/hero.mesh: E_DIGEST_MISMATCH: BLAKE3 digest mismatch
Error: Verification failed: 1 of 8 entries do not match the digest the archive records for them (meshes/hero.mesh: E_DIGEST_MISMATCH: BLAKE3 digest mismatch)

exit 1

Recorded on 1 October 2026. Pasted as printed; a line reading “…” marks a cut.

Sealing is not DRM. A game that opens sealed archives ships the key. Anyone who extracts it can read the assets. Verify archives at installation: direct memory-mapped reads skip the per-read integrity check.

Hardware acceleration: what runs natively today?

The Rust library uses Linux io_uring when the kernel permits it and falls back to ordinary reads. It has run on one Linux kernel in a container; the C API and engine plugins do not use this backend. CXL memory can map a Linux DAX device, but has not been tested on real CXL hardware.

DirectStorage, GPUDirect Storage, NVMe ZNS, RDMA and computational storage are CPU models labelled Emulated. GPU-memory requests are refused unless you explicitly allow an emulated path. No speed benchmark has been published for this release.

Read the measurements and commands

04 / Engine integrations

Start in the engine
you already know.

Beta plugins for Unreal, Unity and Godot. A C API for your own engine, with one header and one library.

Unreal Engine 5.4+ Beta
// In YourProject.Build.cs
PublicDependencyModuleNames.AddRange(new string[] { "CyclePackRuntime" });

// In your Game Mode or startup module (UE 5.4+, IPlatformFile layer):
if (FCyclePackPlatformFile* Vfs = FCyclePackPlatformFile::Get())
{
    Vfs->MountCpk(TEXT("World/"), TEXT("Content/Paks/WorldData.cpk"));
}

Current status: reads CyclePack archives through Unreal’s file layer and I/O dispatcher. It has not run inside Unreal yet; part of the code was compile-checked against stand-in headers. It does not read .pak or .utoc files.

Before you integrate: plugins currently mount unsealed archives. Keyed mounts are available through the C API. The library was tested on Apple silicon macOS and arm64 Linux in a container. Windows, Intel Macs and x86-64 Linux are not yet tested; console, iOS and Android builds are unavailable. Rust, Python and Node packages and a browser WebAssembly reader are also included. Web mode is a preview and is not DRM.

Explore the whitepaper

05 / Licensing

A licence for your title.
No runtime royalties.

Start free as an indie studio. Evaluate before buying as a larger team. Pro and Enterprise licences are per title.

Indie

Free named licence

$0

Unlimited titles

For studios with revenue plus funding under $200,000 over the last 12 months.

  • All core archive features
  • Beta engine plugins and C API
  • Community support
  • 0% runtime royalty

Enterprise

Custom terms

from $15,000

Per title · Studio agreements available

For production budgets over $2,000,000 and teams that need source access.

  • Everything in Pro
  • Source for each licensed release
  • 8-hour priority support
  • Custom licensing terms
  • 0% runtime royalty

In every tier

Archive format · Zero-copy reads · Integrity checks · AES-256-GCM / ChaCha20-Poly1305 sealing · Beta Unreal, Unity and Godot plugins · C API · Lua scripting · Layered mounts · Patching tools

Compare licence and support details
CyclePack licence comparison
Licence & supportIndieProEnterprise
TitlesUnlimitedOne licence per titlePer title or studio agreement
Runtime royalty0%0%0%
C++ driversNot includedIncludedIncluded
Source codeNot includedNot includedEach licensed release; not repository history
SupportCommunity48 hours8 hours, priority
EvaluationNot needed30 days above the Indie threshold; no commercial release

Pro renewal is optional: shipped titles keep working on the version they shipped with. Nothing in v0.10.0 checks a licence or locks a command, tool or feature.

06 / A few useful answers

Before you
start building.

What CyclePack does, where it fits and what this release supports.

What is CyclePack?

A Rust SDK for packaging, protecting and loading game assets. Your engine mounts an archive like a folder and reads files by path. Use an engine plugin or integrate through the C API.

Is every asset read zero-copy?

No. Only uncompressed, unsealed entries can be borrowed directly from the memory-mapped archive. Compressed and sealed entries decode into a buffer. Direct reads skip the per-read integrity check, so run cyclepack verify when installing an archive.

Can players extract sealed assets?

They need the key, but a game that opens its own archives ships that key. Anyone who extracts it can read the contents. Sealing protects against access without the key and unnoticed changes; it is not DRM.

Which engines and platforms can I use?

Beta plugins target Unreal 5.4+, Unity 6 and Godot 4.3+. The C API supports custom engines. This release was tested on Apple silicon macOS and arm64 Linux in a container. Windows, Intel Macs and x86-64 Linux are untested. No console, iOS or Android build is available.

Does CyclePack replace my launcher or patch delivery?

No. CyclePack builds and applies chunk patches; your game or launcher delivers them. Chunk patches save nothing on sealed archives because each pack encrypts them afresh.

Does it need a connection or a runtime royalty?

The library opens no network connection, sends nothing home and uses no licence server. Every tier has a 0% runtime royalty. Indie is free under the $200,000 revenue-plus-funding threshold; Pro is $2,500 per title and Enterprise starts at $15,000.

Build with CyclePack

Put your assets to work.

Tell us about your engine, platform and title. Start with an Indie licence or a 30-day evaluation.

Read the whitepaper

SDK access

Let’s talk about your title.

Indie is free below the eligibility threshold. Larger studios can request a 30-day evaluation.

Submitting sends your name, studio, email, choices and project text to the server, which stores them with your IP address and, when mail is configured there, emails them with your browser’s user-agent string to the CyclePack team.