Asset System

"/home/yossef/notes/git/projects/maplibra/modules/Asset System.md"

path: maplibra/modules/Asset System.md

- **fileName**: Asset System
- **Created on**: 2026-06-16 00:48:42

Asset System

Purpose: Normalizes file access across ZIP bundles, generated overlays, network assets, and cached data.

Related: ../Home.md, ../Architecture.md, ./MVF Loading.md, ./Map Rendering.md, ./Pathfinding.md

What It Does

The asset system provides a unified interface for reading files from multiple sources. It supports ZIP bundles, network HTTP, in-memory overlays, hybrid combinations, and IndexedDB caching.

Asset Provider Types

1. ZIP Asset Provider (createZipAssetProvider)

2. Network Asset Provider (createNetworkAssetProvider)

3. Overlay Asset Provider (createOverlayAssetProvider)

4. Hybrid Provider (createHybridAssetProvider in script.js)

Derived Asset Cache

src/app/derived-asset-cache.js stores pre-built routing graphs and debug assets in IndexedDB:

Cache Lookup Flow

  1. Check localStorage meta index by file name/size/package ID
  2. If miss, scan IndexedDB entries and refresh the index
  3. Verify schema version matches current app version
  4. Deserialize assets (JSON + ArrayBuffers)

Important Files

How It Connects