Description
Changelog
Reviews (0)

CAVS

CAVS is a content-addressed update system for Godot games. It helps you ship PCK-based content updates that download only the data that actually changed between versions instead of forcing players to download the full pack again.

This addon provides the Godot runtime client. Your PCK is packaged with the open-source CAVS command-line tools into verified, reusable chunks. At runtime, CavsClient, written in 100% GDScript, downloads only the missing chunks, reconstructs the target PCK byte-for-byte, verifies it, stores reusable data in user://, and mounts the result with:

ProjectSettings.load_resource_pack()

CAVS is useful for games that deliver:

  • live content updates;
  • DLC or optional content packs;
  • seasonal/event content;
  • large resource packs;
  • frequent PCK updates where players should not re-download everything.

Measured on real Godot 4 PCKs, CAVS updates were 67–70% smaller than downloading the full compressed PCK, and re-downloading an already installed version is nearly free thanks to the persistent content-addressable cache.

Highlights

  • Pure GDScript runtime client — no GDExtension, no native binaries, and no platform-specific plugin code.
  • Downloads only missing data — unchanged chunks are reused from the local cache in user://.
  • Persistent cache — reused across versions, DLC, sessions, and future updates.
  • Verified reconstruction — the final PCK is checked before mounting, so corrupted or incomplete downloads are rejected.
  • Optional release authenticity — supports signature verification for trusted releases.
  • Streaming reconstruction — writes to disk instead of loading the entire pack into memory.
  • Simple Godot API — designed for loading screens, progress bars, and async update flows.

Usage

var cavs := CavsClient.new("https://cdn.yourgame.com")

cavs.fetch_async("game_v2", func(result):
    if result.ok:
        ProjectSettings.load_resource_pack(result.files[0])
)

Or with the convenience API:

await CavsClient.new(url).ensure_pack("game_v2")

Setup

Enable the plugin in:

Project Settings → Plugins

Or preload the client directly:

preload("res://addons/cavs/cavs_client.gd")

To generate and serve CAVS-compatible builds, use the open-source CAVS command-line tools. The CLI handles packing, manifests, verification data, benchmarks, and server/static-hosting output. This addon focuses on the Godot runtime side: downloading, reconstructing, verifying, caching, and mounting PCKs.

Source

Source code, protocol spec, benchmarks, CLI, server, and documentation:

https://github.com/orelvis15/cavs

Changelog for version 1.0.0

No changelog provided for this version.

Reviews

Cavs has no reviews yet.

Login to write a review.