Resource Group File Format

Resource Groups are human readable Yaml files which encapsulate all data associated a group of resources.

The word ‘Resources’ is used here, however the term is interchangeable with ‘file’.

Resource Groups are an evolution of the resfileindex.txt files used in EVE and Frontier. Many of the file management concepts of resources originate there.

Most operations require Resource Groups as inputs. Operations output may also contain generated ResourceGroups.

ResourceGroup is a base type, extended versions which add additional fields for with special operations include

  1. PatchResourceGroup - Contains a location to a ResourceGroup which it is based on the resources represent binary diffs.

  2. BundleResourceGroup - Contains a location to a ResourceGroup which it was based on and the resources are chunks which make up the bundle.

Example ResourceGroup file

Version: 0.1.0
Type: ResourceGroup
NumberOfResources: 621
TotalResourcesSizeCompressed: 36013964
TotalResourcesSizeUnCompressed: 155170840
Resources:

RelativePath: buildtrees/argparse/config-x64-windows-carbon-err.log
Type: Resource
Location: 4a/4a2879b6b400c8cc_d41d8cd98f00b204e9800998ecf8427e
Checksum: d41d8cd98f00b204e9800998ecf8427e
UncompressedSize: 0
CompressedSize: 20
BinaryOperation: 33206

RelativePath: buildtrees/argparse/config-x64-windows-carbon-out.log
Type: Resource
Location: 16/169c6bb00fdceb69_c888d1e49f02ac82658ebad2a0808f70
Checksum: c888d1e49f02ac82658ebad2a0808f70
UncompressedSize: 3719
CompressedSize: 1294
BinaryOperation: 33206
...

ResourceGroup Fields

Document Fields

Field

Description

Version

Version number of the Resource Group document

Type

Type of ResourceGroup. Type ‘ResourceGroup’ is the base type. There are also specialisations which add further fields related to their function.

NumberOfResources

Number of resources which appear in the ResourceGroup.

TotalResourcesSizeCompressed

Total compressed size of all the files which appear in the ResourceGroup.

TotalResourcesSizeUnCompressed

Total uncompressed size of all the files which appear in the ResourceGroup

Resources

List of resources and information relating to them

Resource Fields

Field

Description

RelativePath

Relative path to the resource.

Type

Type of resource.

Location

Location where resource would appear in a Content Deliver Network (CDN) structure.

Checksum

Data checksum of the uncompressed resource.

UncompressedSize

Uncompressed size of resource in bytes.

CompressedSize

Compressed size of resource in bytes.

BinaryOperation

Binary operation for the resource

Example PatchResourceGroup file

Version: 0.1.0
Type: PatchGroup
NumberOfResources: 2
TotalResourcesSizeCompressed: 125
TotalResourcesSizeUnCompressed: 228
ResourceGroupResource:
  RelativePath: PatchResourceGroup.yaml
  Type: ResourceGroup
  Location: 16/169490e8f16ecbbd_064c6a93988a6dfb92cf480826a1de45
  Checksum: 064c6a93988a6dfb92cf480826a1de45
  UncompressedSize: 868
  CompressedSize: 341
MaxInputChunkSize: 50000000
Resources:
  - RelativePath: Patches/Patch.0
    Type: BinaryPatch
    Location: 89/8917d12f0dc2f2a4_23038413c133ea89d37201b6660a0383
    Checksum: 23038413c133ea89d37201b6660a0383
    UncompressedSize: 145
    CompressedSize: 67
    TargetResourceRelativePath: TextDocument1.txt
    DataOffset: 0
    SourceOffset: 0
  - RelativePath: Patches/Patch.1
    Type: BinaryPatch
    Location: 89/8917d12f0dc2f2a5_27729bde0c1cb7e299408059a3809617
    Checksum: 27729bde0c1cb7e299408059a3809617
    UncompressedSize: 83
    CompressedSize: 58
    TargetResourceRelativePath: TextDocument2.txt
    DataOffset: 0
    SourceOffset: 0
   ...

PatchResourceGroup Additional Fields

Document Fields

Field

Description

ResourceGroupResource

Resource information for a Resource Group containing resources to patch

Patch Resource Fields

Field

Description

DataOffset

Data offset for use in the patch procedure

SourceOffset

Data source offset for use in the patch procedure

Example BundleResourceGroup file

Version: 0.1.0
Type: BundleGroup
NumberOfResources: 1
TotalResourcesSizeCompressed: 8389
TotalResourcesSizeUnCompressed: 41961
ResourceGroupResource:
  RelativePath: ResourceGroup.yaml
  Type: ResourceGroup
  Location: cc/cc00d34500ea7a31_f32613169b3491afb5d029828d269ff3
  Checksum: f32613169b3491afb5d029828d269ff3
  UncompressedSize: 851
  CompressedSize: 363
ChunkSize: 1000
Resources:
  - RelativePath: CreateBundleOut/ResourceGroup0.chunk
    Type: BinaryChunk
    Location: 24/2445432734181d30_c6ffd7f72188cbf71e665c3714b5b148
    Checksum: c6ffd7f72188cbf71e665c3714b5b148
    UncompressedSize: 41961
    CompressedSize: 8389
   ...

BundleResourceGroup Additional Fields

Bundle Resource Groups extend Resource Groups and so contain all the base fields for a Resource Group.

Document Fields

Field

Description

ResourceGroupResource

Resource information for a Resource Group containing resources that have been bundled