Skip to main content

Module pack

Module pack 

Source
Expand description

Cardinal Codex Pack System

This module provides functionality for creating, loading, and managing .ccpack files - single-file distributable bundles of card definitions and Rhai scripts.

§Overview

A .ccpack file is a deterministic, compressed archive containing:

  • pack.toml: Pack metadata (ID, version, dependencies)
  • cards/*.toml: Card definition files
  • scripts/*.rhai: Rhai script files
  • manifest.toml: Auto-generated file list with hashes

§Format

The pack format is:

  • Deterministic: Same input → same output
  • Portable: Single file, no extraction needed
  • Inspectable: Can list contents without extraction
  • Verifiable: Includes SHA-256 hashes for all files

§Example Usage

use cardinal::pack::{build_pack, load_pack, list_pack};

// Build a pack from a directory
build_pack("./my-pack", "./output/my-pack.ccpack").unwrap();

// List pack contents
list_pack("./output/my-pack.ccpack").unwrap();

// Load pack into memory
let (manifest, files) = load_pack("./output/my-pack.ccpack").unwrap();

Re-exports§

pub use metadata::PackMeta;
pub use metadata::FileEntry;
pub use metadata::Manifest;
pub use builder::build_pack;
pub use loader::load_pack;
pub use loader::list_pack;
pub use loader::unpack_pack;

Modules§

builder
loader
metadata